스프링 캠프 2016

세미나 정리 및 후기.

Posted by kingbbode on April 30, 2016

Recently by the same author:


3년차 웹 개발자

4년차로 접어든 웹 개발자의 3년차 늦은 회고

You may find interesting:


SpringOne Tour Seoul - Spring Cloud Gateway

스프링 원 투어 서울 컨퍼런스 중 정윤진님의 Spring Cloud Gateway 세션


스프링캠프 2018-Consumer Driven Contract

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

세미나 정리 및 후기.

스프링 캠프 2016

2016년 4월 30일


Session 1. A - Test Patterns - 아샬

목표 설정 (Example, 시나리오, todo)

  • 테스트에서는 의도를 드러내야 함.
    Ex) return 12 (x) return 3+3+3+3

  • 겉으로 보이는 동작의 변화없이 내부 구조를 변경
    -> 테스트를 통해 재설계가 가능.

TEST DOUBLE

  • Controller
    • @before에서 mock 사용
    • Service단을 인터페이스만 활용
  • 통합 테스트
    • @WebIntegrationTest
    • Given, assertThat (mock)
    • 가짜 Bean 생성 -> profile 사용하여 mock 객체로 반환하도록.
      • BUT!! 스프링 부트 1.4부터 SpringBootTest, MockBean, WebMvcTest 활용 가능.

        결론

  • POJO
  • OOP
  • 설계, 리펙토링
  • Spring Boot 메뉴얼을 보자,,
  • 미래 고통을 지금,,,

추천 서적

Kent back - 테스트 주도 개발

  • 테스트 코드는 clean code를 위해 필요
  • 나중은 없다.

Session 2. COUCHBASE를 활용한 티몬 상품 목록 API 성능 개선 - 김인태 / 티켓몬스터

  • Soniacode
    • 코드 성능 분석
  • Slave를 nosql
    • 동기
    • 병렬 데이터 처리
    • 유저 Request -> Slave에서 Simple Query.
      • 10억(10^9) Request
      • Data Write 10^6
    • Data Modeling
      • TDD
    • 캐시를 데이터 바뀔 때마다
      • 캐시를 일정 주기로 구현은 옛날 방식? 상황에 따라?

Session 3. Bean Validation 1.1

  • Annotation 활용 가능.
  • Validation Factory 사용.
  • 여러 응용 가능

Session 4. DEEEP DIVE INTO SPRING AUTOCONFIGRATION - 이수홍/KSUG

  • @Enable~
    • JavaConfig에서 모듈화된 설정시 사용 (3.1<)
  • @SpringBootApplication
    • @ComponentScan
    • @EnableAutoConfiguration
    • @Configuration
  • @EnableAutoConfiguration
    • META-INF/spring.factories를 통해 모든 클레스 로딩, But 스프링 컨테이너에 올라가진 않음
    • @Conditional
      • 스프링4 도입
      • 조건부로 Bean을 스프링컨테이너에 등록.
      • Condition Interface 사용하여 특정 조건부로 등록되도록 만들 수 있음.
      • @Profile이 @Conditional을 통해 구현됨
      • 확장
        • @ConditionalOnBean, @COnditionalOnMissingBean
          • 스프링 컨테이너의 Bean 존재유무
        • @ConditionalOnClass, - Class 존재 유무
        • @ConditionalOnproperties - 환경변수 유무
        • @ConditinalOnresources - 리소스 존재
        • @ConditionalOnWebApplication~~~ 등
  • 스프링부터 설정
    • 순서
      • 서블릿 인터페이스 있는가, 이미지 MVC 설정하는게 있는가.
      • 시프링 시큐리티 라이브러리가 있는가? 등
      • DataSource 객체가 스프링 컨테이너에 존재하는가?
      • JPA, Hibernate 설정 이미 되었는가.
      • AOP 설정.
  • 커스텀 모듈 만들기
    • Resources / META-INF / spring.factories을 생성하여 AutoConfigration 모듈을 만들 수 있음.
    • 부트에서 Spring.factories는 모든 jar를 탐색.
    • 단점 : 눈에 안보임, 검증이 힘듦.
  • Properites <-> yml 전환은 자유로움.