6 minute read

우연한 기회로 인프콘 2023 티켓을 얻게 되어, 오늘 코엑스에서 진행된 인프콘에 다녀왔다!

작년에는 추첨에 탈락해서 아쉽게 못 갔는데, 오히려 올해가 내가 참여한 첫 인프콘이라 오히려 더 즐겁게 즐겼던 것 같다.

img

구분

  1. 세션
  2. 인프콘
  3. 그 외

세션

오늘 내가 들은 세션은 총 4개이다.

어쩌다 보니 맨 첫 세션을 제외하곤 유명하신… 분들의 세션만 들은 모양새가 되었다. 원랜 이게 아니었는데

아직 기억이 생생할 때 각 세션에 대해 기록을 해 두고자 한다.

코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기

이 세션은 사실 재미있는 비하인드 스토리가 있다.

원래부터 내가 관심있는 분야가 코틀린, 스프링, 테스팅, 아키텍처, 성장과 고민이다 보니까, 내가 들으려고 계획했던 세션 역시 대부분 이 범위 내에 있었다. 이 세션 역시 마찬가지였다.

근데 당일에 보니 발표자가 이석재 님… 이석재 님? 어디서 봤다 싶었더니 같이 블로그/컨퍼런스 요약하고 공유하는 스터디에 같이 계신 분이다 ㅎㅎ

심지어 실명만 얼마 전에 알게 되었지, 원래 ‘돌재’라는 닉네임으로 진작부터 알고 계신 분이었다.

ㅋㅋㅋ 웃으며 거의 맨 앞자리에 앉아서 세션을 듣고, Q&A에도 참여했다.

나는 코틀린 + 스프링으로 개발을 하고 있지만, 코프링으로 ‘전환’한 게 아니라 ‘합류’한 것에 가깝기 때문에, 석재님은 나와는 다른 경험을 하셨다고 생각했다. 코틀린의 도입 및 따라오는 여러 라이브러리의 호환성 이슈를 경험하고 고민한 내용이 궁금했다.

많은 부분에서 내가 코틀린 + 스프링을 사용하며 좋아하거나, 경험하고 있는 내용과 비슷했다. 다른 점들이 눈에 들어왔다: Kotest, Kotlin-logging, Fixture Monkey, RefreshVersions. 특히 kotest는 내가 굉장히 좋아하는 given-when-then 패턴을 코드 레벨에서 강제할(!) 수 있다는 점이 맘에 들었다. 나도 도입을 고려해 봐야지 한편으로는 놀라웠다. 새로 도입하려는 기술에 대해 기존 기능에 대응하는 라이브러리를 파악하는 것뿐만 아니라, 각 라이브러리의 오픈 소스 안정성 (많은 사람들이 사용하고 있고, 검증된 라이브러리인가), 단점 등의 내용까지 미리 파악하고 이를 근거로 동료들을 설득하거나, 스스로 설득되었다는 점은, 신기술 도입을 고려할 때 나 스스르도 어떤 행동을 지향해야 하는지 돌아보게 되는 계기가 되었다.

‘주니어 개발자가 팀을 설득할 때’ 필요한 내용은 내가 생각하는 바와 크게 다르지 않았다. 주니어라는 타이틀을 뗴고 생각하면 나 역시 한 명의 팀원이자 동료일 뿐이고, 그렇기 때문에 내가 동료들을 설득하려면 도입하려는 기술에 대한 나 스스로부터의 깊이 있는 이해와 합리적인 근거가 필요할 것이다. 더불어 이를 뒷받침할 수 있는 신뢰 자본은 하루 아침에 생겨나는 게 아니다.

만약 오늘 세션을 미처 보지 못하셨지만, 팀에서 코프링 도입을 고려하고 있거나 도입 중이라면, 추후 인프런에 올라올 인프콘 2023 중에서 석재님의 세션을 참고해 보면 좋겠다 (예시 코드는 여기에).

인프런 아키텍처 2023 ~ 2024

내가 힘든 SI 생활을 보내면서 자주 읽었던 블로그의 주인이신 이동욱님 (a.k.a. 향로, 조졸두, jojoldu)님의 세션이다. 사실 동욱님 세션이라서 들었던 건 아니고, 인프런 아키텍쳐라는 주제가 너무너무 궁금했다.

사설을 좀 덧붙이면… 나도 언젠가 스타트업에 팀장 이상의 리더로서 회사의 성장을 경험해 보고 싶은 욕구가 매우 강하다. 아스팔트 틈(SI)에서 온실(한국 빅테크)로 옮겨온 나에게, 야생 환경에서 엔지니어는 어떤 문제를 겪고 어떤 접근법으로 풀어내는지 매우 궁금했다.

기능 조직과 목적 조직의 장단점, 이를 해결하기 위한 하이브리드 조직 구조, MSA가 부적합한 상황에서 목적조직 별 프로젝트 구분법, 그로 인해 튀어나오는 여러 문제들.

재밌는 점은, 혼자서 생각해 볼 때는 대부분의 문제점을 떠올리지 못했는데, 문제점을 들었을 때 해결법은 내가 떠올린 내용이 얼추 맞았다. 분할한 기존 모듈 N개만큼의 인프라 설정 필요 -> 계층 복제 간소화, 만큼모든 API가 성공함을 보장해야 한다 -> Message Queue 사용 등. 아직 내가 발생할 이슈를 미리 예측하기에는 경험이 부족하지만, 내 경험으로도 해결법은 대강 비슷하게 접근할 수 있겠구나 싶었다.

한편으로는 빅테크 (이 표현이 맞는지는 모르겠으나 맨날 네카라쿠배 거리긴 싫어서 그냥 한국 빅테크라고 하겠다) 환경에서는 DevOps 팀, SRE 팀의 지원이 빵빵하고, 자원도 빵빵하고, 자체 IDC를 사용하고… 한 마디로 자원이 빵빵한 온실 속 화초 같은 환경인데, 오히려 그렇기 때문에 인프런의 경우 같은 아키텍처 개선이 자주 이루어지지는 않겠다는 생각이 들었다. 내가 속한 팀은 회사 내에서도 스타트업-ish한 성격이 꽤 있지만, 어쨌든 회사의 다양한 지원을 받을 수 있는 환경이니까. 그러다 보니 언젠가 스타트업을 경험해 봐야겠다는 내 생각을 다시금 확인하게 되었다.

어느 날 고민 많은 주니어 개발자가 찾아왔다 2탄: 주니어 시절 성장과 고민들

내가 마음 속 은사님으로 생각하는 내 커리어의 빛과 소금 김영한님의 세션이다. 사실 이쪽 세션은 그렇게 적을 내용이 많지는 않다. 올해 초에 영한님의 20만 수강생 달성 이벤트 때, 운 좋게 당첨되어 영한님에게 1:1 온라인 멘토링을 받았다. 그 때 내가 드렸던 질문의 큰 맥락이 이 세션의 주제와 동일했고, 그러다 보니 비슷한 내용을 듣게 되었다.

최근 여러 시니어 엔지니어 분들과 대화를 하며, 내가 느낀 점을 정리하면 아래와 같다.

  • 기본적 개발에 대한 관심과 흥미만 있다면, 성장하는 것은 큰 문제가 없다. 이는 보통 커리어 7년차 이내에 완성된다.
  • 주니어 시절 기술 습득의 우선 순위는 ‘현재 회사에서 사용하는 기술’ > ‘업계에서 유망한 기술’ > ‘그 외 기술’ 등.
    • 예를 들어 나에게는 Kotlin, Spring, JUnit5 > JPA > Kafka, Redis 등이 되겠다.
  • 기술과 비지니스의 중요도는 50 : 50 이다.
    • 개발자가 비지니스에 대한 이해를 소홀히 해서는 좋은 설계, 일정 산정 등을 할 수 없다.
  • 내가 간단하게 사용만 하는 기술 (나에게 현재는 Redis 등)에 대해서는 간단한 이해만 곁들이면 된다. 내가 주력으로 사용하는 기술 (Kotlin, JVM, Spring)에 대해서는 원리에 대한 깊고 깊은 이해가 필요하다.
  • 조바심 내지 말고, 거북이형 개발자가 되자.

스프링과 함께 더 나은 개발자 되기

스프링 구루 (Guru) 토비님, 또는 이일민 님의 세션이다. 사실 나는 토비님의 책을 가지고는 있지만 읽어본 적은 없고, 얼마 전에 내신 인프런의 스프링 부트 강의도 아직 구매하지 않았다. 때가 되면 구매할 것이다.

그런 내가 이 세션을 들은 이유는, 스프링과 역사를 거의 같이 하신 토비님은 스프링과 함께 어떻게 성장하고 발전하셨는지 궁금했기 때문이다.

전체적으로는 내가 평소에 지향하는 접근법과 비슷했다.

  • 이건 왜 이렇지?
  • 내가 어떻게 사용할 수 있지?
  • 그렇게 사용함으로서 나는 어떤 이 점을 얻을 수 있지?

다만 이를 머리로만 이해하고 있는 것과, 실제 행동으로 옮겼던 경험을 듣는 것은 제법 다른 듯 하다. 나는 스프링, 코틀린 등을 사용하고 있지만, 이들의 진짜 low level까지 파고 들고, 만든 사람이 어떤 의도로 이렇게 만들었으며, 그럼으로서 제작자가 얻은 이점은 어떤 것이 있으며, 그것이 나에게도 해당되는지, 소위 말해 진짜 딥하게 파고들었던 경험은 아직 없다.

개인적으로 기억에 남는 인상적인 내용은 아래와 같다.

  • 스프링의 IoC/DI에 대한 토비님의 탐구 과정
  • 훈련과 개선 - 업무 외에 훈련이 필요하다.
  • 공유와 논쟁 - 한 문장, 한 문단, 5분간, 한 시간 동안, 하루 동안, 강의를 하며, 책을 쓰며 ‘나만의 언어로’ 내가 아는 것을 공유하고 이에 대해 논쟁하자.

개인적으로는 언젠가 해야겠다…고 막연히 생각하던 컨퍼런스 발표를, 내년 중에는 진행하고 싶다고 마음 먹는 계기가 되었다.

인프콘

개발자 오픈톡방을 여러 개 들어가 있지는 않지만, 평소에 내부에서 활동을 활발히 하는 편이다. 이러한 목적 중 하나는 내 커리어와 개발 경험에 대해 다른 개발자분과 교류하며, 서로 도움을 받고 더 나은 방향으로 성장하는 것이다.

그러다 보니 평소에 닉네임으로 알고 계시던 많은 개발자분들을 오늘 오프라인에서 뵙게 되었다. 안산님 현직자방에서 8분, 개발바닥 2사로에서 2분, 그리고 영한님. 컨퍼런스를 같이 보고, 들은 내용에 대해 옆의 분들과 간단히 얘기해 보며 새생각해 보는 것은 오프라인 컨퍼런스에서만 얻을 수 있는 매력이 아닌가 싶다.

이번 인프콘에는 총 17개의 후원사가 있었는데 (우리 회사 포함), 나는 그 중 네 곳을 방문했다: 카카오페이, 카카오뱅크, JetBrains, 점핏. 후원사 부스가 있어서 상품을 많이 받는 것은 좋은데, 그 외에 어떤 가치를 기대해 볼 수 있을까? 발표자가 속한 회사의 부스가 열리거나, 추첨 등을 거치지 않고 원하는 사람은 누구라도 해당 회사의 현직자와 대화해 볼 수 있는 공간이 되었으면 좋겠다.

또는 부스 방문을 위한 줄이 너무 길지 않았으면 좋겠는데, 그러려면 부스의 크기가 각각 훨씬 커지거나, 부스의 수를 늘리거나, 참석자의 수를 줄여야 하는데, 셋 다 현실적으로 다소 어려움이 있다. 어쨌든 부스를 통해 회사들은 참여자들에게 회사를 알릴 수 있고, 참여자는 기존에 몰랐던 회사들을 접할 수 있다.

개인적으로 생각하는 인프콘의 최고 장점은, 발표자가 매우 골고루 분포한다는 점이다. Naver Deview나 if Kakao 등은, 해당 회사의 개발자가 발표하는 경우가 대부분이기 때문에, 제공할 수 있는 경험이 편향되거나 한정적일 수 있다. 내부자와 외부자가 제법 뚜렷히 구분된다는 성격이 강해서, 참여할 때 다소 아쉬움이 있었다. 인프콘은 이런 면에서 제법 자유롭다. 인프랩 소속의 엔지니어 분들도 세션을 진행하시지만, 그렇지 않은 분들이 대다수이며, 이들은 저마다의 환경에서 쌓은 경험과 고민을 쏟아낸다. 이런 다양한 내용을 여러 개발자분들과 함께 들을 수 있다는 점은 인프콘의 가치를 한층 더해준다.

그 외

네트워킹 프로그램이 진행되는 곳에서 한 쪽에, 모든 참여자의 이름으로 이루어진 ‘INFCON 2023’ 문구가 있었다. 그 중에서 내 이름도 찾아서 사진을 올려 둔다 ㅎㅎ

img

동욱님도 멀리서 뵀는데, 아쉽게도 이미 인파에 둘러싸여 계셔서(?) 여유롭게 인사드리기엔 어렵겠다 싶었다. 나중에 또 기회가 있겠거니 생각하고, 오늘은 단념했다 ㅎㅎ

네트워킹 프로그램에 잠깐 참여했다가 귀가하려던 찰나, 영한님을 뵙게 되어 인사를 드리게 되었다. 영한님에게 있어서 나는 스쳐가는 한 명의 주니어 개발자였을 뿐인데, 알아보고 반갑게 인사해 주셔서 정말 감사했다 ㅎㅎ

img

많은 얘기를 듣고, 고민하게 되고, 즐거운 인프콘이었다. 내년에도 어떻게든 참여해야겠다고 여러 번 느끼게 되었다 ㅎㅎ

img

Leave a comment