1. 인증(Authentication)과 인가(Authorization) 로그인 기능을 구현하기 전에 가장 혼동하기 쉬운 두 개념을 먼저 정리한다. 인증 (Authentication) — 당신은 누구인가 인증은 사용자가 누구인지 확인하는 과정이다. 아이디와 비밀번호를 입력해 로그인하는 행위가 대표적인 예다. 서버는 이 과정을 통해 "이 요청을 보낸 사람이 실제로 등록된 사용자인가"를 판단한다. 인가 (Authorization) — 무엇을 할 수 있는가 인가는 인증된 사용자가 특정 리소스에 접근하거나 특정 동작을 수행할 권한이 있는지 확인하는 과정이다. 로그인한 사..
1. SOP와 CORS 개념웹 브라우저는 기본적으로 동일 출처 정책(Same-Origin Policy, SOP)이라는 보안 규칙을 따른다. SOP는 서로 다른 출처(Origin)로의 리소스 요청을 차단한다.출처(Origin)는 세 가지 요소로 구성된다. 요소 예시 프로토콜https://, http:// 호스트neordinary.co.kr, api.umc.com 포트:3000, :5500 이 세 가지 중 하나라도 다르면 다른 출처로 판단한다. 예를 들어 https://neordinary.co.kr에서 https://api.umc.com을 호출하면, 호스트가 다르기 때문에 브라우저는 요청을 차단한다.SOP만 있으면 프론트엔드와 백엔드가 서로 다른 ..
1. 미들웨어 개념과 동작 원리Express에서 미들웨어는 요청(req)과 응답(res) 사이에서 동작하는 독립적인 함수다. 클라이언트가 서버로 요청을 보내면, 그 요청이 라우트 핸들러에 도달하기 전에 미들웨어들이 순서대로 실행된다. HTTP 응답이 완료될 때까지 이 미들웨어 사이클이 계속된다.req, res, next 역할 인자 역할 req클라이언트가 보낸 요청 객체. URL, 헤더, 바디, 쿠키 등 요청 정보를 담는다. res서버가 클라이언트에게 보낼 응답 객체. res.json(), res.send() 등으로 응답을 완성한다. next다음 미들웨어로 실행을 넘기는 함수. 호출하지 않으면 체인이 멈춘다. myLogger 미들웨어 예제impo..
김영한의 실전 자바 - 기본편 강의 내용을 정리한 글이다.1. final 변수와 상수1final 키워드는 이름 그대로 끝이라는 뜻이다. 변수에 final 키워드가 붙으면 더는 값을 변경할 수 없다.참고로 final은 class, method를 포함한 여러 곳에 붙일 수 있다. 지금은 변수에 붙는 final 키워드를 알아본다. 나머지는 final의 사용법은 상속을 설명한 이후에 설명한다.final - 지역 변수package final1;public class FinalLocalMain { public static void main(String[] args) { //final 지역 변수1 final int data1; data1 = 10; //최초 한번만 할당 가능..
김영한의 실전 자바 - 기본편 강의 내용을 정리한 글이다.1. 자바 메모리 구조자바의 메모리 구조는 크게 메서드 영역, 스택 영역, 힙 영역 3개로 나눌 수 있다. 메서드 영역 클래스 정보 클래스, 메서드 실행 코드 static 영역 static 변수 보관 상수 풀 "hello", 123 스택 영역 method1() frame data1=x001 main() frame args[] 힙 영역 x001 value=10 Data 인스턴스 힙 --> 자바 메모리 구조 — 메서드 영역 / 스택 영역 / 힙 영역 메서드 영역(Method Area): 프로그램을 실행하는 데 필요한 공통 데이터를 관리한다. ..
김영한의 실전 자바 - 기본편 강의 내용을 정리한 글이다.1. 접근 제어자 이해1자바는 public, private 같은 접근 제어자(access modifier)를 제공한다. 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다.접근 제어자가 왜 필요한지, 예제를 통해 알아보겠다.스피커에 들어가는 소프트웨어를 개발하는 상황을 생각해보자. 스피커의 음량은 절대로 100을 넘으면 안된다는 요구사항이 있다. 100을 넘어가면 스피커의 부품들이 고장난다.스피커 객체를 만들어보자. 스피커는 음량을 높이고, 내리고, 현재 음량을 확인할 수 있는 단순한 기능을 제공한다. 요구사항대로 스피커의 음량은 100까지만 증가할 수 있다. 절대 100을 넘어가면 안된다.S..