프리코스 미션 후기
우아한테크코스에서 진행한 프리코스 미션을 약 1주일동안 진행한 후기입니다
진행 방법
정식 3주차 코스를 일주일동안 진행했다.
함께 진행한 친구들 모두 자바 기초문법을 이해하고 있다. 그래서 프로그래밍 가이드라인을 보고 개인 피드백을 진행했다.
미션 하나를 다 풀면 새로운 문제가 주어지는 식이다.
세가지 미션에는 각 Programming 요구사항이 주어지는데 이를 고려하는게 매우 중요하다.
문제풀고, 피드백받고. 반복이다.
진행단계
미션은 group git repository에 업로드 되므로 웹에서 깃저장소에 fork 했다.
그 이후엔 git bash를 사용해 clone, branch, commit, push, pull request 를 모두 진행했다.
프로젝트 구현은 이클립스(Eclipse) 개발툴을 이용했다.
요구사항 변화
단계를 거치는 동안 요구사항에 어떤 변화가 있었을까.
들여쓰기 깊이(indent depth)가 줄어들고
메소드 길이가 줄었으며 금지사항이 늘었다.
코드를 간결하게 만드는게 포인트인듯 하다.
쓸데없이 장황하게 늘여놓으면 실행 효율도, 가독성도 떨어진다.
피드백 정리
피드백을 지키기 위해 노력하는 것도 중요하다.
잘 읽어보면 기능을 구현하는데 필요한 어떤 특별한 기술이 아니라 기본적으로 지켜야 할 사항이다.
습관처럼 지킬 수 있도록 연습하는게 좋겠다.
반드시 지키려고 한 요구사항
- 기능 구현 목록을 글로 작성
- indent(인덴트, 들여쓰기) depth는 두번까지 허용
- 메서드 하나, 기능 하다(One-method,One-function) 원칙
- 각 메서드 작성은 15라인 넘지않게
- 변수명, 주석 컨벤션 지키기
느낀점
코드를 짜는데 자료구조, 알고리즘, 클래스 및 메소드 단위가 고민이었다. 메서드가 한 가지 일을 할 수 있도록 해야하는데 이 한가지 일이란 어떤 것인가. 위 조언에서는 10줄 이하로 짤 수 있는 한 가지 기능이라고 설명한다. dept가 깊어지거나 코드가 길어지면 가차없이 메서드를 분리시켰다. 변수명은 또다른 난관이었는데 좋은 예시를 많이 보며 연습하는 수 밖에 없다고 느꼈다. 내가 영단어를 얼마나 많이 알고 사용하는가? 보다 변수명이 얼마나 직관적으로 기능의 의도를 나타내는가? 가 중요하다. 모든 메서드가 서로 다른 기능을 하고있지만 하는 기능이 비슷할때. 특히 하나의 메서드에서 분리가 일어날때 참 곤란하다.
첫술에 배부를순 없지. 점차 이런 고민들을 병행하기로 하고 우선 어떤 기능을 하는지에 초점을 맞추어 연습하기로 한다.