Fast-Campus Java Web Programming Camp 17일차

강의 정리

Posted by kingbbode on January 16, 2017

Recently by the same author:


스프링캠프 2018-Consumer Driven Contract

Consumer Driven Contract 기법을 활용한 마이크로서비스 API의 진화

You may find interesting:


Spring 에서 @ConditionalOnClass, @ConditionalOnBean 사용할 때 주의할 점

Spring Boot 기반의 자동 설정을 위한 AutoConfiguration 클래스를 만들다가 발생한 이슈 공유 (ClassNotFoundException, ArrayStoreException)


Spring Boot 와 Properties(or Yaml) Environment

Spring의 PropertySource 의 Yaml 미지원과 ConfigurationProeprties 의 locations Deprecated 의 배경을 알아보자!.

마지막 강의!

유용한 것 소개

Lombok

반복으로 만들었던 것들을 자동으로 편하게 생성해주는 툴!

링크

  • 필드에 대한 getter, setter를 @Data,@Setter, @Getter annotation으로 간단히 생성!
  • @Slf4j annotation으로 간단하게 logger를 필드에 추가!

Logger 표기

logger.debug("discusstion : " + discussion);

과 같은 문자열 방식일 때 debug 레벨의 코드가 실행되지 않음에도 불구하고 문자열 더하기의 연산이 수행 됨. 실행 성능에 약간의 영향이 있음.

logger.debug("discusstion : {}", discussion);

실행될 때 replace하는 방식이 좋은 방식.

Swagger2

Restful API 문서를 자동으로 만들어주며, PostMan과 같은 기능 또한 제공!

  • UI가 없는 상태에서도 테스트 가능

Junit Rest Test

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
  • 서버의 사용되지 않는 포트로 서버를 띄워줌

TestRestTemplate를 통해 Rest 테스트가 가능

더 고도화된 기능 확인

Flyway DB

  • DB Migration 버전 관리가 가능

링크

Spring Profile

Profile로 dev, product, local 환경 구성을 다르게 할 수 있다.