우테코 3기 프리코스 후기

Joey Hong·2020년 12월 15일
0

프리코스 후기

벌써 프리코스가 마무리되었습니다. 3주 동안의 짧은 시간이었지만 기대 이상으로 많이 성장했고 배웠습니다. 특히 자바스크립트의 모듈과 클래스, 함수 등의 사용법을 파악할 수 있었고 규모가 큰 프로젝트도 만들어낼 수 있게 되었습니다. 지켜야할 컨벤션과 요구사항들이 있다보니 그것에서 벗어나지 않기 위해 많이 알아볼 수 있었고 같은 과제를 하는 동료들의 코드를 보며 미처 몰랐던 문법들을 배울 수 있었습니다.

1. 프로젝트 설계

프리코스 통해 가장 새로웠던 것은 바로 기능을 정리해두는 README였습니다. 사실 코드를 구현하기도 전에 기능들을 파악하고 세세하게 작성하는 것은 시간이 꽤 걸렸고 추후에는 대대적인 수정도 불가피했습니다. 하지만 프로젝트 전반에 대해 미리 구체적으로 생각해보는 것은 결과적으로 매우 효율적이었습니다.
모듈을 어떻게 구성해야할지, 예외사항은 어느 것들이 있는지, 중복되는 함수들은 무엇이 있는지 등을 사전에 파악할 수 있어 파일과 함수 등을 보다 유용하게 배치할 수 있었습니다. 게다가 내용을 한눈에 정리해두니 개발 도중 헷갈리거나 막힐 때마다 언제든지 돌아와 도움을 받을 수 있었습니다.
무엇보다도, 제가 쓴 코드를 다른 사람이 보거나 심지어 제가 저의 지난 코드들을 봐야할 때 잘 정리된 README가 있다면 훨씬 더 빠르고 쉽게 코드를 파악할 수 있을 것이라 생각되었습니다.
3주차 미션은 이전 미션들보다 더욱 규모있고 복잡해졌는데, 그렇기에 더욱더 README의 필요성을 느낄 수 있었던 것 같습니다. 그동안 사용법을 몰라 그대로 방치해두기만 했던 README를 이번 프리코스를 발판으로 앞으로는 제 프로젝트의 핵심을 소개하는 요약페이지로 잘 다듬어 활용할 생각입니다.

2. 기능별 커밋

기존에는 git을 거의 혼자 사용했고, 협업을 하더라도 상대방의 commit 메시지뿐 아니라 제 것조차 살펴본 적이 거의 없습니다. 하지만 프리코스를 진행하며 처음으로 commit 메시지의 단위와 그 의미에 대해 생각해보았습니다.
commit 메시지는 과거 코드를 살펴볼 때 어느 시점에 어느 기능이 추가되었는지 빠르게 파악할 수 있는 참고 메시지입니다. 저는 이 기능이 마치 제 프로젝트의 버전이자 백업 단위라고 같다고 생각했고 특히 수정을 할 때 빛을 발한다고 생각했습니다. 실제로 새 코드를 추가할 때마다 예상치 못한 문제를 맞닥뜨리는 것은 흔한 일입니다. 이 때 기능별로 commit이 되어있다면 간편하게 어떤 기능이 문제의 원인인지 파악할 수 있습니다. 게다가 언제든지 원하는 시점의 commit으로 돌아갈 수 있어 손쉬운 수정이 가능합니다.
솔직히 가장 어려웠던 부분은 commit이 아니었나 싶을 정도로 기능별 commit은 어려운 부분이 많았습니다. 하지만 commit의 이러한 역할에 대해 생각해보니 점점 더 한번에 하나의 기능에만 집중하자는 생각을 갖게되었고 기능을 마무리지을 때마다 바로 commit을 해주며 체계적인 git log를 유지하려고 노력하게 되었습니다.

3. 객체지향프로그래밍

프리코스를 통해 객체지향프로그래밍에 대해 많이 배웠습니다. 객체를 생성하고 그에 해당되는 메소드들을 만들어 적용시키는 방법은 새로웠습니다. 2주차 미션의 요구사항에서는 Car 객체를 생성하도록 했으나 사실 Car만 달랑 생성했지 그에 관한 함수는 다 따로 관리했습니다. 그리고 아쉽게도 3주차 미션에서도 Station과 Line을 객체로 생성하기보다는 마치 클라우드 동기화처럼 LocalStorage에 Station과 Line 정보를 매번 저장하는 방식을 사용했습니다. 하지만 도중에 객체지향적인 방법을 시도했었고 객체를 다루는 함수가 같은 모듈에 있다는 점에서 모듈이 더욱 명확하고 깔끔하게 관리될 수 있다는 것을 깨달았습니다. 안타깝게도 시간이 부족해 객체지향적인 코드를 짜지는 못 했으나 객체가 무엇인지에 대한 감을 잡고 그 사용법을 조금이나마 익혔다는 것에 의미가 있다고 생각합니다.

4. 코드 컨벤션

코드 컨벤션에 대해 알고는 있었지만 실제로 이를 지키며 코딩을 한 것은 처음입니다. 코드 컨벤션을 통해 잘못 알고 있던 코딩습관을 고칠 수 있었고 eslint에 직접 옵션을 추가해보며 다양한 컨벤션이 존재한다는 것을 깨닫게 되었습니다.

프리코스는 어떻게 공부해야 할지 깨닫게해주는 기간이었습니다. 온라인으로 과제만 내주는 방식같이지만 요구사항과 리뷰 덕에 방향을 잃지 않고 핵심을 파악할 수 있었다고 생각합니다. 부족한 점이 얼마나 많은지 깨달았고 수많은 부족함 중 어느것들을 중점적으로 공부해야하는지 배웠습니다. 무엇보다 기능별 commit과 README를 통한 TDD등과 같은, 좋은 개발자가 되기위한 습관들을 기를 수 있는 소중한 기회였습니다.

profile
개발기록

0개의 댓글