본문 바로가기

Spring boot7

Spring Boot의 Embedded Tomcat Spring Boot의 spring-boot-starter-web 모듈에 기본으로 포함되어 있는 embedded tomcat WAS(Web Application Server)에 대하여 알아보겠습니다. 기본적으로 Spring Boot에서 사용하는 Apache Tomcat은 Apache Web Server + Tomcat Server로 구성되어 있습니다. WAS vs Web Server Web Server 우선 WAS와 Web Server의 차이점부터 알아보겠습니다. Web Server는 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html, .jpg, .css, ...)를 제공하는 서버를 의미합니다. 즉 Web Server는 서버가 가지고 있는 특정 자원만을 반환하는 역할을 합니다. WAS WAS.. 2021. 6. 24.
전략 패턴(Strategy Pattern) 우아콘2020에서 프론트 서버의 구조를 보던중에 문득 DIP(의존성 역전 원칙)와 관련있는 전략 패턴이 등장하여 다시한번 기억하고자 이 글을 작성합니다. 흔히 우리가 많은 곳에서 쓰고 있지만 디자인 패턴 측면(좀더 이론적인??)에서 접근해보고자 합니다. 추가로 Spring boot 예제도 구현해보겠습니다. 전략 패턴 어느 한 객체가 특정 컴포넌트에 의존하게 되면 후에 해당 객체에 기능이 추가되고 변하게 되었을 때 유연한 대처(소스코드 변경 및 컴포넌트 변경 대처 등)를 하기가 어렵습니다. 다음은 특정 컴포넌트 A에 의존적인 객체(Context)를 나타냅니다. 이러한 문제를 해결하기 위해 다음과 같이 특정 컴포넌트들의 의존성을 역전시킨 전략패턴을 사용할 수 있습니다. 위 그림과 같이 전략 패턴은 추상화 계.. 2021. 6. 24.
Spring boot의 Resource Server 구현 이전 시간에 이어 Resource Server를 구현하여 Authorization Server로 부터 받은 access token의 유효성을 체크해보겠습니다. Resource Server는 이전 시간에 개발한 Authorization Server로 부터 받은 access token이 필요하므로 Resource Server를 구현하기 전에 Authorization Server를 먼저 구현하시는 걸 추천합니다. 프로젝트 생성 Authorization Server와 같이 start.spring.io 사이트를 이용하여 다음과 같이 프로젝트 설정을 하고 intellij로 해당 프로젝트를 시작하겠습니다. 프로젝트 설정이 완료되면 다음과 같이 추가 의존성 라이브러리들을 추가해줍니다. dependencies { imp.. 2021. 6. 24.
Spring boot의 Authorization Server 구현 이전 시간에 이어 Authorization Server를 구현하여 access token을 생성하는 것까지 구현해보겠습니다. IDE는 intellij를 사용했고 jdk는 8버전, gradle, jwt를 사용하였습니다. 프로젝트 생성 spring boot 프로젝트 설정은 start.spring.io 를 이용하였습니다. intellij를 사용하시면 메뉴의 new project를 클릭하여 Spring Initializr를 사용하시도 됩니다. 스프링 부트 설정은 아래 그림을 참고하여 설정하시고 다운받은 프로젝트를 intellij를 통해서 로딩합니다. 프로젝트 기본 설정이 완료되면 build.gradle.kts의 dependencies에 다음 코드를 추가합니다. dependencies { ... implement.. 2021. 6. 24.