뒤늦은 항해 DEV LAB 참여 후기
8 / 31 토요일 스파르타 코딩클럽에서 항해 DEV LAB 세션을 진행한다 하여 참가하게 되었다.
항해 플러스 백엔드 4기 진행 시 코치진으로 멘토링을 해주신 허재 코치님께서도 계시고 같이 항플 과제를 진행해 나간 멘티분들도 계셔서 인사를 나누고 세션을 듣게 되었다.
AI와 자동화로 주니어 개발자 키우기
우선 인프런의 CTO분이신 이동욱 개발자님께서 세션 시작을 해주셨다.
인프랩 회사의 구성원을 간략하게 소개해주셨는데 개발자가 30명 초반으로 구성되어 있고 첫 직장 11명이라고 소개를 해주셨다.
이동욱 개발자님의 개발자 채용의 핵심 모티브는 아래와 같았다.
1. 자기 동기부여가 강한 사람(self-motivation)
2. 제품과 조직의 align이 된 사람
3. 해당 서비스의 전문성을 키우려고 노력하는 사람
4. 기술과 제품 관점에서 결정력이 필요함
5. 리더쉽과 매니지먼트
그리고 기존적인 코드 리뷰에 대한 내용도 상세히 설명해주셨다.
- 신입개발자는 리뷰가 없으면 불안해 하지만 코드리뷰가 업무 진행에 있어서 병목현상이 발생되면 안됨
- 코드리뷰시 기본적인 테스트 커버리지를 통과해야함
- 소나큐브 적용 PR분석과 전체 분석을 통해서 전반적인 코드 퀄리티를 올리도록 헤야한다.
- code rabbit AI 코드 리뷰 도구 : 쿼리 최적화, 누락된 테스트, 전체적인 시퀀스 다이어그램도 만들어준다.
- 코드 리뷰 시간 단축을 위한 외부 도움 및 서포터가 없어도 피드백을 받을 수 있도록 해야한다.
테스트 코드
1. PR마다 수행하고 기존보다 커버리지가 낮으면 실패하도록 함.
2. 소나큐브를 통해서 진행하고 DORA 매트랩을 통해서 개발팀의 생산성을 축정하는 주요 지표가 됨
정리
1. AI 기술은 mongodb / vectordb를 사용해서 임베딩검색을 구축한다.
2. 사공이 많으면 배가 산으로 가는 속담처럼 사람이 많을수록 좋지 않을 수가 있어서 적은팀으로 최고의 가치를 만들기 위해 노력한다고 하셨다.
3. 슬랙이 . 주 7일 활성화가 되어있고, 사내에 개발자 편의성을 위해서 개발들은 대부분 개발자들이 개인 시간을 투자해서 대부분 만들었다고 한다.
4. 데브옵스 팀의 비율이 상대적으로 높다고 한다. (전체 개발 구성원의 20%)
CTO로써 업무를 같이 진행하는 개발자들의 매니지먼트도 진행하는 상황에서 개발업무에서 겪는 여러가지 이슈사항들을 여러가지 기술을 통해서 해결하고 대응한다는게 인상깊었다. 그리고 소수정예 느낌으로 극강의 효율을 내어서 최고의 결과를 얻겠다는 의지가 세션 내내 느껴졌다. 능력이 뛰어난 CTO가 팀의 기술력과 좋은 결과를 결정짓는다는 것이 본 세션에 가장 어울리는 말인거 같다.
앞에 3개의 세션은 회사연락 및 dm으로 집중하지 못하였습니다..
클린 아키텍쳐 무한 성장하는 시스템의 비밀
기다렸던 항해 플러스 코치님의 기술 세션이었다.
알함브라 궁전의 그림을 그리면서 코드를 작성하였지만 결말은 키메라 코드였다...
남의 집을 따라하면 그 끝은 남의 집이다. 세션 중간중간 해주신 문장들이 조금 무서웠다. 실무에서 코드 작성 시 생각정리 없이 잘 짰겠구나 하고 했는데 저 문장을 듣고 다시한번 본인이 사내에서 코드 작성을 진행할 때 어떻게 처리했는지 생각해보게 되었다.
그리고
허재 코치님의 좋은 설계란?
1. 미래를 보지말고
2. 도메인을 보호하고, Single Responsibility Principle 단일책임 원칙을 지켜라고 한다.
총 몇 가지의 가이드라인을 세워주셨다.
책임에 맞게 레이어를 분리하고 비즈니스 로직을 가져라
분리된 역할을 조립했을 때 완성된 하나의 역할을 만들 수 있도록 분리하자.
비즈니스에서 Interface - Applicaiton - Service - Infra 여기서 application과 service에 비즈니스 로직은 단순 집입점이 되는 형식이다.
단방향 의존만 가능하게 만드는 component 레이어를 두고 조립하는 계층을 만들고 사용한다. 서비스는 단순히 진입점이 된다.
그리고 비즈니스 계층의 flows는 Interface Use-Case Domain Component Infrastructure 순으로 내려가는 것이다.
함부로 일반화 시키지말고 도메인을 적절히 만들어야한다. 그리고 모든 객체에는 책임이 있고 하나의 기능을 만들 때 3시간을 넘기면 안된다. 기능 개발을 우선하고 테스트 코드를 만들면서 풀어라 이야기를 해주셨다.
허재 코치님이 생각하는 클린 아키텍쳐라는 철학이 상세하게 드러나는 세션이었고 항해 플러스 백엔드 코치진에서 받은 인기가 현장에서도 느껴지는 그런 세션이었다.
전체적으로 퀄리티 높은 세션말고도 개발자 분들과 네트워킹 선물 교환식타임이 있어서 개발에 대한 재미를 찾을 수 있는 외부활동인거 같다.
200명이라는 인원 수가 생각보다 굉장히 많게 느껴졌고 개인적으로는 100명 이하면 원활한 소통이 진행되는 행사일 수도 있겠다는 생각이 들었다.