코드숨 2주 차 주간회고

codesoom

코드숨 2주 차 주간회고 🚀

한 것(Fact) 🔧

1. 과제 수행

Counter App 과제와 Todo App 과제를 진행했다.

2. 서적 읽기

자바스크립트 코딩의 기술을 읽기 시작했다.

3. 개발 토론

한윤석 님과 코드리뷰를 주제로 대화를 나눴다.
친한 동생과 개발문화를 주제로 대화를 했다.

느낀 것(Feelings) 🙏

1. 기술은 필요한 만큼만 적용하자

컴포넌트에서 key값을 어떻게 입력해야 할지 고민되었다. 그래서 슬랙에 도움을 요청했는데 집단지성의 힘으로 내용, 날짜, uuid까지 다양한 답을 얻었다. 그중에 랜덤 난수를 만드는 uuid의 라이브러리가 마음에 들어 사용했다. 그런데 라이브러리까지 설치하는 것은 오버테크놀러지라는 의견을 듣고 기본적으로 구현할 수 있는 Date().toISOString()로 변경했다. 필요 이상의 기술을 적용하기보다 요구사항에 맞는 기술을 적용하자.

2. 다양하게 생각하자

input에서 빈칸을 입력할 수 없게 하는 기능을 추가했다.
로직 순서는 다음과 같다.

빈칸 -> 추가 버튼 클릭 -> 빈칸 여부 확인 -> 에러 표시

작업하면서 다른 분들은 어떻게 코드를 짰는지 궁금하여 살펴보았는데, 공백을 감지하여 버튼을 disabled하는 방법을 발견했다.

빈칸 -> 추가 버튼을 클릭할 수 없음 -> PROFIT!

절차가 더 짧아지고 사용자 입장에서도 직관적이기 때문에 효율적이었다.
앞으로 요구사항을 구현하기 전에 다양한 방법을 생각하고 고려해봐야겠다.

3. 개발문화

친한 동생과 좋은 개발문화에 대한 이야기를 나누었다.
대화를 나누면서 ‘2년간 다녔던 회사의 개발문화는 무엇이었을까?‘라는 생각이 들었다. 실력 좋은 개발자들이 많은 곳? 분명 좋은 개발자분들이 많았다. 자유로운 분위기? 회사는 편하고 강제 야근이 없었고 능력에 맞추어 일할 수 있었으며 충분한 개발 기간도 있었다. 좋은 업무 프로세스? JIRA, Confluance, BitBucket 등 체계적이고 합리적인 프로세스를 가졌다.

그런데도 나는 회사에서 개발에 대한 외로움과 배고픔을 느꼈다.
내가 생각한 원인을 세 가지로 정리했다.

(1). 코드리뷰

회사에서는 코드리뷰가 없었다. 회사 규모가 커지고 코드리뷰를 도입하고자 했으나 해야 할 일이 너무 많아 무산되었다고 한다. 그래서 코드 컨벤션이 없었다. 물론 가이드라인은 있었지만 잘 지켜지지 않았고 그러다 보니 각자의 스타일대로 코드가 작성되었다. 나는 신입이어서 기존의 코드를 확인하며 카멜레온처럼 주변 코드와 비슷하게 맞추었다. 로직은 잘 돌아갔지만, 이 코드가 좋은 코드인지 또 아니라면 어떻게 짜야 하는지 피드백을 받을 수 없었다. 만약 코드리뷰가 있었다면 피드백을 통해 코드 컨벤션과 좋은 습관을 배울 수 있었을 것이다.

(2). 개발철학

필자는 4년간 제과제빵 쪽에서 근무했다.
빵을 잘 만들기는 어렵다. 레시피와 제조 설명서만으로는 설명할 수 없는 ‘감’이 있기 때문이다. 예를 들어 빵의 발효점은 감으로 봐야한다. ‘반죽이 7~80% 정도 부풀고 매끈한 윤기가 날 때’라는 기준은 있지만, 저 이야기를 듣고 한 번에 ‘아 완벽하게 이해됐어요!’하는 사람은 절대 없을 거다. 일을 배울 때 사수가 붙었는데, 근무스케줄에 따라 사수가 바뀌었다. 그런데 사수마다 이 발효점의 취향이 달랐다. 어떤 사수는 빵은 풍성해야 한다며 높은 발효점의 빵을 좋아했고, 또 다른 사수는 적절한 발효가 최적의 맛을 낸다며 낮은 발효점을 추구했다. 양쪽 다 일리가 있다. 충분히 배우고 무엇이 더 마음에 드는지 고르면 된다. 이 정도가 내가 생각하는 일의 ‘철학’이다. 개발에도 많은 철학이 있다. 그런데 사수로부터 이런 철학을 배울 기회가 없었다.
나도 개발 철학을 배우고 싶다.

(3). 테스트 코드

테스트 코드를 경험한 적이 없다. 테스트 코드와 관련된 기억은 전에 들었던 개발세미나에서 ‘일부러 테스트 코드를 실패하게 짜보라’는 것뿐이었다. ‘ㅎㅎ 일부러 틀리게 짜라고요? 시간만 충분하면 100만 가지도 넘게 짤 수 있겠네요. 왜 그런 의미 없는 행동을 하죠?’ 라는 마음속 반발감만 커진 채 기억 속에서 사라졌다. 그때는 테스트 코드의 존재 이유와 목적이 무엇인지 학습하지 못하고 방법론에 대해서만 배웠다. 순서가 잘못되었다. 그런데 코드숨에서 과제를 진행할 때 제공되는 테스트 코드를 보며 그 이유를 알았다.
테스트 코드를 작성해 놓으면 로직을 변경해도 처음부터 일일이 수동으로 검사를 할 필요가 없었다. 정말 편하다! 회사에서는 로직이 변경되면 처음부터 모든 것을 수동으로 다시 체크했다. 회사 내에서 모두 이렇게 하니까 당연하다고 생각했던 방법이 얼마나 원시적이었는지 알게 되었다. 테스트 코드의 중요성을 이제야 이해하게 되었다.

이렇게 정리해보니 앞으로 일하고 싶은 회사가 어떤 회사인지 알게 되었다.

배운 것(Findings) 📚

1. uuid 라이브러리

npm에서 uuid 라이브러리를 찾았다. uuid는 우리말로 풀자면 ‘범용 고유 식별자’가 되는데, 라이브러리까지 설치하여 식별자를 사용하려면 사용 조건을 구체적으로 정리해야겠다는 생각을 했다. 이에 대해서는 내용을 더 조사해봐야겠다(별도 포스팅 예정).

2. Date().toISOString()

Date().toISOString을 이용하면 YYYY-MM-DDTHH:mm:ss.sssZ로 밀리세컨드까지 구분할 수 있다.

자기 선언(Affirmation) 📋

자바스크립트 코딩의 기술을 읽고 포스팅하여 정리하기.
포트폴리오 준비하기. 주제, 사용자, 설계, 구현에 대해서 생각해봐야겠다.

👋


Written by@davidyang2149 (About me)
Hello World! This is David Yang Dev Blogs.

GitHub