우테코 깃허브를 참고해서 작성하였습니다.
git clone https://github.com/{본인_아이디}/{저장소 아이디}.git
ex) git clone https://github.com/PARKSEGUN/java-onboarding-test.git
클론 폴더로 이동(이동 상태를 유지한 상태로 밑에 과정 진행)
// clone한 폴더로 이동하는 방법
cd {저장소 아이디}
ex) cd java-baseball-test
git checkout -b {본인 아이디, 깃허브 아이디, parksegun}
ex) git checkout -b javajigi
git status // 변경된 파일 확인
git add -A(또는 .) // 변경된 전체 파일을 한번에 반영
git commit -m "메시지" // 작업한 내용을 메시지에 기록
커밋은 로컬에만 반영되기때문에 깃허브에도 적용하기위해 push
git push origin (브랜치 이름, parksegun)
ex) git push origin parksegun
적용하면 깃허브에 내 이름으로된 브랜치가생성되고 수정한 부분이 push 된다.
푸쉬를 진행했기때문에 woowacourse의 저장소로 Pull Request를 보내준다.
pull Request 하라는 문구가 보이지 않는다면
클릭후 New Pull Request 클릭 후 수정된 부분을 보낸다
제출가이드 필히 읽기!
5기 선배분들은 1주차 문제를 마주하고 어떻게 문제를 해결했으며 어려움점은 무엇이였는지, 무엇을 경험했는지를 알기위해 선배분들의 1주차 회고록을 읽게되었다.
회고록을 읽고 느낀점을 정리해보자 한다.
회고록 1번
회고록 2번
회고록 3번
회고록 4번
<type>(<scope> 여기 문제 번호): <short summary>
type
- feat : 새로운 기능 추가
- fix : 버그 수정
- docs : 문서 관련
- style : 스타일 변경 (포매팅 수정, 들여쓰기 추가, …)
- refactor : 코드 리팩토링
- test : 테스트 관련 코드
- build : 빌드 관련 파일 수정
- ci : CI 설정 파일 수정
- perf : 성능 개선
- chore : 그 외 자잘한 수정
아래와 같은 순서로 작성해보자
코드를 작성할 때에 주석을 사용해보자.
주석 내용은 이전에 작성했던 기능 목록 작성 내용을 이용해서 작성해보자.
주석은 가독성을 늘려주기때문에 내 코드를 검사할 분들을 위해서 주석을 사용하자
어떤 기능을 담당하는 지, 어떤값을 파라미터로 가져왔는지, 어떤 값을 리턴하는지
- 기능 목록 작성 + 데이터 유효성 검사에 대한 체크리스트
데이터 유효성 검사 : 올바른 데이터가 들어왔는지 확인 제한사항을 확인하고 빠진 부분 잡아내기
기능 목록 : 문제를 해결하기위해 필요한 기능(함수)들
ex)
- [ ] 데이터 유효성 검사
- [x] ~~배열이 아닌 다른 형식의 데이터가 들어왔을 때~~
- 함수의 파라미터 타입이 List<Inteager> 이기 때문에 이러한 예외 사항은 없을 것이다
- [x] 배열이지만 원소가 2개가 아닐 때
- [x] 입력한 페이지 수가 한 페이지 차이가 아닐 때
- [x] 왼쪽 페이지가 홀수가 아니고, 오른쪽 페이지가 짝수가 아닌 경우
- [x] 400페이지를 넘어간 경우
- [x] 0 이하의 값을 입력한 경우
- [x] pobi 왼쪽, 오른쪽 값 계산 → 큰 값 결정
- [x] crong 왼쪽, 오른쪽 값 계산 → 큰 값 결정
- [x] pobi와 crong 중 큰 사람 결정
- [x] 결과 return
- [x] pobi가 더 크다면 1 리턴
- [x] crong이 더 크다면 2 리턴
- [x] 동일하다면 0 리턴
코딩 문제를 해결하면서 검색해보거나 사용했던 방법을 메모해서 회고록이나 느낀점을 더 효율적으로 작성할 수 있게 하자
문제를 연습해보면서 제시해주는 테스트를 통과하지만 내가 생각해서 만든 테스트를 통과하지 못하는 경우가 있었다.
나만의 반례를 만들어서 테스트해보자!
오류가 발생하지않았지만 그래도 발견하지 못했던 예외사항이 있을 수 있기때문에 시간이 남는다면 코드를 다시 한번 확인하자
코드를 다시 한번 보면서 더 효율적인 방법을 찾고 수정할 수 있기 때문.
우아한테크코스의 중요하게보는 '회고'에 대해서 작성하면서 다시 한번 배운점에 대해서 상기 시킬 수 있기때문에 느낀점을 적고 제출 할 때에 도움이 될것이고 다른 분들에게도 분명히 도움이 될것이기때문에 작성해보자.
제출하기 하루이틀 전에 진행!
- 메소드명에는 파스칼 표기법을 사용한다.
(ex. public void SendMessage(String message) {} )- 속성에 접근하는 메소드명의 접두사는 'get','set'을 사용한다.
(ex. public void setDisplayName)
(ex. public void getDisplayName)- 데이터를 조회하는 메소드명의 접두사는 find를 사용한다.
(ex. public void findData(String data){})- 데이터를 입력하는 메소드명의 접두사는 input을 사용한다.
(ex. public void inputData(HashMap data){})- 데이터를 변경하는 메소드명의 접두사는 modify를 사용한다.
(ex. public void modifyData(HashMap data){})- 데이터를 삭제하는 메소드명의 접두사는 delete를 사용한다.
(ex. public void deleteData(String data){})- 데이터를 초기화 하는 메소드명의 접두사는 initialize을 사용한다.
(ex. public void initData(String data){})- 반환값의 타입이 boolean인 메소드는 접두사로 is를 사용한다.
(ex. public void isData(String Data){})- 데이터를 불러오는 메소드명의 접두사는 load를 사용한다.
(ex. public void loadData(){})- 데이터가 있는지 확인하는 메소드명의 접두사는 has를 사용한다.
(ex. public void hasData(){})- 보다 지능적인 set이 요구될때 사용하는 메소드명의 접두사는 register를 사용한다.
(ex. public void registerAccount(){})- 새로운 객체를 만든뒤 해당 객체를 리턴해주는 메소드명의 접두사는 create를 사용한다.
(ex. public void createAccount(){})- 해당 객체를 다른 형태의 객체로 변환해주는 메소드명의 접두사는 to를 사용한다.
(ex. public void toString(){})- 해당 객체가 복수인지 단일인지 구분하는 메서드명의 접미사는 s를 사용한다.
(ex. public void getMembers(){})- B를 기준으로 A를 하겠다는 메소드명의 전치사는 By를 사용한다.
(ex. public void getUserByName(String name){})
한 메서드에 오직 한 단계의 들여쓰기(indent)만 허용했는가?
else 예약어를 쓰지 않았는가?
모든 원시값과 문자열을 포장했는가?
참고
간단하게 객체 내의 모든 원시 요소를 캡슐화하기만 함면된다.
원시 요소란,
int age = 20; //원시타임의 변수 선언
Age age = new Age(20); /원시 타입의 변수를 객체로 포장한 변수 선언
- 자기주도
- 프리코스를 통해 역량을 키우는 것
- 올인해보자
- 미치는 경험을 해보자
- 1주차 내용에 관한 리뷰나 소통 등은 2주차에 진행