우테코는 프리코스를 통해 코딩 테스트를 보기 이전에 과제를 내주어 지원자들의 실력을 테스트 하고, 실력을 향상 시킬 기회를 준다.
원래는 1차를 합격한 사람들만 프리코스를 볼 수 있었지만 모든 지원자들에게 경험의 기회를 주자는 좋은 취지로 모든 지원자에게 프리코스 과정의 기회를 주셨다고 했다.
1주차 미션은 java-onboarding으로 온보딩의 정의는 신입 사원을 회사 나 조직으로 유도하고 동화시키는 것이다.
이것 또한, 협업시에 github의 fork 하여 Pull Request 하는 방식을 익히게 하기 위한 의도인 것 같았다.
fork는 자신의 woowacourse 저장소를 자신의 계정으로 복사하는 기능이다.
우선 해당 레포를 fork 한다.
이렇게 되면 fork가 된 것을 확인할 수 있다.
fork 한 저장소는 github에 존재하기 때문에 소스코드를 추가하고, 수정하는 작업을 할 수 없다.
그래서 github의 저장소를 자신의 PC 또는 노트북으로 복사하는 clone 명령을 사용한다.
코드 버튼을 눌러 쉽게 복사할 수 있다.
git clone https://github.com/{본인_아이디}/{저장소 아이디}.git
ex) git clone https://github.com/jinyeong-afk/java-onboarding.git
// clone한 폴더로 이동하는 방법
cd {저장소 아이디}
ex) cd java-onboarding
git bash를 이용해 clone을 하고 해당 폴더로 이동할 수 있다.
git은 서로 다른 작업을 하기 위한 별도의 공간을 만들기 위해 브랜치를 생성할 수 있다.
git checkout -b {본인 아이디}
ex) git checkout -b jinyeong-afk
브랜치가 생성과 동시에 변경된 것을 확인할 수 있다.
나는 Intellij를 사용했다.
Open Project를 통해 성공적으로 가져왔다.
테스트 코드를 통해서 문제를 옳게 풀었는지 확인할 수 있다.
단지, 테스트 케이스가 많지 않기에 저 테스트에 통과했다고 해서 만점을 받을 수 있을진 모르겠다...
Intellij 터미널 창에서 아래 명령어들을 실행 시킨다.
java -version
java 11 버전만 가능하다기에 11인지 확인
./gradlew clean test
BUILD SUCCESSFUL이 뜨면 테스트 빌드가 성공한 것이다.
기능 구현을 완료한 후 로컬 저장소에 변경된 부분을 반영하기 위해 add, commit 명령을 사용합니다.
git status // 변경된 파일 확인
git add -A(또는 .) // 변경된 전체 파일을 한번에 반영
git commit -m "메시지" // 작업한 내용을 메시지에 기록
git status로 변경된 파일을 확인한다.
이후 add, commit으로 파일을 반영하고, 메시지를 기록한다.
로컬에서 commit 명령을 실행하면 로컬 저장소에만 반영되고, 원격 github.com의 저장소에는 반영되지 않는다.
github.com의 저장소에도 동일하게 반영하기 위해서 push 명령어를 사용한다.
git push origin 브랜치이름
ex) git push origin jinyeong-afk
성공하면 위와 같이 jinyeong-afk 브랜치와 pull request가 생기는 것을 알 수 있다.
Pull Request는 github에서 제공하는 기능으로 코드 리뷰 요청을 보낼 때 사용한다.
Pull Request는 original 저장소(woowacourse의 저장소)의 main 브랜치와 앞 단계에서 생성한 브랜치 이름(jinyeong-afk)을 기준으로 한다.
ex) 미션을 진행한 javajigi/java-baseball javajigi 브랜치 => woowacourse/java-baseball main
브랜치로 Pull Request를 보낸다.
제출하기를 눌러서 github ID와 Pull Request 주소를 적어서 제출하고, 예제 테스트 실행을 누르면 다음과 같이 실행 결과를 알려주고 성공적으로 제출할 수 있다.
아직은 1주차 온보딩이기에 fork, 브랜치 생성, Pull Request 방법을 배우고, 간단한 알고리즘 문제를 푸는 미션을 내주었는데 나는 평소에 파이썬으로 알고리즘을 공부했기에 자바 문법에 대해 자세히 알지 못해서 조금 어렵게 다가왔다.
다음 주차부터는 어떤 어려운 미션들이 기다릴지 기대된다.