All-to-All Session Replication 모든 서버로 세션 복제 DeltaManager 사용(노드 4개 미만) Primary-Secondary Session Replication 2차 서버에만 세션 복제 BackupManager 사용(노드 4개 이상) ...
Spring Security Basic
기본 개념 UsernamePasswordAuthenticationToken: Authentication 구현체 InMemoryUserDetailManager UserDetailsManager 구현체 설정한 유저 정보가 담김 e.g. spring.security.u...
[Issue] Social Login
Social Login Flow 구글, 네이버, 카카오 계정 인증시 클라이언트로 302 Redirect URI 인가 코드 전달 클라이언트에서 토큰 요청 후(POST /oauth/token) 토큰 발급 설정파일 내 provider 코드가 해당 역할을 한다. GOOGLE 의 경우 provider 생략 가능(기본 제...
[JS] 함수 선언 방식 vs 함수 표현식
함수 선언 방식: function a() {} 호이스팅(코드의 어느 위치에서든지 함수 호출 가능) a(); // 함수 호출 가능 function a() {} this 가 동적으로 바인딩된다. function a() {console.log(this);} a(); // 일반 호출: 전역 객체 (브라우저에서...
[JS] Asynchronous
HTTP 통신 방법 동기 통신 페이지 전체가 리로딩된다. Single-Thread ( 통신을 하는 동안 다른 처리는 못하고 통신에만 집중한다. ) 비동기 통신 페이지는 가만히 있고 일부만 리로딩된다. Multi-Th...
Thymeleaf Code
selectBox selectBox에 th:field 속성을 주었을 경우, option들의 th:value 값이 존재해야 렌더링된다. <select class="select block" th:field="*{searchField}"> <option th:value="''">선택</option> <op...
UUID Column
UUID 컬럼 CREATE TABLE `user` ( `idx` int NOT NULL AUTO_INCREMENT, `uuid` binary(16) DEFAULT (UUID_TO_BIN(UUID())), `id` varchar(30) NOT NULL, `password` varchar(50) NOT NULL, `name` varch...
HTTP 요청 흐름 정리
스프링 부트 내장 톰캣 내장 톰캣 서버(WAS + 서블릿 컨테이너) → 서블릿 생성(서블릿 컨테이너) HTTP 요청 → WAS → 서블릿 컨테이너(서블릿 조회) → WAS → HTTP 응답 Spring MVC 요청 흐름 http 요청 → DispatcherServlet → 핸들러 매핑(핸들러 조회) → Dis...
Template Engine
템플릿 엔진이란? HTML과 데이터를 결합하여 최종적으로 사용자에게 보여질 뷰를 생성(VIEW 렌더링 최적화) HTML 문서에서 필요한 곳만 코드를 적용해서 동적으로 변경할 수 있는 기능을 제공한다. e.g. JSP, Thymleaf, Freemarker, Velocity .. 템플릿 엔진이 나온 이유(서블릿의 단점) 서블릿과...
Servlet Exception
서블릿 예외 처리 스프링이 아닌 순수 서블릿 컨테이너는 다음 2가지 방식으로 예외처리를 한다. Exception(예외) response.sendError(HTTP 상태 코드, 오류 메시지) 1. Exception(예외) 자바 직접 실행 자바 main() 메소드 실행...