본문 바로가기

우테코

(34)
우테코 4주차 - 3주차 공통 피드백 검토 3주차 공통 피드백이 왔다. 한번씩 살펴보자 1. 함수(메서드) 라인에 대한 기준 : 함수 15라인의 기준은 main에도 해당한다. 2. 비즈니스 로직과 ui로직을 분리하기 : 객체는 하나의 책임을 지녀야 한다. : 비즈니스 로직과 ui로직을 한 클래스가 담당하지 않도록 하자 3. 연관성이 있는 상수는 static final 대신 enum을 활용 public enum Rank { FIRST(6, 2_000_000_000), SECOND(5, 30_000_000), THIRD(5, 1_500_000), FOURTH(4, 50_000), FIFTH(3, 5_000), MISS(0, 0); private int countOfMatch; private int winningMoney; private Rank(in..
우테코 3주차 - [로또] : 회고 현재 우테코 3주차 기능 구현을 모두 끝내고 pull request로 제출도 완료한 상태이다. 원래 구현하면서 했던 생각을 하나하나 다 정리해볼 생각이었지만 생각보다 구현시간이 너무 오래걸렸고 내용도 많아서 차후로 미뤄두고 우선 마감이전까지 회고만 정리해보고자 한다. - 에러에도 내용이 담겨져 있어야 한다. 이전 주차까지는 예외사항 발생시 IllegalArgumentException만을 던져줌으로써 조건을 만족시켰으나, 이번 주차부터 어떤 상황에서 예외가 발현되었는지를 명시하라는 요구사항이 있었다. 이에 각 오류 유형별로 메소드를 분류하고 오류메시지를 던져주는 식으로 에러 안에 왜 에러가 발생되었는지 내용을 담으려 노력했다. public static void rangeException() { System..
우테코 3주차 - [로또] 요구사항 분석 + 기능구현목록 작성 우테코 3주차 미션은 [로또]였다. 자세한 내용은 다음 github 링크에서 볼 수 있다. 그럼 프로그래밍 요구사항에서 나타낸 이번 주차의 중요한 점들을 검토해보자 1. 프로그래밍 요구사항 분석 1-1. 프로그래밍 요구사항 indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. 2까지만 허용한다. 예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다. 힌트: indent(인덴트, 들여쓰기) depth를 줄이는 좋은 방법은 함수(또는 메서드)를 분리하면 된다. 3항 연산자를 쓰지 않는다. 함수(또는 메서드)가 한 가지 일만 하도록 최대한 작게 만들어라. JUnit 5와 AssertJ를 이용하여 본인이 정리한 기능 목록이 정상 동작함을 테스트 코드로 확인한다. 1-2. 추가된 요구..
우테코 3주차 - 2주차 피드백 검토 벌써 우테코 3주차에 접어들었다. 2주차 피드백을 검토해보자 1. README.md 작성 관련 - 이 프로젝트가 어떤 프로젝트인지 - 어떤 기능을 담고 있는지 - 마크다운 문서 문법을 학습하고 적용할 필요가 있음 2. 기능목록 - 클래스 설계/구현, 함수 설계처럼 너무 상세하지 않게 => 언제든 변경이 가능하므로 - 예외적인 상황도 정리 - 기능구현을 하며 변경이 가능하므로 처음부터 완벽히 작성하기보다 계속 업데이트 => 죽은 문서가 아닌 살아있는 문서를 만들자 3. 값 하드코딩x => 하드코딩 : 데이터를 코드 내부에 직접 입력하는 것 : 상수(static final)을 만들고 이름을 부여해 변수의 역할을 드러내기 4. 구현 순서 = 코딩 컨벤션 클래스 구현 순서 : 상수 > 멤버 변수 > 생성자 > ..
우테코 2주차 - [자동차 경주] : TDD 작성 기능을 모두 구현하고 난 이후에는 Application Test 이외에 TDD를 몇가지 테스트하며 구현한 함수가 제대로 작동하는지 테스트해보았다. TDD에 아직 익숙하지 않은 만큼 먼저 다음 링크의 블로그를 통해 Junit test code 작성법을 익혔다. => 참고한 링크들 https://velog.io/@jkijki12/Java-TDD [Java] TDD 어떻게 하는가? TDD가 무엇이냐!!!!! 왜 자꾸 내눈에 보이는 것이냐!!! velog.io https://juhi.tistory.com/58 [TDD 공부-java] 3) 예외 처리 새로 배운 annotation @DisplayName(""): 테스트에 표시 이름을 붙이는 annotation @Disabled : 특정 테스트를 실행하고 싶지 않..
우테코 2주차 - [자동차 경주] : 기능 구현 기능 구현 목록 ## 기능 구현 목록 1. 자동차 이름 입력 받기[1] - 자동차 이름이 조건에 맞는지 확인하는 기능[1] - 쉼표를 기준으로 자동차 이름 목록을 문자열 리스트로 저장[1] 2. 시도 회수 입력받기[1] - 숫자가 정확히 입력되었는지 확인하는 기능[1] 3. 자동차 - 자동차 이름 생성하기[1] - 자동차 이동거리 생성하기[1] - 자동차 전진여부 함수 생성하기[1] 4. 자동차 목록 - 자동차 목록 생성하기[1] - 자동차 목록에 자동차 추가하기[1] - 턴마다 매턴 자동차 전진하는 함수[1] - 매 턴의 결과 출력함수[1] - 우승자 목록을 알려주는 함수[1] 5. 레이싱 게임 - 자동차 목록 생성 - 자동차 생성 - 입력된 턴수 만큼 반복 - 자동차 전진 - 턴별 실행결과 출력 - ..
우테코 2주차 - [자동차 경주] 프로그래밍 요구사항 파악 + 구현 기능 목록 작성 2주차 미션이 시작되었다. 이번 미션은 자동차 경주로 구체적인 요구사안은 다음 링크에 정리되어 있다. https://github.com/woowacourse-precourse/java-racingcar-6 GitHub - woowacourse-precourse/java-racingcar-6 Contribute to woowacourse-precourse/java-racingcar-6 development by creating an account on GitHub. github.com 이중 주의해야 할 점은 바로 기능 요구사항이다. 1. 기능 요구사항 주어진 횟수 동안 n대의 자동차는 전진 또는 멈출 수 있다. 각 자동차에 이름을 부여할 수 있다. 전진하는 자동차를 출력할 때 자동차 이름을 같이 출력한다...
우테코 2주차 - 1주차 공통 피드백 검토 우테코 프리코스에서는 각 주차별 미션공지와 함께 작성 코드에 대한 공통피드백을 주신다. 이 부분에서 미션의 의도를 파악할 수 있고 앞으로 신경써서 개선해야할 포인트들을 알아낼 수 있으리라 판단했다. 이 피드백을 바탕으로 다음 미션 코드를 개선할 수 있고, 내가 어떤 점을 간과하고 있었는지 검토해보자 1. 요구사항을 정확히 준수한다. - 1번부터 조금 찔렸다. 시험기간이라 기능 구현에만 급급했던 게 사실이라 코드 컨벤션이나 depth와 같은 프로그래밍 요구사안을 꼼꼼히 확인하지 못했던 것이 마음에 걸린다. 2. 커밋 메시지를 의미있게 작성한다. 커밋 메시지에 해당 커밋에서 작업한 내용에 대한 이해가 가능하도록 작성한다. 내가 작성한 커밋 메시지를 다시한번 검토해보았다. 문제가 확연했다. - 함수 : 어떤 ..