본문 바로가기
개발 활동/우테코 프리코스

늦었지만 우테코 프리코스 회고 - 2주차

by 다음에바꿔야지 2024. 4. 9.

1주차 이후 공통 피드백을 받았다.

1주차 미션의 목표는 'git, 교육 분야별 언어, 그리고 미션 사이클에 익숙해지는 것'이라고 한다.

 

<1주차 피드백 간략 내용 정리>

- 1주차 미션에 대한 피드백 강의 제공

- 주어진 요구사항을 잘 파악하고, 스스로 고민하고 문제를 해결해보라.

 

1. 커밋 메시지를 의미 있게 작성한다

2. git을 통해 관리할 자원에 대해서도 고려한다

3. Pull Request를 보내기 전 브랜치를 확인한다

4. PR을 한 번 작성했다면 닫지 말고 추가 커밋을 한다

5. 이름을 통해 의도를 드러낸다(변수 이름, 함수(메서드) 이름, 클래스 이름)

6. 이름을 축약하지 않는다
- 객체 지향 생활 체조 원칙 5: 줄여쓰지 않는다 (축약 금지)

7. 공백도 코딩 컨벤션이다(if, for, while문)

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

9. space와 tab을 혼용하지 않는다

10. 의미 없는 주석을 달지 않는다(이름을 통해 의도를 드러낸다)

11. IDE의 코드 자동 정렬 기능을 활용한다

12. Java에서 제공하는 API를 적극 활용한다(직접 구현보다 자바 API 활용)

13. Java API에서 제공하지 않을 경우 직접 구현한다.

14. 배열 대신 Java Collection을 사용한다

 

<2주차 목표>

- 함수를 분리하고, 각 함수별로 테스트를 작성하는 것에 익숙해지자.

- 테스트 도구를 학습하고 작은 단위의 기능부터 테스트를 작성해보라.

 

<2주차 회고>

 이번 미션을 하면서 빠르게 성장하는 것을 느꼈다.

 1주차 때는 객체 지향 개념이 모호한 채 구현하다보니 설계에도 시간이 많이 걸렸고 구현도 마찬가지였다. 시간을 많이 쓴 만큼의 코드 퀄리티가 나온 것 같지 않아 조금 아쉬웠던 주차였다. 부족한 실력으로 인해 기능 구현만 하는데도 시간이 빠듯하다고 느꼈는데 새로운 개념들(git, 컨벤션, 객체 설계, 컬렉션 프레임워크 등)을 공부하면서 미션을 구현해야해서 부족함을 많이 느꼈었다. 

 이번 2주차에서는 1주차때 열심히 한 보람이 있었는지 설계 및 구현까지 1주차 대비 시간이 적게 들었습니다. 1주차를 보내고 느낀 점 3가지를 어떤 방식으로 이번 주차에 적용했는지 설명해보자면,

  1. Convention 신경쓰기
    코드 컨벤션을 철저히 지키려고 노력했다. 기능을 메서드로 분리해서 컨벤션에 위배되지 않도록 했으며, indent를 최소화하여 코드의 복잡도를 줄이고 코드의 의미를 빠르게 이해할 수 있도록 했다. 앞으로도 컨벤션에 위배되지 않고 구현하는 것을 체화할 수 있도록 할 것이다.
  2. Commit message 잘 작성하기
    실무 협업 경험이 없기 때문에, 커밋 메시지의 내용이 실무에서는 어떻게 작성되는지는 익힐 필요를 느꼈다. 이번 주 미션에서는  기능별로 커밋을 하면서 1주차에 비해 많은 커밋 메시지가 남겼다. 커밋 메시지 작성법이 실무와 다를 수 있으나, 코드의 수정, 구현 사항을 커밋할때마다 메시지를 남겨 다른 협업자에게 어떤 부분이 수정, 개발되었는지 알 수 있도록 했다. 1주차에 비해 더 자세히, 의미있게 커밋 메시지를 남긴 것 같다. 앞으로도 생산성이 높아질 수 있는 방법으로 작성할 수 있도록 커밋 방법에 대해 더 고민해보고자 한다.
  3. 미션을 받고, 충분히 고민하며, 객체 설계하기
    미션을 받고, 어떤 객체와 기능이 필요할지에 대해 먼저 고민했다. 비즈니스 로직이 어떤 흐름으로 진행될지, 어떤 기능이 필요할지, 그에 따라 필요한 객체가 무엇인지에 대해 먼저 정리했다. 물론 구현을 하면서 설계가 바뀌기도 했지만, 설계와 기능 구현 리스트가 정리되니 구현하는데는 약 이틀 정도 걸렸다. 기능 구현에 쓴 시간이 현저히 줄어드는 것을 체감하면서, 구현에만 며칠을 보낸 1주차에 비해 큰 성장이 있었다고 느꼈다. 나머지 기간은 리팩토링을 하면서, 이번 주차의 목표에 맞게 최대한 함수와 객체를 분리해서 다른 협업자가 봐도 의미를 파악하기 쉽도록 진행하려고 했다.

아쉽게도, 테스트 코드 작성이 조금 어려웠다. 테스트 코드를 직접 작성해본 적이 없었기 때문에 JUnit, Mokito 등에 대해 오랫동안 구글링하며 써보았다. 앞으로는 테스트 코드 작성법에 대해서도 더 익혀서 코드를 구현해 볼 것이며, 추후 TDD 개발도 실제 프로젝트에 적용할 수 있도록 해보겠다.

 

이번 주차는 기능 구현적으로나, 객체 설계적으로나 많이 성장했다고 느껴져서 뿌듯했다. 앞으로도 열심히 해서 얼른 성장해야겠다.