Spring Camp 2024 후기
😎 참가 신청
2024년 5월 25일, KSUG가 주관하는 스프링 캠프 컨퍼런스에 다녀왔다. 매년 인기가 좋은 컨퍼런스인지 작년만 해도 1분도 안되어 참가 신청이 매진되었다고 한다. 작년에는 나 역시 선착순에서 떨어졌었으나, 올해는 알람을 맞춰두고 대기한 덕에 신청 성공하였다.
🥸 세션을 듣고
세션을 듣고 생각하거나 느낀 점을 간단히 정리한다. 실제 세션 내용은 KSUG 측에서 3개월 후에 영상을 공개한다고 하니 해당 영상을 참고하길 바란다.
01 동시성의 미래 - 코루틴과 버츄얼 스레드 (이상훈님)
전통적인 웹과 jvm에서 스레드를 어떻게 다뤘는지부터 시작해, 코루틴이 스레드를 어떻게 다루는지, 버츄얼 스레드에 와서는 스레드를 어떻게 다루는지 바뀌었는지에 설명한다. 여러 상황을 가정하시면서 성능 테스트 결과를 공유하고, 어떤 상황에서 어떻게 사용하면 좋을지 가상 스레드와 코루틴이 어떻게 서로의 단점을 보완해주실지 등에 대해서 설명한다.
흔히들 하는 오해가 버츄얼 스레드는 코루틴을 완전히 대체할 수 있다는 것이다. 나 역시 버츄얼 스레드와 코루틴에 대해 잘 몰랐기에 이제 코루틴은 사용할 필요가 없는 걸까?라고 생각하고는 했다. 하지만 이 둘은 동작 방식도, 사용 목적도 다르다. 이 발표에선 그런 부분에 대해 잘 설명해 주셨다고 느꼈고 내가 헷갈리는 지점에 대해서도 잘 짚어주셔서 좋았다.
만약 이 둘이 무엇이 다른지 궁금한데 영상 올라올 때까지 못 참겠는 사람들은 이 블로그 글을 읽어보는 것도 추천한다.
02 spring coroutine in action (최진영님)
코루틴을 왜 사용하는지와 코루틴의 중요한 여러 가지 개념을 알기 쉽게 설명한다. 예를 들어 단순히 구조적 동시성이 중요하다. 라고 말하는게 아니라 무엇을 구조적 동시성이라고 부르는지, 이게 왜 중요하게 여겨지는지에 대해 설명한다. 코틀린을 공부하면서 쉽게 혼돈할 수 있는 개념들을 잡아주고 코루틴 코드를 디컴파일하여 분석하기도 한다.
개인적으로 오늘 들을 세션 중에 가장 재미있게 들었고, 이제 막 코루틴을 공부하기 시작한 내게 가장 필요한 내용이었다. 코루틴 공부할 때 중요한 여러가지 개념이나 키워드들을 메모하고 짚어볼 수 있었다. 엊그제부터 무작정 코루틴 책을 읽기 시작했는데 이게 왜 그렇게 되는 거지? 이걸 왜 이렇게 어려운 이름으로 부르는 거지? 잘 모르겠지만 일단 넘어가 보자라고 생각했던 부분들을 짚어줘서 좋았다.
물론 처음 들어보는 개념들을 한 번에 머릿속에 넣기는 힘들어서 다시 되짚어보긴 해야 한다. 당장 다시 보고 싶은데 발표 자료나 영상이 공개될 때까지 기다려야 한다는 게 유감이다.
03 스프링 R2DBC 연동 기능을 활용한 작은 코틀린 SQL DSL 개발기 (오현석님)
코틀린으로 SQL DSL을 개발하고, 더 나아가서 스프링 R2DBC와 연동한 경험을 공유한다. SQL DSL을 어떻게 어떤 생각으로 개발했는지 하나씩 설명한다. 어떤 이슈를 겪었고, 개발하면서 어떤 부분을 신경 쓰셨는지를 알 수 있었다.
개인적으로는 실무에서 DSL을 개발할 일은 거의 없을 거라고 생각했지만, 코틀린이라는 키워드 하나를 보고 이 세션을 선택했다. SQL DSL을 어떻게 개발했는지 궁금해서라기보다는 '코틀린'을 통해 어떻게, 코틀린의 어떤 기능을 활용하여 개발했는지를 더 초점에 두고 들었다. 코틀린을 쓰기 시작한 지 얼마 안 되어서 아직 헷갈리거나 모르는 개념들이 많다보니 나중에 다시 찾아보아야겠다는 생각이 들었다.
키워드 메모
- 프로퍼티 위임, 프로퍼티 위임 프로바이더
- invoke 연산자
- 연산자 함수
- 봉인된 클래스
04 데이터를 스케치하기 (황영님)
발표 제목만 보고 데이터 설계를 위한 사전 작업 같은 걸까...? 무슨 발표지..?라는 궁금증에 선택했다. 알고 보니 데이터 스케치라는 용어가 따로 있었다.
데이터 스케치: 데이터 집계를 간결하게 요약한 것 (출처: Google Cloud)
특정 월을 이용한 사용자 수를 어떻게 구할 수 있을까? 2023년의 최다 검색어 랭킹은 어떻게 만들 수 있을까? 굉장히 많은 데이터를 이용해 어떻게 집계를 만들 수 있는지, 알고리즘의 종류에 대해 간단히 소개하고 그중에서도 몇 가지 알고리즘의 동작 방식을 설명한다.
솔직히 알고리즘에 대한 이야기라는 걸 알고 나서는 수학적 이야기가 나오면 어쩌지... 지금의 내게 도움이 되는 이야기일까...라는 걱정이 들었다. 기왕 들어왔으니 일단 들어보자라는 생각에 강의를 끝까지 들었는데 꽤 흥미로웠다. 지금의 내가 당장 저 알고리즘을 이용해 무언가를 만들어내기는 힘들겠지만, 어떤 집계들을 만들어내는 방법 자체가 흥미로웠다. 아 이런 방식도 있구나, 어떤 똑똑한 사람들이 생각해낸걸까 신기하다 이런 생각을 했다. 나같이 데이터 통계 방식이나 알고리즘을 잘 모르는 사람들도 알기 쉽게 설명해 주셔서 좋았다.
05 구해줘 홈즈! 은행에서 3천만 트래픽의 홈 서비스 새로 만들기 (이영규님)
코드 분리를 고민하던 차에 조직 개편이 일어났고, 본격적으로 분리 작업을 진행하면서 기술 부채를 해결한 이야기까지 다룬다. 의존 관계가 복잡하게 꼬인 문제를 해결하기 위해 헥사고날 아키텍처를 도입하고, 성능적 문제를 개선하기 위해 동시성을 고민하는 등 여러 가지 고민과 해결책, 해당 해결책을 선택한 이유, 그 외에도 어떤 이슈가 있었는지를 공유한다.
그중에서도 서비스 이관 시 응답을 비교하는 서비스를 만들어 기존 서버의 응답과, 신규 서버의 응답을 비교하는 서비스를 만들었다고 하신 부분이 인상 깊다. 처음 들었을 때는 이관용 서비스를 만들다니 배보다 배꼽이 더 크지 않나라는 생각을 했는데 돈이 걸린 금융 관련 서비스이고 단 한건의 실패라도 일어나면 안 된다면 안정성을 위해 도입할만한 것 같기도 하고...?라는 생각도 들었다.
이관 과정 중에도 여러 가지 과제나 운영업무들이 존재할 텐데 한정된 리소스로 어떻게 많은 일을 동시에 진행했을까? 이런 점도 궁금했는데 발표 후반부에 내 가방에서 물 새는 것을 발견하였고😭 처리를 위해 급하게 나와버려서 발표를 끝까지 못 들은 것이 아쉽다.
🙂 스프링 캠프를 다녀오고
1. 센스 있는 참가 굿즈
컨퍼런스를 처음 참가했을 때는 열심히 돌아다니며 굿즈를 받으러 다니곤 했다. 받았던 굿즈를 다른 사람에게 나눔 하는걸 몇 번 반복하다 보니 이제는 굿즈에 대한 욕심이 줄었다.😇 스프링 캠프에서도 입장 시 배부되는 굿즈만 받았는데 이 굿즈가 정말 마음에 들었다. 아래 사진이 스프링 캠프 참가 굿즈인데 키캡과 미니 선풍기다. 날이 무서운 속도로 더워지다 보니 미니 선풍기는 요긴하게 쓸 수 있을 것 같아서 마음에 든다.
2. 깔끔한 진행과 안내
스프링 캠프는 SETEC에서 진행되었는데, 메인 건물과 따로 떨어져 있어서 위치가 헷갈렸다. 다행히 스프링 캠프는 역에서 나오자마자 보이는 표지판에도 스프링 캠프로 가는 길 같은 안내문을 붙여두고, 안내해 주시는 스태프 분도 계셨다. 모든 발표 세션마다 스태프 분이 발표가 시작하기 전 안내라던가, 발표 끝난 뒤 QnA 시간 및 발표 마무리에 도움을 주셨다. 중간에 길을 헤매고 있을 때도 여쭤보기도 전에 먼저 도움을 주셨다. 전반적으로 군더더기 없는 깔끔한 진행이라고 느꼈고, 스태프 분들도 참가자들을 많이 신경 써주시는 것 같아서 좋았다.
3. Coffee Break time
45분 되는 세션을 연속으로 듣다 보면 머리에 과부하가 올 수밖에 없다. 스프링 캠프에서는 중간에 30분 정도 'Coffee Break' 시간이라며 다과와 커피를 나눠주며 휴식 시간을 만들어주셨다. 이때 우테코 같이 다니던 친구들을 오랜만에 만나기도 하고, 이 친구를 통해 새로운 사람과 인사를 나눌 수도 있었다.
4. 2025 참가 의사
유료보다는 무료 컨퍼런스 참여 경험이 더 많다 보니 처음에는 약 4만 원의 참가비가 좀 비싸 보이기도 했는데, 다녀와보니 여러모로 참가자들을 많이 신경 쓴 행사라고 느껴졌다. 내년에도 기회가 된다면 꼭 참가하고 싶다. 😄 좋은 행사를 열어주신 KSUG 모든 관계자 분들 감사합니다.