728x90
Tomcat 필터 중 Spring Security에 위임해서 등록한 필터가 동작하게 되는 것에 대해서 정리한 포스트입니다. 🐻 Architecture스프링 프레임워크는 Tomcat 서블릿 컨테이너 위에서 돌아가므로 Tomcat의 서블릿 필터 기능에 의존합니다.Spring Security를 사용하게 되면, Tomcat의 Filter Chain에 스프링 시큐리티 전용 필터를 하나 끼워 넣어 모든 요청을 가로채는데, DelegatingFilterProxy가 Spring Security의 Filter Chain Proxy에 인증과 인가를 위임합니다. DelegatingFilterProxy는 기타 로직이 하나도 없이 단지 스프링 프레임워크 내부의 FilterChainProxy에게 위임하는 프록시 역할만을 할 뿐..
🐻 대용량 시스템에 대한 이해최근 사용자의 트래픽과 데이터 부하를 감당하기 위해 웹 아키텍처는 단순한 모놀리식 구조에서 벗어나 다양한 분산 확장 기술을 도입하여 발전해 왔습니다. 이 글에서는 웹 아키텍처에 대해서 공부하고 정리한 내용을 바탕으로 점진적으로 발전하는 과정을 살펴보겠습니다. 🐻 웹의 기본 아키텍처 Jonathan Fulton의 "Web Architecture 101" 내용 중 웹 애플리케이션 아키텍처 (Web Application Architecture)는 응용 프로그램의 구성 요소 간의 상호작용을 유지하는 소프트웨어를 구조화한 것을 말합니다.일반적으로는 웹 애플리케이션 아키텍처는 아래와 같은 프로세스를 거쳐 응답합니다.사용자 (클라이언트)는 브라우저나 응용 프로그램의 인터페이스를 사용..
테스트 프레임워크에 대해서 기본 개념에 대해서 학습 정리한 포스트입니다. 🐻테스트 프레임워크스프링부트 애플리케이션을 만들고, 테스트 코드를 작성하여 요구사항대로 코드가 정상 작동하는지 검사하기 위해서 테스트 코드를 작성한다. 이 테스트 코드를 작성하는데 주로 사용하는 프레임워크에 대해서 개념정리를 합니다. 🐻JUnit5 : 단위 테스트 코드 작성, 어노테이션 전체적으로 JUnit 5 공식 문서와 AssertJ, Mocito를 읽어본 경험이 있다. 당시에는 실제 사용하기 전에 어떤 게 있는지, 어떻게 사용하는지 알아보기 위해서 가볍게 읽어보았던 것 같다. 프로젝트를 진행하고 부트캠프에서 미션을 진행하면서 실제 사용해 보면서 많이 익숙해졌는데, 개념적으로 한 번 정리하고 자주 쓰는 어노테이션에 대해서 정..
configurations { compileOnly { extendsFrom annotationProcessor } } dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' // test 코드에서 롬복을 사용하기 위한 의존성 testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' } 프로젝트를 진행하면서 롬복을 사용할 경우 의존성을 추가해주어야 합니다. 만일 프로젝트 생성시에 롬복을..
Intro간단하게 공부한 도커를 이용해서 스프링부트 서버를 컨테이너화 해보기 위해서스프링부트 공식 사이트 레퍼런스를 참고하면서 컨테이너화를 진행하면서 궁금한 점을 찾아보면서 정리한다. https://spring.io/guides/topicals/spring-boot-docker Getting Started | Spring Boot with DockerCongratulations! You have created a Docker container for a Spring Boot application! By default, Spring Boot applications run on port 8080 inside the container, and we mapped that to the same port on t..
스프링 공식 홈페이지SpringThe @SpringBootApplication Annotation@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan( excludeFilters = {@Filter( type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class}), @Filter( type = FilterType.CUSTOM, classes = {AutoConfigurationExcludeFilter.class})})publi..