[우아한테크코스 5기] 프리코스 1주 차 회고

Sungw__k·2022년 11월 9일
0

개요

10월 26일 부터 우아한테크코스 프리코스 과정이 시작되었다. 원래 끝나고 바로 썼어야 했지만 안써서 한번에 묶어서 써버릴까? 하다가 매 주차마다 너무 많이 배우는것 같아서

아무튼 지금이라도 써보려고 한다.

우선 첫 주차 미션 이름은 온보딩 이었다. 온보딩(Onboarding)은 배에 올라탄다는 뜻으로 새로운 직원이 조직에 잘 적응할 수 있도록 지식이나 기술을 교육하는 과정 이라고 한다.

🔍 진행 방식

  • 미션은 기능 요구 사항, 프로그래밍 요구 사항, 과제 진행 요구 사항 세 가지로 구성되어 있다.

  • 세 개의 요구 사항을 만족하기 위해 노력한다. 특히 기능을 구현하기 전에 기능 목록을 만들고, 기능 단위로 커밋 하는 방식으로 진행한다.

  • 기능 요구 사항에 기재되지 않은 내용은 스스로 판단하여 구현한다.

위의 세 가지 방식을 통해 총 7개의 알고리즘? 문제를 풀어내고 제출하면 된다.

내가 풀고 PR한 주소



1주 차 공통 피드백


1주 차 과정을 마치고 우테코 측에서 지원자들에 대한 공통 피드백을 남겨 주었다.

그 중에서 잘 지키지 못한 것들에 대해 작성하려고 한다.

요구사항을 정확히 준수한다.

과제 제출 전에 기능 요구 사항, 프로그래밍 요구 사항, 과제 진행 요구 사항의 항목을 모두 잘 지켰는지 다시 한 번 점검한다.

이름을 통해 의도를 드러낸다.

나 자신, 다른 개발자와의 소통을 위해 가장 중요한 활동 중의 하나가 좋은 이름 짓기이다. 변수 이름, 함수(메서드) 이름, 클래스 이름을 짓는데 시간을 투자하라. 이름을 통해 변수의 역할, 함수의 역할, 클래스의 역할에 대한 의도를 드러내기 위해 노력하라. 연속된 숫자를 덧붙이거나(a1, a2, ..., aN), 불용어(Info, Data, a, an, the)를 추가하는 방식은 적절하지 못하다.

축약하지 않는다.

의도를 드러낼 수 있다면 이름이 길어져도 괜찮다. 축약은 혼란을 야기하며, 더 큰 문제를 숨기는 경향이 있다.

클래스와 메서드 이름을 한 두 단어로 유지하려고 노력하고 문맥을 중복하는 이름을 자제하자. 클래스 이름이 Order라면 shipOrder라고 메서드 이름을 지을 필요가 없다. 짧게 ship()이라고 하면 클라이언트에서는 order.ship()라고 호출하며, 간결한 호출의 표현이 된다.

공백도 코딩 컨벤션이다.

if, for, while문 사이의 공백도 코딩 컨벤션이다

공백 라인을 의미있게 사용한다.

공백 라인을 의미 있게 사용하는 것이 좋아 보이며, 문맥을 분리하는 부분에 사용하는 것이 좋다. 과도한 공백은 다른 개발자에게 의문을 줄 수 있다.

linter와 Code Formatter의 기능을 활용한다.

가능하면 eslint와 prettier를 이용해 더욱 생산적으로 코드를 작성하자.

린트(lint)는 소스 코드에 문제가 있는지 탐색하는 작업을 의미하며, 린터(linter)는 이 작업을 도와주는 소프트웨어를 말한다. 자바스크립트와 같은 인터프리터 언어의 경우, 런타임 에러가 발생할 확률이 높기 때문에, 이 린트 작업을 통해 사전에 에러를 최대한 잡아준다면 훨씬 생산성 높은 개발을 할 수 있다. lint 중 eslint는 자바스크립트 진영의 오픈소스로 확장되고 있는 정적 분석 도구이다.

prettier는 일종의 Code Formatter이다. Code Formatter란 개발자가 작성한 코드가 정해진 코딩 스타일을 따르도록 변환해주는 도구이다. 이 두 가지 도구를 이용하면 코드를 짜는데 발생할 수 있는 오류를 미리 예방하고 쉽게 정돈할 수 있다.

1주 차 회고

요구사항 준수하기

정말 어이없게도 진행방식에 적혀있는 요구사항부터 지키지 못했다. 기능을 구현하기 전에 기능 목록을 미리 만들라고 했는데... '특히' 라고 까지 적혀있는데...

기능만 잘 돌아가면 된다는 안일한 생각에 이런 기본적인 것들도 지키지 못했다.

남은 과정에서는 시작 전에 요구사항을 꼼꼼히 살피고 제출 전에 다시 한번 살피며 지키지 못한 요구사항이 없는지 잘 확인해야 겠다고 느꼈다.

커밋 컨벤션

과제 제출을 마치고 다른 지원자들은 어떻게 제출했는지 커뮤니티의 피어리뷰를 통해 확인해 보았다.

코딩도 코딩이지만 다들 커밋메시지에

feat : ~~
fix : ~~

이런식으로 뭔가 통일된 느낌의 커밋메시지를 남겼다. 설마 또 요구사항에서 내가 놓친게 있나? 싶어서 알아봤는데 커밋 컨벤션 이라는 커밋 메시지에 대한 규약 이라고 한다.

협업 중에 코딩을 하면서 지켜야할 규약들이 몇개 있는데 네이밍 컨벤션, 코딩 컨벤션 등 XXX 컨벤션 이라고 말한단다.

학교에서 팀플을 하거나 혼자 공부할 때는 그냥 내 코드 누가 보겠어? 그냥 기능만 잘 돌아가면 되지~ 라고 생각 했었는데 코드나 커밋 메시지의 가독성을 높이고, 협업을 할 때 코딩 스타일을 맞추기 위해 위의 컨벤션들이 지켜져야 된다.

마침 2주 차 에서 커밋 컨벤션, 코딩 컨벤션을 지켜서 과제를 하라는 요구사항이 있어서 이에 대해 깊숙히 알아봐야 겠다~ 라는 생각을 했다.

소감?

과제를 제출하기 전에는 기능구현 쉬운데? 하며 자신감이 넘쳤지만 정작 중요한건 따로 있었다는 생각이 들었고, 다른 사람들의 코드를 보며 나의 부족함을 한없이 느꼈다.

Git도 뭐 학교에서 팀플하면서 pull push 이런거나 해봤지 fork하고 Pull Request보내고 하는것도 처음 해봐서 새로웠다.

우테코를 지원하기 전에는 어차피 합격도 어려울것 같은데 하는게 의미가 있을까? 싶었는데 선발 과정에서도 처음듣는게 너무나도 많고 그러면서 배우는것도 너무 많은것 같아서 지원하길 참 잘한것 같다.

2주차 부터는 기능 구현에만 신경쓸 것이 아니라 가독성에도 많은 노력을 들이며 코딩할 것이다.

2개의 댓글

comment-user-thumbnail
2022년 11월 9일

유의미한 시간이었군요!

1개의 답글