어제는 스파르타 코딩클럽에서 진행하는 항해 DEV LAB
행사에 참여했습니다.
행사는 총 5개의 기술 세션과 3개의 커뮤니티 세션으로 구성되어 있었고, 그 중 3개의 기술 세션이 특히 유익했습니다.
세션은 다음과 같은 순서로 진행되었습니다:
- Github 팔로우 주고받기 - 커뮤니티 세션 👨👩👧👦
- AI와 자동화로 주니어 개발자 키우기(향로, 이동욱) - 기술 세션 🎤
- 책임 분리의 마법: 깔끔한 폴더 구조 만들기(테오) - 기술 세션 🎤
- 조별 기술 토론 타임 - 커뮤니티 세션 👨👩👧👦
- 랜덤 선물 교환 타임 - 커뮤니티 세션 🎁
- Git Workflow로 팀워크 혁신하기 - 기술 세션 🎤
- 클라우드로 무장한 고가용성 및 장애복구 비법 - 기술 세션 🎤
- 클린 아키텍처: 무한 성장하는 시스템의 비밀(허재) - 기술 세션 🎤
기술 세션 중에서 가장 유익했던 세션, 그리고 회사에 실제로 도입하고 싶었던 세션인 향로님의 발표 내용을 정리해보겠습니다.
최근 모든 직장인, 특히 개발자들의 이직 주기가 매우 짧아졌습니다. 특히 개발자의 경우 그 주기가 더 짧아 2~3년 정도라고 합니다.
이처럼 이직 주기가 짧은 상황에서, 일반적으로 입사 후 1년가량은 적응 기간으로 사용되고, 그 후 1~2년간 실질적인 업무를 수행하게 됩니다.
그래서 인프랩에서는, 그렇다면 1년간의 적응 시간을 단축시키자! 라는 목표를 가지고 AI와 자동화를 활용하여 적응 시간을 단축시키는 노력을 하고 있고, 회사의 특성상 당장 경력이 많은 개발자를 채용하기도 어렵기 때문에 주니어 개발자를 키우는데 많은 노력을 기울이고 있다고 합니다.
결과적으로 인프랩의 목표는 '일 잘하는 사람'을 직접 길러내는 것으로 보입니다.
여기서 말하는 일 잘하는 사람이란, 미션과 가치를 공유하고, 미션과 가치에 부합하는 일을 하는 사람
이라고 하시더라구요.
당연하게도, 이를 위해 가장 먼저 하는 것은 미션과 가치를 공유하는 것이겠죠?
실제로 인프랩은 개발팀의 미션과 가치를 공개적으로 공유하고 있습니다.
내용이 굉장히 좋기때문에 이것도 한번쯤 읽어보시는 것도 좋을 것 같습니다.
인프랩은 코드 리뷰를 통해 개발자에게 잦은 피드백을 제공하여 빠르게 적응하고 성장 할 수 있는 환경을 조성하고 있습니다.
그러나 이러한 코드 리뷰는 생각보다 굉장히 많은 자원을 소모하는 작업이기 때문에, 이를 아래와 같은 도구를 통해 자동화하여 효율적으로 진행하고 있다고 하네요.
소나큐브(SonarQube): 코드 품질을 분석하는 오픈소스 플랫폼입니다. 코드 스멜, 테스트 커버리지, 라이브러리 취약점 및 잘못된 패턴 등을 체크하여 전반적인 코드 품질을 높일 수 있도록 도와줍니다.
codeRabbit.ai: AI 코드 리뷰 도구로, 내부에 벡터 DB를 탐색하는 AI를 사용하여 자동으로 코드 리뷰를 수행한다고 합니다. 또한 코드를 바탕으로 시퀀스 다이어그램도 생성하여 코드의 흐름을 이해하기 쉽도록 도와준다고 하네요. 실제로 써보지 못해서 정말 신뢰할만한 리뷰와 다이어그램을 생성하는지는 모르겠습니다만, 이런 도구를 활용하여 코드 리뷰를 자동화하고 있다고 합니다.
그 외에도 DORA 메트릭, Grafana 대시보드를 통한 개개인의 생산성 지표 및 팀의 성과를 측정하고, 이를 통해 개발자들이 어떤 부분을 개선해야 하는지에 대한 피드백을 제공하고 있다고 합니다.
이 세션에서 굉장히 탐이났던 부분입니다.
인프랩은 메타서치(metasearch)를 통해 사내에서 사용하는 모든 도구들을 통합 검색할 수 있는 환경을 구축했다고 합니다.
이를 통해 Jira
, Confluence
, Github
, Slack
등 모든 데이터를 한곳에서 검색할 수 있도록 하였을 뿐더러, 통합된 데이터를 활용해 상배봇
이라는 Slack Bot
을 만들어서 언제든지 답변을 받을 수 있는 환경을 구축하고 있다고 합니다.
다시말해, 이제 개발자들은 어떤 질문이든지 사람이 아닌 상배봇에게 부담 없이 물어볼 수 있게 되었다고 합니다.
다른 회사들도 마찬가지겠지만, 인프랩도 문서화를 강조하고 있습니다.
하지만 정말 와닿은 부분은, 단순히 문서화를 강조하는 것이 아니라 개발자들이 문서화를 하도록 분위기를 조성하는 방식이었습니다.
말로 아무리 강조해도 사실 문서화는 정말 귀찮고 번거로운 작업이죠.
문서화를 해두어도 사람들이 그걸 찾아보려는 노력을 하지 않는다면 결국은 문서가 있는곳을 알려주고 좀 찾아보라
고 서로 부정적인 피드백을 주게 되는 경우가 많습니다.
하지만 위에 언급된 상배봇과의 조합을 통해 접근성을 높임으로써 개발자들이 정말 '문서를 작성해두면 내가 편해지는구나' 라는 것을 스스로 느끼게 하고 있다고 합니다.
이 부분은 많은 사람들이 간과하는 요소입니다.
개발 커뮤니티나 다른 조직에서도 느꼈듯이, 같은 조직 내에서 사용하는 용어가 다르면 커뮤니케이션 비용이 상당히 증가할 수 있습니다. 그럼에도 불구하고 이야기를 꺼내면 많은 사람들이 굳이..?
하는 표정을 보이고는 합니다.
다시 말하지만, 조직 안에서 사용하는 용어가 다르다면 그것만으로도 커뮤니케이션 비용이 굉장히 높아집니다.
그래서 인프랩은 이러한 커뮤니케이션 비용을 줄이기 위해 구글 시트를 활용해서 자신들의 용어사전을 만들고, 상배봇이 이를 학습할 수 있도록 하고 신규 입사자가 바로바로 찾아 볼 수 있도록 하여 커뮤니케이션 비용을 줄이고 있다고 합니다.
이 부분도 매우 유익했습니다.
물론 손이 많이 가고 번거로운 일일 수 있지만, 공식적으로 공유되는 정보 외에도 비공식적인 자리에서 중요한 정보가 공유되는 경우가 생각보다 많죠.
인프랩은 이러한 정보들을 상배봇이 학습하고 기록하도록 하여, 신입 개발자들이나 팀원들이 팀의 업무 흐름을 쉽게 파악할 수 있도록 하고 있습니다.
특히, 단순한 기록하는것이 아니라 이를 위한 슬랙채널, 즉 일종의 창구를 별도로 만들어서 운영한다는 점이 인상깊었습니다.
인프랩에서는 자체적으로 시스템을 구축하는 대신, 오픈소스를 활용하는데에 매우 적극적이었습니다.
물론 초기에는 직접 고유한 체계를 갖추려는 시도도 했었다고 하는데, 이는 정말 큰 리소스를 소모하는 일이었다고 합니다. 결국 이로인해 다시 오픈소스로 회귀하는 과정을 거쳤다고 하구요.
관리 뿐 아니라 활용 측면에서도 이미 수많은 유즈케이스를 가진 오픈소스의 이점은 확실했다고 합니다.
전반적으로 인프랩의 업무 프로세스 자동화 수준은 매우 높은 것으로 보였습니다.
특히, 단순한 규칙이나 강제가 아닌, 개발자들이 스스로 필요성을 느끼게 하고 (문서화), 명확한 행동 지침을 제공하는 방식 (구두 논의 채널)이 인상적이었습니다.
다른 세션들도 물론 도움이 되었고 커뮤니티 세션도 즐거운 시간이었습니다. 다음 세미나도 기회가 된다면 꼭 다시 방문하고싶네요.