Kotlin/넥스터즈 22기

[230114] 넥스터즈 22기 두번째 세션 활동 후기

kth990303 2023. 1. 17. 16:29
반응형

넥스터즈에서의 두 번째 활동 세션이 진행됐다.

이 날은 첫 번째 세션에 진행된 팀 빌딩 과정에서 만들어진 팀끼리 기획을 고도화하고 프로세스 및 협업 툴을 결정하는 활동을 진행했다.

 

첫 번째 세션 후기는 https://kth990303.tistory.com/409 를 참고하자.

 

두 번째 세션의 상세 일정은 아래와 같다.

두 번째 세션 진행 일정


두 번째 세션 진행 전, 기술 스택 결정 관련 회의

우리 팀의 경우, 두 번째 세션 진행 전에 미리 기술스택이랑 기능 관련 회의를 어느 정도 진행해둔 상태였다.

특히 프론트 팀의 경우, 카톡으로 기술 스택을 초고속으로 결정하고 초기 세팅까지 미리 해놓는 어마어마한 실행력을 확인할 수 있었다.

역시 3년차 고수들의 모임 ㄷㄷ

nextjs, ts + turbopack을 사용하기로 한 듯

중간에 yarn berry랑 turbopack 호환성 관련 이슈가 있다고 들었던 것 같은데 잘 해결했는지 모르겠다.

nextjs, ts는 확정인 듯하다.

패키지 매니저는 yarn berry를 쓰는 듯? 확실히 실무에서는 npm보다는 yarn을, 그리고 최근에 나온 yarn berry를 많이 쓰긴 하나보다.

 

백엔드 기술스택 관련 대화내용

백엔드는 회의가 생각보다 길어져서 두 번째 세션에 최종 결정하기로 결론이 났었다.

팀원들이 익숙한 스택일수록 좋을 듯해서 Java + Spring은 후순위로 밀려났으며, 최종적으로는 Kotlin + Spring (이하 코프링), NestJS 중 두번째 세션에서 결론을 짓기로 했다. 나는 개인적으로는 kotlin 실력을 키우기 위해 넥스터즈에 들어온거라 스프링을 쓰게 될 경우 kotlin을 사용할거란 점이 마음에 들었다. 그리고 spring 진영뿐만 아니라 nodejs 진영의 백엔드 프레임워크도 한 번 경험해보면 좋을 듯해서 NestJS도 개인적으로 꽤나 괜찮다고 생각했다. (그래도 개인적인 선호도는 kotlin + spring > nestjs)

 

또, DB 관련해서도 얘기가 나왔다. MySQL(or MariaDB) vs PostgreDB 중에서 무엇을 쓸지 얘기를 많이 했다. 사실 나는 postgredb를 써도 좋을 듯하고, mysql을 써도 좋을 듯하다고 생각했다. postgredb는 실제로 많이 쓰이는 db고 나 역시 경험이 적기 때문이다. 그렇지만 해당 프로젝트에서 mysql을 쓰지 않고 postgredb를 쓸 이유를 찾기가 어렵다는 단점이 있었고, mysql에 비해서 비교적 덜 익숙하기 때문에 꽤나 고민되는 부분이었다. db 역시 두 번째 세션 날에 최종적으로 결론짓기로 결정!

(그 외에 cockroachdb도 잠깐 얘기가 나오긴 했다ㅋㅋ 데브시스터즈에서 쓰는 분산처리용 db인 듯)


두 번째 세션 당일

우선 가장 먼저 기능회의를 진행했다.

우리는 출석체크 애플리케이션이기 때문에 '출석체크 어뷰징을 어떻게 막을지'에 대한 얘기를 아무래도 많이 나누게 됐다.

결정적으로는 중복 로그인 방지, 마이페이지, 출석 등의 기능들이 들어가지 않을까 싶다. 물론 개발하다보면 더 많은 기능들이 추가될 수도 있을 것 같다. 애자일하게 개발하는 방향으로 가기로 결정했다.

 

그리고 각 직군마다 따로 얘기를 해서 기술스택 및 초기세팅을 진행하기로 했다.

코프링을 사용해본 사람 수는 적었지만 안드로이드 개발할 때 kotlin을 접한 적이 있는 팀원들이 있었고, 함수형 프로그래밍에 비교적 java보다 편리하다는 점 덕분에 최종적으로는 코프링을 사용하기로 결정했다. 코프링을 사용하면서 JUnit vs Kotest 얘기도 나왔는데, JUnit은 다들 익숙하므로 새롭게 Kotest 경험을 해보고 맛보자는 취지에서 Kotest로 결정됐다.

또, DB는 위에서 말한 것과 같이 MySQL vs PostgreDB 중에서 회의를 진행했다. PostgreDB의 팀 선호도가 더 높긴 했지만, 사용 이유가 불분명하다는 단점이 존재했다. 그렇지만 우리는 회사가 아닌 동아리 팀이며, 이 때 아니면 언제 선호도가 높은 툴을 사용하겠냐 싶어서 최종적으로는 맘이 끌리는대로 postgreDB를 선택했다.

최종적으로 결정된 협업 프로세스 및 스택

스프링부트 버전은 최신 버전인 3.0.0을 택하기보단, 비교적 안정적인 버전인 2.7.7을 선택했다.

그 외에 JPA, queryDSL, spring security 등을 사용하는 방향으로 결정이 났으며, IDE 및 코드 컨벤션은 intelliJ default 컨벤션을 따르기로 했다.

 

 

최종적으로 코프링, postgreDB로 결론이 나서 아래와 같이 깃허브 레포에 초기세팅을 진행했다!

https://github.com/Nexters/nexters-admin-server

 

GitHub - Nexters/nexters-admin-server

Contribute to Nexters/nexters-admin-server development by creating an account on GitHub.

github.com

 

이렇게 결정이 된 후, 팀의 PM님들이 각 팀의 기능 및 기획 발표를 5분씩 총 1시간동안 진행했다.

이렇게 17시에 두 번째 세션이 끝나고 회식을 하러 갔다.


코프링 프로젝트를 오랜만에 하게 된 만큼 기대가 된다.

이 프로젝트를 통해 코틀린이랑 스프링 실력이 조금 더 상승하면 좋겠다.

반응형