[세미나참석기] 2019 KSUG 하반기 세미나 — 당신의 자바를 한단계 올려드립니다- 2019.11.16

Byungkyu Ju
byungkyu-ju
Published in
5 min readNov 16, 2019
2019.11.16 NAVER STARTUP D2 FACTORY
  1. 20191116_KSUG_더자바(코드를 테스트하는 다양한 방법)_백기선.md
  2. 20191116_KSUG_자바한정_null서바이벌가이드_박성철.md
  3. 20191116_KSUG_잘키운모노리스하나열마이크로서비스안부럽다_박용권.md

작년에 이어서 올해도 선착순 90명에 들어서 KSUG 하반기 세미나에 참석할 수 있었다.

가장 먼저 참가등록을 하고, 커피한잔을 사온 뒤 곧바로 세미나가 시작되었다.

먼저 백기선님의 발표에서는 더 자바(코드를 테스트하는 다양한 방법) 으로 발표를 해주셨다.

처음은 JUnit 5.

기존 JUnit4에서 JUnit5로 넘어가면서 추가/변경된 기능에 대해서 설명해주시시면서, 샘플로 준비해오신 기능들을 볼 수 있었다.

작년 REST API 발표를 들을 때에는 단위테스트에 익숙치 않아 접근을 어떻게 할 지 고민을 했었다만, 이번에는 나름 테스트코드를 작성하고 있던 터라 쉽게 이해할 수 있었다. 그리고 마침 최근에 사용하고 있던게 JUnit5라 추가로 사용할만한 기능을 듣고 어떻게 적용할지 고민을 할 수 있었다.

두번째 Mochito

이미 백기선님 강의를 들어서 알고 있었지만 @ExtendWith, Stubbing, Verif같은 기능을 추가로 알 수 있었고 테스트케이스를 더 명확하게 작성할 수 있겠구나 라는 생각을 했다.

세번째 TestContainer

TestContainer은 정말 새로웠다.
일반적으로 로컬에서 사용할 DB, 테스트용 DB, 운영용 DB 총3개의 각각 DB를 테스트하기 위해서는 각각의 도커 스크립트를 따로 관리해야 한다.
하지만 TestContainer를 통해 자바소스로 직접 Docker image로 Container를 구동 할 수 있다. 이 의미는 스크립트 파일에서 별도로 지정할 필요 없이 profile별로 자동으로 image를 올리거나 내리고 스크립트를 실행시킬 수 있다는 의미이다.

네번째 jib-maven-plugin

jib-maven-plugin을 통해서 빌드할 때 프로젝트 이미지를 만들 수 있다.
profile을 각자 다르게 설정해서 이미지명을 다르게 생성할 수 있기 때문에 유동적으로 docker image를 생성할 수 있기 때문에 유용하게 사용할 수 있다.
그리고 docker-compose-junit-jupiter로 mocking이 필요 없이 개발을 할 수 있는 기능도 있으나 개발과정에서는 구동시간이 오래 걸리기 때문에, 배포를 통한 테스트서버에서 테스트를 진행할 때 유용하게 쓸 수 있을 것같다.

다섯번째 chaos monkey

chaos monkey for spring boot 를 통해서 운영환경에서 발생할 문제를 사전에 발생시켜 사전에 방지할 수 있다.
chaos monkey for spring boot에서는 latency, exception, service down, memory leak등을 테스트 할 수 있으며, actuator을 통해서 status를 확인하면 더욱 유용하게 사용할 수 있다고 한다.

위 5가지 이후에 바이트코드를 조작하는 방법을 같이 공유해주신다고 했었으나, 시간도 부족하고 여러가지로 부족한 여건때문에 시연만 해주시고 준비했던 자료들을 공유해주시는걸로 마무리를 지었다.
(강의는 인프런에서 다시 듣는걸로..)

다음은 우아한 형제들 박상철님의 자바한정:null서바이벌가이드 발표를 들었다.

코더란 무엇인가에 대해서 과거의 의미와 현재의 의미를 비교해서 들을 수 있었다.

과거의 코더란 위에서 설계를 하면 그대로 찍어내는 의미의 코더였지만, 현재의 코더는 단순히 코드를 찍어내는게 아니라 설계를 하면서 개발을 같이 하는 프로그래머라고 볼 수 있으며 찍어내는 코드는 좋은 코드라고 볼 수 없다고 한다.

지난 2019 스프링캠프에서도 Null을 주제로 발표를 해주셨었는데, 이번에도 Null에 대해서 깊게 고민하고 알아볼 수 있는 시간이었다. 길게 적기엔 내용이 많으니 repository를 참고하는것으로..

마지막으로는 스프링러너의 박용권님의 ‘잘키운 모노리스 하나 열 마이크로서비스 안부럽다’ 발표를 들었다.

마이크로서비스의 장단점이 있지만, 무조건적인 마이크로서비스를 지향하기 보다는 기존에 있는 Spring 기반의 프로젝트만으로도 도메인, context, 모듈을 잘 관리하는것이 유용하다고 느꼈다. 기본에 충실하자는 느낌?

그렇게 올해 세미나도 즐겁고 보람있게 들어서 기뻤다.
이번 세미나는 작년보다 공부를 더 하고 들어서 그런지 더 많이 이해한 느낌인데, 이럴때 공부하는 보람을 더 느낀다. 내일도 열심히 공부해야지…

--

--