Spring Camp 2023 참여 후기

2023-04-24

Spring Camp 2023

지난 2023.04.22일 토요일 KSUB에서 진행한 Spring Camp 2023 행사에 참석하였다. 이전까지 종종 영상과 발표자료로만 들었던 행사였는데 직접 오프라인으로 참석하니 현장분위기를 느낄 수 있었다.

총 7개의 세션을 들었는데, 각 세션에 대한 간략한 내용과 인상깊었던 부분들을 정리해보았다.

세션 정리

1. “어느 월급쟁이 개발자의 스프링 부트 따라잡기”

첫 세션은 김지헌 님의 발표였다. 스프링 부트의 변천사를 이야기 해주셨는데, 그 뒤에 숨어있을 발표자분의 삽질내공이 느껴져서 즐겁게 들을 수 있었다.

특히 최근에 출시된 Spring Boot 3 버전에 대해서 여러가지를 설명해주셨는데 다음 내용들을 더 살펴봐야겠다고 생각했다.

  • Native Support
  • Micrometer Observability
  • Hibernate ORM 6.1
  • R2DBC 1.0 지원

그리고 Java 17 버전 출시와 함께 Spring 에서 굳이 Kotlin 을 사용하지 않아도 충분히 좋다고 느끼고 있다고 하셨는데 어느정도 공감되는 말이었다.

“인생은 Build 와 Deploy 사이의 Code” - 이제 스프링캠프에서 그만 발표하고 싶다고 하시던 김지헌님.

2. “글로벌 서비스를 위한 Timezone/DST”

두 번째로는 김대겸님이 발표해주신 발표로, 글로벌 서비스를 출시할 때 고민해보아야할 Timezone/DST 에 대한 내용이었다. 나 또한 글로벌 서비스를 출시해본 경험이 있어서 시간값을 ZonedDateTime 으로 고정해서 사용했던적이 있었는데, 그 때의 경험이 떠올라서 반가운 마음으로 세션을 들었다.

또한 LocalDateTimeZonedDateTime 과의 관계, 그 사이에 OffsetDateTime 차이까지 상세히 알려주셔서 좋았다. DST는 잘 모르던 개념이었는데 이 발표를 통해서 Daily Saving Time (일명 써머타임) 이라는 것을 알게되었고 왜 사용하는지도 알게되었다. (여름에는 일조시간이 길어서 하루 시작을 일찍 하게 하려고 사용)

ZonedDateTime 과 각종 DateTime 의 이해

글로벌 서비스를 한다면 클라이언트와의 통신에서 ZonedDateTime 을 사용하고 표시는 상황에 맞게 LocalTime 기준으로 표시하는 것을 권장

3. 대규모 엔터프라이즈 시스템 개선 경험기 - 1부 - 달리는 기차의 바퀴 갈아 끼우기

세 번째로는 임형태님이 네이버 쇼핑의 레거시 시스템을 새로운 시스템으로 전환하는 경험담을 소개해주셨다. 역시나 남이 삽질한 경험담이 제일 재미있는 법! 스프링 캠프 2023 세션중에서 제일 재미있었던 세션이었다. 달리는 기차의 바퀴를 갈아 끼우기란 얼마나 어려운지 새삼스럽게 느끼게 되었다.

strangler pattern 에 대해서 기원과 상세한 비유를 이미지를 통해서 소개해주셔서 쉽게 이해할 수 있었다. 그리고 이전 시스템과, 신규 시스템의 전환을 어떤 타이밍에 진행해야하고, 전환과정에서 겪을 수 있는 문제들을 차근차근 소개해주셔서 많은 도움이 되었던 발표였다. 또한 재미난 발표장표와 더불어 적절한 유머 코드를 겸비한 깔끔한 진행으로 감탄이 절로나왔다. 이어지는 2부 세션을 위한 적절한 안배도 돋보였던 세션이었다.

“우리는 개발팀으로서 서비스 성장에 놓은 품질의 소프트웨어와 개발과정으로 기여하는 것을 중요한 책임으로 여깁니다.”

임형태님의 멋진 말

나중에 제목 때문인지 인터넷밈이 자꾸 생각났다.

4. 대규모 엔터프라이즈 시스템 개선 경험기 - 2부 - 새 술 담을 새 부대 마련하기

앞서 임형태님이 시니어 입장에서의 발표를 진행했다면, 함께 참여한 주니어 입장에서 김선철님이 발표해주신 세션이다. (매트릭스의 빨간약을 드셨다고..) 역시나 팀웤이 돋보였다고 느낄 수 있었는데, 앞선 세션의 위트와 유머가 적절히 유지되어서 보는 내내 웃을 수 있었다.

본인의 경험에서 느껴지는 디테일한 내용을 잘 설명해주셔서 많은 참고가 되었던 세션이었다. 특히나 패키지 구조의 경우에는 항상 고민스러운 부분인데, 김선철 님과 임형태 님이 생각하는 최선의 방향이 무엇이었는지 알수 있어서 좋았다.

아래의 “포트 앤 어댑터” 패턴에 대한 정리 장표도 인상깊었다.

포트앤 어댑터 패턴

이벤트와 관련해서는 Kafka payload를 어떻게 구성하셨는지 궁금했었는데 따로 질문할 시간이 없어서 못물어봤다.

무사히 기존 레거시를 걷어내고 새로운 시스템으로의 개선을 마무리 하시길.

5. 실무에서 적용하는 테스트 코드 작성 방법과 노하우

다섯 번째로 블로그로 익숙한 김남윤님의 발표였다.

먼저 테스트 코드 작성이 어렵다고 느껴지는 경우를 예시로 들고, 단계적으로 대안을 제시하면서 각각 대안의 장단점을 설명해주셨는데 이해하기 쉬웠다. 테스트 코드에 대한 내용은 들어도 들어도 어려운데 이 세션은 그렇지 않아서 좋았다

특히 테스트 코드 작성이 어렵다면 그건 테스트 코드가 피드백을 주는 거라고 말씀해주신 부분이 인상깊었는데, 마음속에서 “테스트 코드 짜기 어렵다고? 그럼 니가 잘못 짠거야” 라고 들려서 많이 찔렸던(?) 세션이었다.

“테스트 코드가 피드백을 준다.”

6. 구현부터 테스트까지 - 대용량 트래픽 처리 시스템

여섯 번째로 이경일님의 발표로 본인을 잡부(?)로 소개하셨지만, 전혀 잡부(?)로 보이지 않는 시니어 개발자분이셨다. 무려 3개의 프로젝트를 겸직하시면서(!) 대용량 트래픽을 처리할 수 있는 효율적인 시스템을 고민하신 결과를 공유해주셨다

로컬캐시와 K8S 환경에서 적용하기 위한 방법들을 경험담과 함께 소개해주셨는데, 몇몇 부분에서는 잘 알지 못하는 기술들이 소개되어서 흐름을 놓쳤었다. 나중에 발표 영상이 올라오면 다시 볼 예정.

동기화를 설명해주시면서 Volatile은 막연하게 알던 내용을 이해하기 쉽게 소개해주셔서 좋았었다. (Volatile 발음은 어떻게 하는건지.)

함께할 동료를 찾으신다고 하셨지만, 새벽에 코딩하는 이야기를 해주셔서 당황 ㅎㅎ

7. Journey to Modern Spring (클라우드 시대를 맞이하는 스프링의 자세)

마지막으로 박용권님의 발표로 스프링의 변천사를 한눈에 볼 수 있는 세션이었다. 시작하면서 말씀하실 내용이 많아서 말을 빨리하겠다고 말씀하셔서 정신을 바짝차리고 들었다.

전체적인 스프링의 변화를 짚어주시면서 왜 그렇게 변화해왔는지 설명해주셔서 좋았다. 중간에 내가 최근에 관심있어하는 Virtual Thread 도 소개되어 반가운 마음이 들었다. 스프링 6와 스프링 부트 3의 주요 변경사항을 잘 정리해주셨고, 특히나 Native 기술에 대해서 강조해주셨는데, 아직은 테스트 중이시라고.. 발표를 듣고 나니, 올 하반기에 나올 JDK21, Spring 6.1 가 더욱 기대되었다.

여담으로 발표를 많이 하신분답게 내공이 어마어마하구나라는 걸 느낄 수 있었다. (시의적절한 이미지가 너무 잘 좋았어요.)

소감

무려 6시간 넘는 행사인데, 세션 하나하나 즐겁게 들을 수 있었고, 새로운 내용들도 알게되어 좋았었다. 간만에 서울 나들이라 돌아가는 길에 녹초가 되었지만, 뿌듯한 마음이 남아 있었다. 다음의 스프링 캠프도 기대해본다.

그외에 행사에 대해서

  • 장소

    • SKT 타워는 좋았지만, 인원대비 약간 작은 느낌 (특히나 화장실..)
    • 좌석마다 콘센트가 제공이라니! 😍
    • 하지만 와이파이는 없었다.
  • 부스

    • 인프런, 그리고 연예인 앨리스님 실물로 봄(이벤트 진행하는데 목소리가 너무 또렷하게 들려서 잊을 수 없었다.)
    • DEVOCEAN - 요즘 열심히 프로모션 하는 느낌으로 자주 보인다.
    • 현대자동차 - 채용을 열심히 하고 계셨다.
    • Azure
  • 진행

    • 입장시 물이없어서 힘들었다.
    • 커피 브레이크는 적절했음.
    • 시작과 마지막에 약간 어수선한 분위기였는데, 개회사-폐회사가 뚜렷하게 없어서 그런 느낌이 들었던 것 같다.
    • 세션의 Q&A가 너무 짧게 진행되어서 아쉬웠다.

참고

나중에 발표영상은 다음 링크에 올라올 것 같다.

받은 스티커

comments powered by Disqus