티스토리 뷰

 

프리코스 1주차

진행 방식

  • 미션은 기능 요구 사항, 프로그래밍 요구 사항, 과제 진행 요구 사항 세 가지로 구성되어 있다.
  • 세 개의 요구 사항을 만족하기 위해 노력한다. 특히 기능을 구현하기 전에 기능 목록을 만들고, 기능 단위로 커밋 하는 방식으로 진행한다.
  • 기능 요구 사항에 기재되지 않은 내용은 스스로 판단하여 구현한다.

미션 제출 방법

  • github 링크를 통해 REPO를 fork한다.
  • 브랜치 이름을 나의 깃허브 아이디로 생성한다.
  • 기능 구현 후 깃허브 아이디로 된 브랜치로 push 한다.
  • Pull Request을 보내 제출하고 우테코 지원 플랫폼에서 최종 제출한다.

과제 제출 전 체크 리스트 - 0점 방지

  • 기능 구현을 모두 정상적으로 했더라도 요구 사항에 명시된 출력값 형식을 지키지 않을 경우 0점으로 처리한다.
  • 기능 구현을 완료한 뒤 아래 가이드에 따라 테스트를 실행했을 때 모든 테스트가 성공하는지 확인한다.
  • 테스트가 실패할 경우 0점으로 처리되므로, 반드시 확인 후 제출한다.

기능 요구 사항

아래의 7가지 기능 요구 사항을 모두 해결해야 한다.

  1. 문제 1
  2. 문제 2
  3. 문제 3
  4. 문제 4
  5. 문제 5
  6. 문제 6
  7. 문제 7

프로그래밍 요구 사항

  • JDK 11 버전에서 실행 가능해야 한다. JDK 11에서 정상적으로 동작하지 않을 경우 0점 처리한다.
  • build.gradle을 변경할 수 없고, 외부 라이브러리를 사용하지 않는다.
  • 프로그램 종료 시 System.exit()를 호출하지 않는다.
  • 프로그램 구현이 완료되면 ApplicationTest의 모든 테스트가 성공해야 한다. 테스트가 실패할 경우 0점 처리한다.
  • 프로그래밍 요구 사항에서 달리 명시하지 않는 한 파일, 패키지 이름을 수정하거나 이동하지 않는다.

1주차 공통 피드백

  • 요구사항을 정확히 준수한다
  • 커밋 메시지를 의미 있게 작성한다
  • git을 통해 관리할 자원에 대해서도 고려한다
  • Pull Request를 보내기 전 브랜치를 확인한다
  • PR을 한 번 작성했다면 닫지 말고 추가 커밋을 한다
  • 이름을 통해 의도를 드러낸다
  • 축약하지 않는다
  • 공백도 코딩 컨벤션이다
  • 공백 라인을 의미 있게 사용한다
  • space와 tab을 혼용하지 않는다
  • 의미 없는 주석을 달지 않는다
  • IDE의 코드 자동 정렬 기능을 활용한다
  • Java에서 제공하는 API를 적극 활용한다
  • 배열 대신 Java Collection을 사용한다

 

1주차 회고

기능 구현

기능 구현에는 크게 어렵지 않았습니다. 코딩 테스트에 구현 문제로 느껴졌습니다. 다만, 6번, 7번 문제의 경우 효율적이지 못하게 작성한 면이 있습니다.

다른 사람이 구현한 것을 봐도 마땅히 마음에 드는 효율성을 가진게 없어 보였습니다. (이건 제 노력 문제인 걸로 예상됩니다.😅😅 백엔드에 약 2천명, 프론트엔드 약 1천명, 모바일 약 200명 가까이 있다보니 모두 확인하는데는 어려움이 있었습니다.)

시간이 될때 지속적으로 확인해서 고민 해봐야 겠습니다.

 

미션 제출

안타깝게도 깃허브를 제가 저장소 용도로만 사용 했었습니다.

그래서 이번에 미션 제출 하면서 깃에 대해 공부 하게 되었습니다.

 

깃 커밋 컨벤션은 다른분이 아래 컨벤션을 번역 해 둔것이 있었습니다.

https://gist.github.com/stephenparish/9941e89d80e2bc58a153

 

AngularJS Git Commit Message Conventions

AngularJS Git Commit Message Conventions. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

큰 카테고리는 위 내용이었습니다.

그래서 위 내용을 작성하는데 익숙해 지고 나머지 세세한 부분을 확인 해볼 예정입니다.

 

느낀점

프로그래머스 코테 문제를 lv 1을 풀고 있는 입장에서 문제를 어떻게든 풀어내는 것 까지는 해냈습니다.

그런데 깃 사용에 관해 커밋 컨벤션이라든지 PR을 하고 수정하면 내 repo에 push만 하면 된다는 것을 알게 되었습니다.

아직까지는

  • 왜 브랜치를 새로 만들어야 하는가
  • 커밋 메세지를 어떤 규칙에 맞게 했을 때 효용성은 어떤게 있는가

위 두가지 의문이 있긴 하지만 4주차에 마무리 되고 나면 해소 되지 않을까란 희망이 있습니다.

 

마지막으로 제가 작업 한 내용입니다.

https://github.com/takim52/java-onboarding

 

GitHub - takim52/java-onboarding: 온보딩 미션을 진행하는 저장소

온보딩 미션을 진행하는 저장소. Contribute to takim52/java-onboarding development by creating an account on GitHub.

github.com

 

댓글