본문 바로가기

더 나은 엔지니어가 되기 위해

(80)
[스프링 부트 개념과 활용] 테스트 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 세팅 테스팅에 들어가기 앞서, Controller 와 Service 클래스를 미리 정의해놓자. // SampleController.java @RestController public class SampleController { @Autowired private SampleService sampleService; @GetMapping("/hello") public String hello() { return "hello " + sampleService.getName(); } } // SampleService.java @Service public class SampleService { public String..
[스프링 부트 개념과 활용] 로깅 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 로깅 작업 1) 스프링5 부터 변경 사항 스프링 내 기본적인 로그 개념과 로거 종류는 이전에 포스팅한 [부스트코스 웹 프로그래밍] 로깅 참고하면 된다. 스프링5 부터 달라진 사항이 있다. 이전에는 pom.xml 에서 Commons Logging 을 exclusion 한 뒤, logback 을 로거로 붙여줘야 했다. 그런데 스프링 5부터는 내부에서 알아서 logback 으로 찍어준다. 대략 다음과 같은 플로우임. Commons Logging(Spring 내장) -> SLF4j or Log4j2 - Logback그래서 스프링5 부터는 그냥 써도 Logback 으로 찍히기 때문에, 별도의 설정이 필요없다. ..
[스프링 부트 개념과 활용] Profile 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. Profile 설정 Profile 은 어떤 특정환 환경에 설정 값을 다르게 하고싶을 때 사용한다. 각 Profile 들은 각각 다른 설정 값이나 각각 Bean 들을 정의한다. 그 후, 빌드 할 때, 원하는 Profile 에 맞춰 빌드할 수 있다. 예를 들어, 테스트 환경과 배포 환경을 다르게 두고 Profile 을 설정할 수 있다. 1) Profile 정의 예를 들어, 각기 다른 설정 값을 담는 두 개의 Configuration 클래스를 정의해보자. @Profile("name") 을 통해 Profile 을 정의한다. // BaseConfiguration.java @Profile("production")..
[스프링 부트 개념과 활용] 외부 설정 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 외부 설정 사용하기 Properties resources 디렉토리 안에 있는 application.properties 파일에 키 = 값 형태로 일종의 설정 값들을 따로 구분하여 저장해놓을 수 있다. 이를 코드에서는 @Value("${key}") 로 가져올 수 있다. 예를 들면 다음과 같다. // application.properties heumsi.name = heumsi // SampleRunner.java @Value("${heumsi.name}") private String name; // name 에 heumsi 가 바인딩 됨. ... Environment Environment 객체를 가져와 ...
[스프링 부트 개념과 활용] SpringApplication 이 글은 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. SpringApplication 실행 어플리케이션 실행 방법은 다음과 같은 방법이 있다. 먼저 가장 간단한 방법 @SpringBootApplication public class SpringinitApplication { public static void main(String[] args) { SpringApplication.run(SpringinitApplication.class, args); } } 조금 더 커스터마이징 할 수 있는 방법 @SpringBootApplication public class SpringinitApplication { public static void main(Str..
[스프링 부트 개념과 활용] 내장 웹서버 이해와 .JAR 생성 이 글은 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 내장 웹 서버 이해 스프링 부트는 서버가 아니다. 스프링 부트의 자동 설정에, 톰캣의 설정과 구동이 포함되어 있다. 외부 라이브러리로 포함된 org.springframework.boot.autoconfigure.web.servlet 에서 ServletWebServerFactoryAutoConfiguration.java 를 열어보면, ... @Import({ServletWebServerFactoryAutoConfiguration.BeanPostProcessorsRegistrar.class, EmbeddedTomcat.class, EmbeddedJetty.class, EmbeddedUndertow..
[스프링 부트 개념과 활용] 의존성 관리, 자동 설정 이해 이 글은 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 의존성 관리 1) pom.xml 에서의 parent pom.xml 내부를 살펴보면, 다음과 같은 부분이 있다. org.springframework.boot spring-boot-starter-parent 2.2.4.RELEASE spring-boot-starter-parent 는 스프링 프레임워크가 제공해주는 것으로, 여기에 활용할 수 있는 많은 라이브러리 정보가 '이미' 담겨져 있다. 정확히는 spring-boot-starter-parent 가 dependency 로 들어오는 외부 라이브러리들의 버전 및 각 라이브러리들의 의존성을 관리한다. 어떻게 관리하냐면, spring-boot-start..
[스프링 부트 개념과 활용] 스프링 부트 프로젝트 만들기 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 스프링 부트 프로젝트 만들기 1) 프로젝트 생성 Spring Initializr 에서 기본 프로젝트 구성 생성 가능. 이 외에도 IntelliJ 에서 일반 Maven, gradle project 로 생성 가능. 2) pom.xml 기본 템플릿 공식 사이트의 Getting Started 페이지 에서 다음과 같이 기본 maven 템플릿을 제공해줌. (Spring Initializr 으로 만들면 기본적으로 포함되어 있음) 4.0.0 com.example myproject 0.0.1-SNAPSHOT org.springframework.boot spring-boot-starter-parent 2.2.4.RELE..