1박 3일 (셀프)지옥코딩 풀스택 후기

삶은달걀·2022년 2월 13일
0

오늘의 고민

목록 보기
6/8
post-thumbnail

입사 과제로 간단한 풀스택 페이지 개발이 주어졌다. 그 동안의 입사 과제들은 대부분 프론트엔드 쪽이었어서 두더지 게임 만들기를 했었는데(프로그래머스 과제전 같은 경우는 API 개발하기였다.) 좁은 분야를 깊게 알고 있느냐와 여러 분야를 전반적으로 파악하고 있느냐의 차이를 극명하게 느꼈다. 둘 다 힘들기는 하지만 역시 프로그래밍 전반에 관해 많은 관심을 가진 나는 후자의 편이 더 가까운 거 같다.

그렇게 주어진 이틀의 시간 동안 자는 것과 먹는 것과 씻는 것을 잊어가며 프론트와 백을 종횡무진하며 코딩을 하다보니 문득 한 가지를 깨달았다.
아... 나는... 코딩에 미친 놈이구나... 그냥 코딩에 미쳤구나...
잘하고 싶다는 욕심도 없잖아 있지만, 프로그램 메커니즘을 전반적으로 파악하는 걸 더 좋아하고, 당면하게 되는 버그나 이슈를 풀어야만 성취감과 개운함을 느끼게 되는 나는 그냥 프로그래밍에 미친 거 같다.
천재는 즐기는 사람을 이길 수 없다고 했나? 글쎄요, 제 생각에는 건강한 사람을 이길 수 없는 게 아닐까 합니다마는. 이틀동안 프로젝트를 만드느라 온 정신과 시간을 쏟아 부었더니 한 3개월치의 목숨을 끌어다 쓴 거 같다. 그러니까 건강에 더 신경써야겠다... 내가 코딩하려고 건강을 챙기게 되는 날이 오다니.

그래서 하게 된 풀스택 기본 CRUD 프로젝트는 소위 MERN이라고 불리는 mongodb, express, react, nodejs로 구성 됐다. 워낙에 오래 들고 있는 언어 없이 뭐든 써보는 편이었어서 프로토타입의 웹 프로젝트라면 뭐로든 만들 수 있었겠지만, 스프링을 쓰기에는 규모에 비해 많을 설정이 귀찮을 거 같고(인텔리제이나 이클립스도 설치를 안 했긴 하다.) 장고를 쓰자니 리액트랑 연결이 잘 될 지 모르겠고... 역시 자바스크립트에는 자바스크립트겠거니 하는 생각으로 서버 쪽은 노드를 생각하고 있었다. 그럼에도 한 번도 자바스크립트 풀스택 프로젝트는 완성해 본 적이 없어서 개인적으로 express 공부를 하려던(하고 있긴 했다, 몇 주 전까진.) 차에 이런 기회가 주어져서 더 미친 코가다를 해버렸다.

마침 카우치코딩에서 하는 프로젝트도 리액트로 프론트엔드를 맡고 있었으니 다른 요소는 그 쪽 팀에서 사용하는 것에 맞춰 디자인 컴포넌트는 antd 패키지를 사용했고 추가적인 커스터마이징을 위해서는 styled 라이브러리를 선택했다. 전반적으로 조합이 괜찮았던 거 같은데 antd는 스타일 커스터마이징에 제약이 너무 많았어서 미쳐버리는 줄 알았다. 그 와중에 나는 예시 레이아웃으로 주어진 피그마 파일에 혼신의 힘을 바치고 집착해버려 완벽 재현을 목표로 한 나머지... 40시간 중 10시간은 스타일링과 디자인 수정에 할애한 거 같다.
그래도 덕분에 남은 팀플 부분은 수월하게 진행할 수 있게 됐으니 의미있는 고생이라 할 수도 있겠다.

전체적인 프로젝트 흐름은 다 비슷할 거라 리덕스 사용 부분을 참고하기 위해 찾은 클론 코딩은 이걸로 진행했다.
https://www.youtube.com/watch?v=ngc9gnGgUdA&t=0s
이건 2부짜리라 딱 이 과제에 맞는 프로젝트라 생각해 선택했는데 알고 보니 확장하며 기능 추가하는 영상들도 있어서 시리즈가 꽤 되던 모양이다. 개인적으로 많은 클론 코딩들 중에 제일 깔끔하고 괜찮았다고 생각한다(클레버코딩 어쩌고는 군소리가 너무 많고 노마드 코딩은 얼굴이 부담스럽고 인도인들은 발음에 정신이 혼미...).
기회가 있다면 그런 클론 프로젝트들을 진행해 보려 참고할 만한 내용을 더 모아봤다.
https://www.bezkoder.com/react-node-express-mongodb-mern-stack/
사실 링크는 둘인데 세부 시리즈는 훨씬 많다. 이쯤 되면 내 취미가 코딩하기 맞는 듯. 취미로 돈 버는 사람이 접니다.

클론 코딩은 배운 개념을 사용하며 빠르게 습득하게 된다는 장점도 있는데, 동시에 프로젝트 구조에 대해 전체적인 흐름과 이해를 할 수 있다는 점도 있어 좋다. 실제로 사용하며 복습하는 동시에 공부도 되는 일석이조의 컨텐츠라서 시간이 되면 개인 프로젝트로 꼭 더 해봐야겠다.

어쨌든 이렇게 풀스택 프로젝트를 해보니 내가 알고 있는 개념도 정리하기 쉽고 생각보다 CRUD 하나를 하기 위한 작업은 프론트와 백을 합치면 엄청나게 많다는 점도 다시 깨닿게 된 좋은 경험이었다. 코드를 짜다 보니 공통적인 부분이 많이 있었던 점이나 네이밍이 예약어와 비슷해서 스스로 혼란스러워진 점 등 개선하고 싶었던 점도 많았지만 그만큼 배운 것도 많았다. 그리고 코딩이 너무 재미있었던 게 인상깊어 기록으로 남겨 본다.

0개의 댓글