JVM/Spring

· JVM/Spring
환경 분리가 왜 필요한가? 애플리케이션은 로컬, 개발, 운영, 테스트 등 다양한 환경을 지원하고 싶을 수 있다. 각 환경마다 다른 자원, 스팩을 사용하는 일은 생각보다 자주 마주친다. SpringBoot 는 이를 지원하기 위한 매커니즘으로 Profile 을 제공한다. yaml 파일로 환경 분리하기 사전 준비 SpringBoot 앱이 로드되자마자 Yaml 파일을 읽어 로깅하도록 지정했다. 어노테이션은 주석을 참고하자. (1) 하나의 application.yaml 에 때려박기 (2) 환경별 yaml 파일 분리하기 profile 을 환경별로 분리하여 정의하고 `application.yaml` 에서 `spring.profiles.active` 값만 지정해줘야한다. 해당 값 미지정시 어느 프로파일로 실행할지 결정..
· JVM/Spring
Servlet 역할 Http Request, Response 에 필요한 필수 기능을 제공하여 개발자가 비즈니스 로직에만 집중하게 해준다. TCP Socket connection 관리 HTTP Request URL, Header, Body 파싱 HTTP Response Header, Body 생성 Servlet 생명 주기 간단하게는 init -> service-> destroy 를 거친다. 1. init() WAS (e.g. Tomcat) 이 띄워질 때 최초로 미리 등록해둔 서블릿을 모두 '싱글톤'으로 생성해둔다. @WebServlet(name = "HelloServlet", urlPatterns = "Hello") public class HelloServlet extends HttpServlet { @O..
· JVM/Spring
개요 @Sl4j 로 SpringBoot는 기본 로거를 내장하는데 요녀석으로 로깅 정책, 패턴, 저장 위치를 결정할 수 있다 logback-spring.xml main/resources 에 두면된다. 주석을 참고하자. 본 프로젝트에 갈기면된다. 로그 레벨에 따라 프로젝트 루트에 logs/error.log logs/info.log logs/warn.log 'RollingFileAppender' 클래스를 통해 최대 용량 혹은 보관기간이 지나면 새 파일을 저장한다. [%d{yyyy-MM-dd HH:mm:ss.SSS}:%-3relative][%thread] %-5level %logger{36} - %msg%n [%d{yyyy-MM-dd HH:mm:ss.SSS}:%-3relative][%thread] %-5leve..
· JVM/Spring
사전 조건 application.yaml 설정 dependency 설정 spring-boot-configuration-processor annotationProcessor 를 추가해줘야한다. Java 순서 1. ConfigurationProperties 등록 on ConfigClass @Getter @RequiredArgsConstructor @ConfigurationProperties(prefix = "server") public class ServerConfig { private final String port; private final String ip; private final String hostname; } 2. ConfigurationPropertiesScan 등록 on main @Sprin..
· JVM/Spring
There's no strict stnadard naming convention in SpringBoot, Howevere there's some best practice. Controller Layer The methods in the controller should be named based on the HTTP method. getUser postUser deleteOrder Service Layer Methods in service layer should be descriptive and prefixed with a verb createUser() updateUser() deleteUser() Persistence Layer Methods in persistence layer named data ..
· JVM/Spring
빈 스코프는 빈이 존재할 수 있는 범위를 말한다. Spring Scope 구분 설명 실행 순서 싱글톤 기본 스코프, 스프링 컨테이너 시작-종료까지 유지되는 가장 넓은 범위 스코프 스프링 컨테이너 생성 시점에 Bean 생성, DI 및 초기화 메소드 실행 프로토타입 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프 Bean 을 조회할 때 생성되고 초기화 메소드도 실행됨. 90% 이상은 싱글톤, 간혹 프로토타입 스코프를 사용한다. 왠만하면 다 싱글톤으로 해결하라. 웹 관련 스코프 구분 설명 Request 웹 요청이 들어오고 나갈 때까지 유지되는 스코프 Session 세션이 생성되고 종료될 때까지 유지되는 스코프 Application 웹의 서블릿 컨텍스트 같은 범위..
M_Falcon
'JVM/Spring' 카테고리의 글 목록