Kotlin/넥스터즈 22기

[Nexters] 넥스터즈 22기 최종 이수 후기

kth990303 2023. 3. 6. 13:15
반응형

3월 4일, 마지막 8주차가 지나가고 넥스터즈 22기를 최종적으로 이수했다.

넥스터즈를 두 기수 이상 이수해야 받을 수 있는 `수료` 조건을 만족한 것은 아니지만, 나름 한 기수를 좋은 점수로 `이수`했기 때문에 후기를 작성해보려 한다. (수료 조건: 두 기수 이상 이수 / 이수 조건: 한 기수 이상 일정 점수 이상 획득)


타이트한 일정, 그럼에도 성공적으로 마무리된 프로젝트

우리 팀은 대부분 직장인으로 구성돼있다. 디자이너, 프론트 팀원들은 전부 직장인이었고, 백엔드 팀원들은 나랑 한명을 제외하곤 모두 직장인이었다. 백엔드는 6년차 개발자 한 분, 나, 우테코 4기 정, 우테코 5기 애쉬로 구성돼있다. 다들 회사 또는 우테코 생활때문에 굉장히 바빴음에도 불구하고 열심히 임해주셔서 누락된 api 없이 모두 구현된 상태로 마무리할 수 있었다

막판에 누락된 api가 발견됐을 때

물론 8주밖에 안되는 타이트한 일정이다보니 가끔 위처럼 누락된 api가 발견되곤 한다. 위 짤은 배포 하루 전에 누락된 api가 발견돼 톡으로 얘기나눈 내용을 캡처한 모습이다. 다행히 프론트, 백엔드 모두 새벽까지 불태우면서 열심히 일한 덕분에 배포날에는 누락된 기능이 거의 없이 잘 마무리될 수 있었다. 만약 넥스터즈에 지원하게 된다면 일정이 정말 타이트하기 때문에 구현량을 적절히 잘 조정하고 일정관리를 잘 하는 것이 필요할 듯하다.

 

8주차 마무리하고 찍은 사진들

성공적으로 최종 발표를 하고 찍은 사진들이다 ㅎㅎ

우리 팀은 출출팀이지만, 애플리케이션 이름은 `위클리`로 이름지었다. 그렇기 때문에 (왼쪽 사진을 자세히 보면 알 수 있듯이) PPT에는 `위클리`라는 이름으로 발표가 진행됐다. 넥스터즈에서 현재까지 수기로 출석체크한다길래 이번에 우리 팀에서 출석체크 애플리케이션을 만들어본 셈. 다음 기수부터 우리 애플리케이션이 사용됐으면 좋겠다.

 

해당 프로젝트의 소스 코드는 아래 링크에서 확인 가능하다.

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

 

GitHub - Nexters/nexters-admin-server: 🗓️ Nexters 22기 출출팀 당신의 한 주의 출석을 책임지는 웹 "위클

🗓️ Nexters 22기 출출팀 당신의 한 주의 출석을 책임지는 웹 "위클리"를 책임지는 서버 - GitHub - Nexters/nexters-admin-server: 🗓️ Nexters 22기 출출팀 당신의 한 주의 출석을 책임지는 웹 "위클리"를 책

github.com

Frontend: https://github.com/nexters/nexters-admin-client

 

GitHub - Nexters/nexters-admin-client: 🗓️ Nexters 22기 출출팀 당신의 한 주의 출석을 책임지는 웹 "위클

🗓️ Nexters 22기 출출팀 당신의 한 주의 출석을 책임지는 웹 "위클리". Contribute to Nexters/nexters-admin-client development by creating an account on GitHub.

github.com


좋았던 점

이번 기수에서 팀 프로젝트를 하면서 좋았던 점이다. 다만 모두가 객관적으로 느낀 부분이 아닌, 나에게 좋았던 점 위주로 작성할 예정이다.

 

Kotlin으로 프로젝트 기획부터 마무리까지

나는 Kotlin으로 특정 프로젝트를 시작부터 끝까지 진행했던 경험은 없다. 우아한테크코스 지원플랫폼 근로에 참여하면서 kotlin, kotest로 코드를 작성하긴 했지만, 완전 초기세팅부터 진행했던 프로젝트는 아니었다. 그렇기 때문에 이번 넥스터즈 경험을 통해 코틀린으로 처음부터 코드를 작성할 수 있다는 점이 정말 기대됐다.

 

Java, Kotlin 언어로 스프링을 이용하여 서버 개발을 진행하는 넥스터즈의 깃허브 레포를 확인했을 때 관심 분야와 겹쳐 관심을 갖게 되었습니다. 넥스터즈는 전국의 다양한 상황에서의 트러블슈팅을 경험한 대학생/직장인 개발자들이 모이는 곳입니다. IT 연합동아리 최정상급에 해당되는 넥스터즈와 함께 하여 수많은 상황으로 발생할 수 있는 트러블슈팅에 대해 다양한 시각으로 접근하는 능력을 배우고 성장하고 싶어 지원했습니다.

- 넥스터즈 22기 지원서류문항에 내가 작성했던 지원동기

 

실제로 나는 넥스터즈에 서류지원을 했을 때 지원동기를 위와 같이 작성했다. 요약하자면 코틀린 실력을 키우기 위해 지원했던 것이다.

이번 프로젝트를 하면서 kotlin의 scope function, kotest 문법 등에 대해 좀 더 생각해볼 수 있는 계기가 되었다. 또한, kotlin의 null-safe 편리성이라든지 타입 관련해서 Java에 비해 정말 편리했던 점들을 다시 한 번 느낄 수 있었다. 부작용이 있다면 다시는 Java로 돌아가기 싫어질 정도로 Kotlin의 편리성을 크게 느꼈다는점? ㅎㅎ... 코틀린으로 프로젝트의 시작과 끝을 담당하게 되니까 코틀린에 대한 익숙한 정도가 정말 많이 상승했으며, 실력 또한 많이 늘게 됐다. 어떻게 보면 넥스터즈에 지원하게 된 이유를 실제로 만족시킨 삶을 보낸 것이다.


다양한 사람들과의 협업

우테코에서는 우테코 교육을 들은 사람들끼리, 또 어떻게 보면 아직 현업자가 아닌 분들이랑 협업을 했었다. 그렇지만 넥스터즈에서는 다양한 직장에서 근무하신 여러 협업자분들과의 협업을 진행하게 됐다. 그렇기 때문에 컨벤션이 정말 많이 달랐는데, 이러한 환경 속에서의 개발 관련 토론은 정말 재밌었다. 아래는 토론 내용 중 일부를 가져온 것이다.

 

  • 인프라 세팅 관련 AWS vs (크레딧이 포함된) NCP
  • 개발 시간이 굉장히 타이트한데 테스트 코드가 필요한가?
  • 코드 중복을 감안하면서까지 OSIV를 꼭 끄는 것이 좋을까?
  • 서비스 레이어의 모든 메서드에 @Transactional이 꼭 필요할까?

 

그 외에 직장인분들과 작업을 같이 하고 회식을 진행하다보니 IT 관련 회사 썰, 이직 썰 관련 얘기가 정말 자주 나왔다. T사가 어떻니, K사가 어떻니, D사가 어떻니 등등. 최근 이슈가 됐던 채용취소 및 채용동결 관련 얘기부터 연말정산 얘기까지. 대학생끼리 협업을 한다면 절대 나올 수 없는 주제들로 얘기를 하면서 정말 흥미롭게 대화에 참여했었던 기억이 난다.


NCP 크레딧 제공, 그리고 운영진들의 노력

운영진들이 장소 대여 및 일정관리에 정말 많은 노력을 해주고 있다는 부분들이 느껴졌다. 또, Naver Cloud Platform 측에서 넥스터즈 회원들에게 NCP 크레딧을 20만원 제공해줬었는데 이 역시 운영진의 노력이 아니었다면 불가능했으리라 생각한다.

NCP 크레딧 20만원 사용내역

실제로 NCP 크레딧이 아니었다면 아마 이번 애플리케이션을 배포하면서 서버비용을 1/N 하지 않았을까 싶다.

 

회식 관련해서 장소를 예약해주기도 했고, PM님들과 운영진들이 끊임없이 일정 및 기획/개발 관련 이슈로 많은 대화를 나눴다고 한다. 나는 PM 역할을 맡진 않았어서 이 부분은 몰랐었는데 PM 형이 CEO, CTO 분이랑 대화를 나눴다는 얘기를 듣고 실제로 운영진들이 열심히 해주고 있다는 생각이 들었다.


아쉬웠던 점

이번 기수에서 팀 프로젝트를 하면서 아쉬웠던 점이다. 다만 모두가 객관적으로 느낀 부분이 아닌, 나에게 아쉬웠던 점 위주로 작성할 예정이다.

 

타이트한 일정 + 배포만 하면 끝나는 일정

모든 개발 동아리 특성 상 어쩔수 없는 부분이라 생각한다. 그럼에도 불구하고 이 점이 나는 좀 아쉬웠다.

백엔드에서는 이번에 MySQL 대신 PostgreSQL에 대해 공부하기 위해 PostgreSQL을 DB로 사용했다. 그런데 8주라는 타이트한 일정 때문에 `구현`이 최우선적인 목표가 되었다. 이는 나쁘지 않다고 생각한다. 구현을 먼저 하고 리팩터링이 후가 되는 것은 당연하다. 그런데 배포가 마지막 종착지가 되다보니 `구현`이후에 `리팩터링`은 진행이 되지 않는 것이 좀 아쉬웠다. 소규모 애플리케이션이다보니 더더욱 `구현` 위주로 마무리가 됐던 것 같다. 

 

일정이 조금 더 널널했다면 하고 싶은 것들을 적어보자면 아래와 같다.

  • Postgres 실행계획을 살펴보고 index 적용 및 쿼리튜닝을 통한 리팩터링
  • 테스트 코드 보강 (막판에 일정이 타이트해서 인수테스트는 많이 작성하지 못했다.)
  • 인프라 Bastion Server 세팅 및 보안 강화

 

특히 Postgres 에 대한 공부가 덜 된것은 많이 아쉽다. MySQL과 Postgres의 Join 성능차이, 실행계획 등을 살펴보고 싶었는데 index가 미적용돼있는 상태인데다가, `구현`이 중요하다보니 쿼리튜닝에 대한 중요성이 상대적으로 낮다 보니 미뤄질 수 밖에 없었다. 나중에 우리가 만든 애플리케이션이 채택되고 실사용자 및 트래픽이 생겨난다면 추가적으로 만져볼 수 있음 좋겠다.

 

물론 자체적으로 팀원들을 설득해서 계속 프로젝트를 진행하자고 할 수는 있겠지만, 사실상 다들 직장을 다니고 있기 때문에 쉽지 않은 것이 현실. 이전 기수가 개발한 애플리케이션을 리팩터링하는 팀이 있는 것도 나쁘지 않겠다라는 생각도 들었다. (수요가 있을진 모르겠지만..ㅋㅋㅋㅋ)


슬랙 미활용, 대여 장소 환경

넥스터즈에서는 소통 커뮤니케이션 목적으로 카카오톡 단톡방, 슬랙 이렇게 두 가지를 이용한다. 그런데 조금 의아했던 건 단톡방은 굉장히 활발했지만 막상 넥스터즈 슬랙에선 진행되는 것이 거의 아무것도 없었다. 슬랙을 활용하지 않거나, 아니라면 슬랙과 단톡방의 용도가 확실하게 구분지어져 있다면 어땠을까 생각도 든다. (우리 팀이 슬랙을 활용하지 않아서 더더욱 그렇게 느낀 걸수도?)

 

일부 대여장소에서 와이파이가 잘 안됐거나, 장소가 협소했었던 기억이 좀 있다. 물론 운영진분들이 굉장히 고생하시는게 느껴지긴 했지만 이부분도 조금은 아쉬웠다. 인원 수가 많은 넥스터즈 동아리 특성상 어쩔 수 없었겠지만 개인적으로 아쉬웠기 때문에 적어본다.

 

물론 이 단점은 사소한 부분이기 때문에 크게 문제되진 않았다.


마치며

넥스터즈가 아니었다면 우테코 이후에 완전 백수 라이프를 보냈을 것 같다. 넥스터즈 덕분에 심심할 틈없이 편하게 코딩할 수 있었고, 뿐만 아니라 많은 사람들을 만나며 다양한 얘기를 나눌 수 있었다. 인프라 세팅도 도맡아서 해보고 디자이너분들과의 협업 경험도 쌓았고! 또, 직장인분들과 이것저것 얘기하면서 우테코와는 또 다른 점들을 여럿 배워갈 수 있었다.

 

넥스터즈는 나의 2023년 겨울방학을 신나게 불태워줄 수 있는 촉매제 역할을 해주었다 :)

까먹고 반납 안한 넥스터즈 명찰

명찰 사진을 마지막으로 포스팅을 마무리하겠다.

반응형