전체 글59 Spring HTTP 처리 과정 흐름도 그림위의 그림을 보면서, 요청이 전달되는 과정에서 각 단계별 어떤 역할을 하는지 간단하게 이해하고 넘어가 보자. Tomcat- Client/ Web Server의 HTTP 요청을 HttpServletRequest 객체로 변환한다. Filter- 인증/인가를 Filter를 통해 검증한다. ex) 유효한 권한을 가진 사람의 요청인가?만약 권한이 없는 사람이라면, 예외를 발생시킨다. Filter에서 권한 오류가 발생한다면, 해당 오류는 @ControllerAdvice / @ExceptionHandler에서 잡을 수 없다. 위의 그림을 보면 알 수 있듯이, DispatcherServlet 앞단에 Filter가 위치하기 때문이다. DispatcherServlet (Front Controller)- Http.. 2025. 6. 29. Web Server / Web Application Server (feat. SSR, CSR) Web Server - Client(browser)로부터 요청을 받았을 때, 정적 페이지를 전달해 주는 역할을 한다.- Apache, Nginx Web Application Server- 흔히 줄여서 WAS 라고 부르기도 한다.- 백엔드 서버라고 이해하면 편할 듯하다. (비즈니스 로직 수행 후 데이터 전달)- SpringBoot에서는 Tomcat을 내장서버로 가지고 있고, 이를 WAS라고 부른다.- WAS 는 사실 Web Server의 역할도 수행할 수 있다. 개념은 위와 같다. 그렇다면 예시를 통해, 각자 무슨 역할을 하는지 조금 더 자세히 알아보자!정적, 동적 파일 전달하기 예시) https://www.naver.com 에 접속한다면 무슨 일이 일어날까?(사실 설명하는 것 외에 많은 일이 일어나겠지만.. 2025. 6. 27. 우테코 Level2 회고록 Level2의 핵심 주제는 나만의 공부법 찾기였다. 이 목표를 잘 달성했는지, 또 핵심 주제 외적으로 어떤 걸 배웠는지 기록을 남기고 싶어 회고록을 작성하게 되었다.기술적 성장Level2는 기존의 콘솔 환경에서 벗어나, 웹사이트를 띄우고 배포하는 것을 목표로 하는 커리큘럼이다. 다음과 같은 핵심 기술들을 배웠다. Spring + WEB 통신Spring이 뭔지, 왜 사용하는지, 클라이언트와 서버가 어떻게 통신하는지에 대해 전반적으로 학습할 수 있었다. 예전에 같이 작업하던 동료 개발자분이 Spring은 왜 사용하는 거예요?라고 물어본 적이 있는데, 제대로 답변하지 못했었다. 지금 Spring을 왜 사용하는 거냐고 물어본다면, 수많은 장점이 있지만 컨테이너가 객체를 관리해주기 때문에 개발하기 편하다라고 답할.. 2025. 6. 25. DB 통신 중 연결이 끊긴다면 어떻게 될까? (feat. JPA) Service는 트랜젝션 단위로 이루어져 있다. 만약 save 이후에 DB 네트워크가 끊긴다면 어떻게 될까? @Entitypublic class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; protected Member() { } public Member(String name) { this.name = name; }}@Servicepublic class MemberService { private final MemberRepository memberRepository; public Member.. 2025. 6. 14. JWT payload를 조작하면 어떻게 될까? (feat. 어떻게 검증할까?) 현재 방탈출 예약 페이지의 로그인은 jwt를 사용해 인증을 하고 있고, cookie에 jwt를 담아서 보내주는 형식이다. 즉, API 요청 과정에서 쿠키에 토큰을 담아 보내줘야 한다. 로그인을 하면 위와 같이 cookie에 token을 담아준다. 해당 값을 디코딩해보면 다음과 같다. 그렇다면, 페이로드를 수정해서 다시 인코딩 후 토큰을 사용하면 어떻게 될까? ADMIN 계정인 id = 4, ROLE = ADMIN으로 변경해 봤다. 과연 페이로드를 admin으로 조작한 이 토큰을 사용할 수 있을까? 우선 조작하기 전의 토큰은 디코딩이 잘 되는것을 확인할 수 있다. 조작된 토큰은 어떨까?? 오.. SignatureException이 발생한다! JJWT 라이브러리의 코드를 살펴보면, SignatureExc.. 2025. 6. 13. JPA는 왜 기본생성자가 필요할까? (feat. 접근 제어자 범위) This default constructor is used by JPA to create instances of the entity class using Reflection. It provides a way to dynamically create instances of classes, call methods, and access fields. https://www.baeldung.com/jpa-no-argument-constructor-entity-class Need for Default Constructor in JPA Entities | BaeldungLearn about the JPA requirement for a default no-argument constructor in an Entity c.. 2025. 5. 26. 이전 1 2 3 4 5 6 7 8 ··· 10 다음