본문 바로가기
Memo/후기+회고

Kotlin Backend Meetup 후기

by 연로그 2025. 2. 16.
반응형

 

2025년 2월 15일 우아한형제들의 테크살롱에서 진행되는 코틀린 백엔드 밋업에 참가했다. 참가 신청이 마감되어 신청을 못하고 있었는데 지인분이 초대권을 나눠주신 덕에 갈 수 있었다. (감사해요 제이슨😆) 참가하니 아주 귀여운 코틀린 뱃지를 받았다. 코틀린 공식 마스코트가 있는 줄 몰랐는데 공식 캐릭터라고 한다. ㅋㅋㅋ

 

 

타임 테이블은 아래와 같다. 다만 아래는 온라인에 공개된 표고, 현장에서는 시간표가 약간 바뀌었다. 

 

내가 들은 발표는 총 3가지였다. 듣고 싶은 세션을 다 듣지는 못했는데, 컨퍼런스에 늦게 도착 + 시간표 바뀐 줄 모르고 있었어서 놓쳤다. 🥲 각 발표를 듣고 느낀 점 + 메모했던 내용들을 간단히 정리해 본다. 참고로 발표 자료는 밋업 공식 GitHub에 공개되고 있다.

 

코루틴 컴파일 과정 파헤치기 / 김찬우 님

코루틴의 중요한 개념이나 어떤 식으로 동작하는지 살펴보기 위해 예제 코드 & 컴파일 코드를 분석하며 발표를 진행해 주셨다. 예제와 함께 어떤 식으로 동작하는지 구체적으로 보여주셔서 발표를 따라가기 좋았다. 예제코드에서는 suspend 키워드를 직접 사용하는 대신 람다를 만들어서 호출하는 식으로 보여주셨는데, 예제를 왜 그렇게 작성했는지, 반대로 왜 JVM은 람다로 안 썼는지 설명해 주신 부분이 인상 깊었다. (코루틴은 Continuation 재사용이 불가능하기 때문에 suspend를 람다로 구현하셨다고 한다. JVM에서 해당 방법을 안 쓰는 이유는 스택 트레이스의 가독성이 복잡해져 suspend 함수 본문을 람다로 이동하는 게 아니라, 함수 내부에서 상태 머신을 활용하는 방법을 선택했다고 한다.)

 

코루틴이 어떻게 동작하는지 공부하기 위해서 분석해 보는 게 재미있어 보였다. 단순한 케이스에서는 바이트코드를 분석해 볼 수 있겠지만, 여러 클래스가 긴밀하게 의존되어 있다 등의 복잡한 케이스에서는 바이트코드 분석이 힘들 것 같다는 생각도 들었다. 

 

주제에서 약간 벗어난 이야기인데 발표자료를 보니 컴파일된 코드가 코틀린으로 만들어져 있었다. 바이트코드를 보기 쉽게 코틀린 형태로 바꾸신 건가? 하고 찾아봤는데 GPT가 아래와 같은 과정을 알려주었다.

더보기

1. 코틀린 파일 -> 바이트코드

IntelliJ에서 Tools > Kotlin > Show Kotlin Bytecode

 

2. 바이트코드 -> 자바 파일

 

3. 자바 파일 -> 코틀린 파일

바이트코드를 java로 디컴파일할 수 있는데 이 결과물인 java코드를 kotlin 코드로 변환하면 된다. 하지만 깔끔하게 나오지도 않고 java로 보는 것도 막 힘들진 않기 때문에.. java로 보는 게 더 나은 것 같다.

 

 

Gilded Rose 리팩터링 챌린지 / 박재성 님

잘 몰랐는데 Gilded Rose는 유명한 리팩터링 챌린지 이름인 것 같다. 다양한 언어로 예제가 제공되며, 주어진 코드를 리팩터링 하는 챌린지이다. (Gilded Rose Repository) 요 발표는 사실 메모할 게 거의 없다. IntelliJ의 기능만으로 리팩터링 하는 과정을 보여주시는데 세션이 끝나갈 때쯤에는 감탄이 나왔다. 그 복잡했던 코드가 IntelliJ 기능만 잘 써도 저렇게 단순화된다니.. 물론 그 기능을 더 잘 쓰기 위해 머리를 써서 임의로 개선하는 부분도 있다 보니 테스트 코드 등 안심 장치가 있어야 할 것 같기는 했다.

 

  • Kotlin 스럽게 작성하는 팁: IntelliJ 기능을 잘 활용하자!
  • 코드의 형태를 동일하게 만들면 IntelliJ가 새로운 방법을 추천해주기도 한다.

 

option + Enter를 입력하면 IntelliJ가 다양한 방법을 추천한다.

경고를 어떻게 변경하면 좋을지 추천해준다.
경고가 있는 코드는 아니지만, 이런 식으로도 작성할 수 있다고 추천해준다.

 

 

Spring Webflux Overview / 박성훈 님

사실 요 발표는 내가 모르는 내용들이 많아 잘 따라가지는 못했다. Netty, Aremeria, WebFlux를 사용하는 환경에서 request가 들어왔을 때 어떤 과정을 거쳐 처리되는가, 를 정리한 발표였다. Armeria에 좀 더 초점이 잡힌 것 같았는데 발표 내용은 새로 영상을 제작하여 유튜브에 업로드하실 예정이라고 한다. 관심이 있으신 분들이라면 아래 사진을 참고하길 바란다.

 

 

참여 후기

정말 오랜만에 컨퍼런스를 참여한 것 같은데 오래간만에 가니 다시 열정이 생기는 것 같아서 좋았다. 작년에 코루틴 공부를 열심히 했던 기억은 있는데 정작 코틀린은 따로 공부한 기억이 없는 것 같다. 자바랑 비슷하다 보니 큰 고민 없이도 그냥 쓸 수는 있었는데... 더 잘 쓰려면 코틀린에 대해서도 공부해야겠다 하는 생각이 든다.

 

컨퍼런스에 가보니 팀원들, 오랜만에 만나는 지인들, 취준 시절 함께 공부했던 친구들도 만날 수 있었다. 세션을 들어야 하다 보니 길게 이야기 나누진 못했지만 오랜만에 뵈니 반가웠다 ㅎㅎ 다음에 또 만나요!

 

마지막 발표는 흥미 외의 주제라 컨퍼런스에서 조금 일찍 나왔다. 회사 슬랙이 울려 확인해 보니... 내가 경품에 당첨되었다고 한다ㅠㅠㅠㅠ 핀볼은 맨날 업무 담당자 정할 때만 당첨되고 이런 당첨은 처음인데.. 하필 내가 자리에 없을 때 나오다니 아쉽다ㅠㅠ 다행인지 불행인지 컨퍼런스 참여하셨던 팀원분도 경품 당첨되셨다. 인형 받았다고 하셔서 회사에서 한 번만 만지게 해달라고 했다...

ㅂㄷㅂㄷ

반응형

'Memo > 후기+회고' 카테고리의 다른 글

2년차 개발자의 2024 회고  (10) 2024.12.31
[I in We x AWS] 멘토링 후기  (2) 2024.11.30
[우아콘 후기] 2024 WOOWACON  (1) 2024.11.10
서울 우먼잇츠 X 우아한스터디 후기  (0) 2024.09.22
[인프콘 후기] 2024 INFCON  (7) 2024.08.03