본문 바로가기
회고

DND 사이드 프로젝트 5기 & UPF 2021FW 회고 (2)

by 이곳느 2022. 1. 2.

이 글은 6월 말부터 12월 말까지 6개월동안 DnD 사이드 프로젝트 및 UPF 2021FW를 진행하며 느낀 점과 회고를 작성한 글입니다.

UPF 2021 FW

DND를 성공적으로 마무리짓고, 약 1달여간 휴식기를 가졌다.

물론 고려했던 기능들을 전부 완성한건 아니지만 나름 최종발표도 잘 해냈던 것 같았다.

그렇게 휴식기를 가지던 중 친구가 UPF 2021 FW 라는 외부활동을 추천해 주었고 이 외부활동은 다른 외부활동이나 만들다가 터진 프로젝트를 고도화 하는 외부활동이다.

다른 외부활동과는 다르게 상당히 신선했고 DND 멤버들끼리만 하면 늘어지고 잘 진행될 것 같지 않아서 멤버들에게 물어봤더니 상당히 적극적이였다.

그렇게 새로운 외부활동에 지원서를 넣었고

UPF 2021 FW 캐스팅!

활동 팀으로 선정되어 UPF 활동을 시작하게 되었다!

진행방식

UPF는 ‘고도화’를 중점적으로 두고 프로젝트를 진행하는 외부활동이다.

2주에 한번씩 총 8번 정기 세션이 진행되며 이 과정에서 다양한 연사분들의 강연을 들을 수 있고, 다른팀과 소통하며 프로덕트 진행 중에 만날 수 있는 문제나 아이디어 등을 공유할 수 있는 페어링 시간도 있다.

고도화를 직접적으로 도와주는건 아니지만 멘토분들이 뛰어나서 실제로 여러가지 도움을 많이 주신다.

Backend 고도화 계획

기존 Pace-Buddy 아키텍처

위 아키텍처에서 Express 부분과 ORM, 언어 부분을 교체하며 고도화 하기로 했다.

Javascript → Typescript

먼저 Javascript 에서 Typescript 로 전환을 하기로 했다. Typescript 는 많이 써보지 않았던 탓에 팀 내에서 스터디를 따로 진행하여 언어의 숙련도를 높이려고 했고, 성공적으로 전환 할 수 있었다.

Express → Nest.JS

프레임워크를 Express에서 Nest.JS 로 바꾸기로 했다. Express에서 발생하는 단점들을 보완하고, 요즘 주목하는 Nest 프레임워크로 전환하며 많은것을 느꼈다. 백엔드 진영에서 아주 거대한 축을 이루고있는 그것(?)을 쓰는 느낌이었다.

Nest는 특히나 Express 개발자에겐 익숙하지 않은 패턴을 가지고 있었기 때문에 전체적인 컨셉을 이해하는 게 중요하다고 느껴져서 위에서 진행한 Typescript 스터디도 진행하면서 백엔드 파트에서 따로 Nest.JS 스터디도 진행했다.

Prisma -> TypeORM

사실 이 부분은 그냥 Prisma를 사용해도 되었었지만, Nest에서 TypeORM 사용을 권장하는 느낌이 강했어서 TypeORM으로 교체했다.

TypeORM을 사용하면서 느낀점은 Prisma 보단 번거롭지만(물론 GraphQL 한정..) 제공하는 기능이 Prisma 보다 강력하다고 느꼈다.

지원하는 기능이 오히려 너무 많아서 조금 공부하기 벅찬(?) 느낌까지 들었으니 말이다..

Refactoring

그리고 리팩토링에 신경을 많이썼다.

기존에 DND에서 구현했던 코드는 두달이라는 시간압박 때문에 구현에 급급했던 코드들이 상당히 많았다.

UPF는 그래도 기간이 넉넉한(4달) 편이여서 프로젝트를 거의 완성한 마지막쯤 쭉 리팩토링을 진행했었다.

하루 날을 잡아 전체적인 코드를 대상으로 기본적인 리팩토링(변수 인라인, 함수 추출, 조건문 다형성 전환 등등)을 진행했고 결과물은 상당히 만족스러웠다. 또한 Nest.JS 를 쓰면서 Typescript를 사용했는데, 쓸데없는 `any` 타입 등을 제거하는 작업을 진행했다.

UPF와 DnD의 차이점

가장 큰 차이점은 역시 외부활동의 컨셉이다.

UPF는 기본적으로 '고도화' 를 중점적으로 두고 진행하는 외부활동이기 때문에 프로젝트의 컨셉이나 기획같은 것들은 대부분 이미 되어있는 팀이 많다.(물론 아닌케이스도 있다.)

그래서 조금 더 비지니스 로직에 집중할 수 있었고. 온전히 프로젝트에 몰두할 수 있는 분위기가 형성되었었다.

아쉬웠던 점..?

아쉬웠던 점은 바로 프로젝트 진행 기간이다.

디자이너를 제외한 팀 4명중 3명이 대학생이였기 때문에 아무래도 시험기간에서 자유로울 수 없었다.

당연히 프로젝트 조금 잘해보겠다고 학점을 던져버릴 수는 없기 때문에 중간중간 뜨는 시간이 많았다. 이 시간에 조금 더 프로젝트를 집중했다면 조금 더 좋은 퀄리티가 나오지 않았을까 하는 아쉬움이 남는다.

UPF 2021 FW 를 추천하는가

'시간이 많은' 사람에게 강력 추천한다.

위에서 말했듯이, 대학생에 경우 시험기간이 조금 부담이 될 수 있다.

하지만 4학년처럼 강의가 많이 없거나. 아직 시험기간이 부담이 되지 않는(?) 대학생, 직장인들에게는 추천한다.

고도화 라는것은 생각보다 할 수 있는 기회가 많이 없을 수 있다고 생각한다. UPF를 진행하면서 기존 프로젝트를 어떻게 고도화 하고 코드의 품질을 높이며, 어떤 스택을 선정해야 오버엔지니어링이 안되는지 고민하는 성과를 거두었다고 생각한다. 또한 운영진분들이 정말 친절하고 UPF를 정말 사랑하고 신경쓰시는게 느껴진다. 뛰어나신 분들이 많고, 진행하던 중에 많은 질문을 못했던게 아쉬웠다.

결론적으로 UPF는 '개발자가 더 개발자스러워지는' 외부활동이라고 생각한다.