스프링 부트를 사용해서 서버를 띄우고 싶을 때 main() 만 실행하면 서블릿 컨테이너, 스프링 컨테이너,톰캣 등등 기본적인 웹 어플리케이션의 실행하기 위한 초기화 과정이 자동으로 되었다.매번 이 코드를 보았지만, 내부적으로 어떤 과정이 이루어지는지는 모르는채 사용만

@RequsetMapping 요청을 보내면 핸들러 매핑에서 해당 요청에 해당하는 핸들러를 찾는다.보통 우리는 @RequsetMapping을 사용하기 때문에 HandlerMethod 핸들러를 핸들러 매핑에서 가져올것이다.
✅ 싱글톤(Singleton)의 정확한 의미애플리케이션 전체에서 객체 인스턴스가 딱 하나만 생성되고, 모든 곳에서 그 하나만 공유해서 사용하는 패턴❗ 오해하기 쉬운 개념❌ 오해: "요청마다 하나씩 객체가 생기면 그게 싱글톤 아닌가요?"✔️ 정확히는: 그건 요청 스코프입

스프링이 제공하는 검증 오류 처리방법을 알아보자.BindingAttribute bindingResult 파라미터 위치는 @ModelAttribute Item item 다음에 와야 한다.만약 바인딩 하는 객체DTO 에 필드에 오류가 있으면 FieldError 객체를 생성
메세지 관리 기능을 사용하려면 스프링이 제공하는 MessageSource 를 스프링 빈으로 등록하여야 한다.basenames : 설정 파일의 이름을 지정한다.messages 로 지정하면 messages.properties 파일을 읽어서 사용한다.파일의 위치는 /reso
다음과 같이 @ModelAttribute 에서 Validation에 실패할 경우(Controller에 BindingResult가 없는 경우 BindinException 이 발생한다.@RequestBody에서는 Validation에 실패할 경우MethodArgumentN
HttpSession 구현체 내부에는 대략 이런 필드가 있어요:키(key): 문자열(String)값(value): 여러분이 저장한 어떤 자바 객체든(Object)실제로는 이렇게 동작합니다:SessionConst.LOGIN_MEMBER → 컴파일 타임에 "loginMem

로그인을 하고 나서 토큰을 client 가 받게 되고예를들어 로그인을 한 상태로 요청을 할때 헤더에 jwt 를 넣어서 요청을 해야한다.위의 사진처럼 처음에 특정한 경로로 요청이 오면첫번째로 SecurityAuthentication Filter 가 검증을 일단 진행하고우
공통 관심 사항 만약에 특정 요청은 로그인한 사용자만 가능하도록 하고 싶을때 어떻게 해야할까 모든 컨트롤러에 로그인 여부를 체크하는 로직을 하나하나 작성하면 되겠지만, 이것도 너무 번거로운 일이다. 향 후 로그인 처리 로직이 바뀌면 모든 컨트롤러에 코드를 전부 수
SSE 는 그냥 단순하게 단향방 통신에서 사용된다 이정도만 알고 사용하였다.그저 HTTP에서 지원해는 기능? 정도 구나라고 생각했지만HTTP가 지원하는 기능이라기보다는HTTP 위에 정의된 이벤트 전송 규약(HTML5 표준)이라고 한다.SSE는 HTTP 위에서 동작하는