레벨1 [우아한테크코스 백엔드 4기] 레벨1 - "체스" STEP 1 회고 체스 게임 시작을 위해 입력해야 할 명령어의 문구를 출력한다. 체스 게임 시작을 위해서 명령을 입력받는다. [예외처리] 구성외의 입력은 받을 수 없다. [예외처리] move 뒤 값이 {원래 칸} {이동할 칸} 형태여야 한다. status를 입력받울 수 있다. [예외처리] start, move, end를 입력받을 수 없다. 체스 게임을 시작한다 위치가 변경될 때 마다 체스판을 출력한다 체스 게... 체스레벨1step1우테코step1 [우아한테크코스 백엔드 4기] 레벨1 - "블랙잭" 회고 참여자 이름 입력 받는 기능 [예외] 빈 문자열을 입력받은 경우 참여자의 배팅금액 입력 받는 기능 [예외] 숫자가 아닌 경우 한장 더 받는지 여부 확인 기능 [예외] y 또는 n이 아닌 문자를 입력받은 경우 카드 생성 플레이어 모음 객체 생성 플레이어 객체 생성 배팅금액 객체 생성 [예외] 0 이하일 경우 이름 객체 생성 카드 숫자 계산 카드 추가 기능 딜러 : 2장의 합계가 16 이하이면 ... 레벨1블랙잭우테코레벨1 [우아한테크코스 백엔드 4기] 레벨1 - "체스" STEP 2 회고 상여자는 커멘드로 간다^^ 방 이름을 입력받고 시작버튼을 누른다 이동하고 싶은 말과 칸을 커멘드로 입력한다 종료 버튼을 누른다 재시작 버튼을 누른다 각 방 이름별로 현재 진행 턴, 보드 상태를 저장한다. 방이름과 턴은 board 테이블에 String으로, 보드 상태는 squares 테이블에 저장한다 해당 방의 정보가 있는지 확인하고, 있을 시 게임 진행상태를 반환한다. 방 이름을 인자로 받아... 레벨1체스step2우테코step2 우아한테크코스 레벨1 로또 미션 정리 책임의 측면에서 보면 검증에 대한 로직은 해당 검증이 필요한 도메인에 두는 것이 맞다고 생각하는데, 변환과 같은 부분은 별도로 둘 수 있지 않을까 하는 생각이 들었다. 따라서 해당 입력이 1과 45 사이의 숫자인가에 대한 검증은 LottoNumber 라고 하는 VO객체에서 이루어질 수 있지만, 해당 입력이 숫자인지를 검증하고 이를 변환해주는 역할은 view에서 할 수 있을 것이다. 아래와 같... 레벨1피드백로또우아한테크코스레벨1 [프로그래머스] 다트 게임 (python3) 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 입력 형식 "점수|보너스|(옵션)"으로 이루어진 문자열 3세트. 예) 1S2D*3T 점수는 0에서 10 사이의 정수이다. 보너스는 S, D, ... 파이썬레벨1프로그래머스코딩테스트레벨1 우아한테크코스 레벨1 자동차 경주 미션 정리 내가 생각하기에 무분별하게 Setter를 두는 것은 해당 객체의 값을 의도하지 않은 곳에서 빈번하게 변경할 위험이 있기 때문에 자제하는 것이 좋다는 것을 생각했지만, Getter는 해당 객체의 인스턴스 변수 값을 변경하지 않기 때문에 필요한 곳에서 사용할 수 있도록 열어두어도 된다고 생각하였다. 어떤 인스턴스 변수(데이터)를 가지는 객체가 있다면 이 데이터에 대한 처리는 해당 객체의 책임이라... 자동차경주피드백레벨1우아한테크코스레벨1 우아한테크코스 레벨1 체스 미션 정리 아마 당시에 isXXX() 형태의 메소드는 어떤 기능을 수행하는 것이 아니라 '~~이니?'라고 묻는 메소드이기 때문에 제거해볼 수 있지 않을까 하는 생각에서 시작된 고민이었다고 생각된다. A. 해당 부분을 상태 안으로 넣음으로써 상태를 사용하는 곳, 즉 외부에서는 현재 어떤 상태인지를 알 필요없이 사용할 수 있게 된다. 즉 도메인에서 뷰에 의존하고 있다고 볼 수 있다. 따라서 Symbol 이... 체스피드백레벨1우아한테크코스레벨1 우아한테크코스 레벨1 블랙잭 미션 정리 DeckGenerateStrategy 인터페이스와 이를 구현하는 ShuffledDeckGenerateStrategy를 두어 덱 생성에 대한 책임을 해당 전략으로 분리할 수 있다. 예를 들어 위와 같은 코드의 경우, User 추상 클래스에 public abstract boolean isDealer();와 같은 추상메소드를 두고, 각각의 Dealer와 Player 구현체에서 그에 맞게끔 재정의 ... 블랙잭피드백레벨1우아한테크코스레벨1 우아한 테크코스 레벨1 돌아보기 이를 활용하면 전진 조건을 테스트 할 수 있습니다. 이를 통해 moveCar()메서드에 유연성을 부여 할 수 있습니다. 위와 같이 인터페이스를 잘 활용한다면 테스트가 까다로운 부분을 테스트 할 수 있고 동시에, 객체에 유연성을 부여 할 수 있습니다. 인스턴스 변수 선언을 통해 두가지 장점을 얻을 수 있습니다. 인스턴스 변수 선언을 통해 메서드 내부에서 인스턴스를 생성 하거나 파라미터로 필요한... 레벨1우아한테크코스레벨1 [프로그래머스] 8주차_최소직사각형 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 가장 긴 가로 ... 레벨1python프로그래머스위클리 챌린지코딩테스트python [python/java] 프로그래머스 2021 Dev-Maching: 웹 벡앤드 개발(상반기) 로또의 최고 순위와 최저 순위 🐍 문제 로또의 최고 순위와 최저 순위 문제 설명 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 25라고 가정해보겠습니다. 당첨 번호 6개가 31, 10, 45, 1, 6, 19라면, 당첨 가능한 최고 순위와 최저... 레벨1python프로그래머스2021 Dev-Maching: 웹 벡앤드 개발(상반기)Java코딩테스트2021 Dev-Maching: 웹 벡앤드 개발(상반기)
[우아한테크코스 백엔드 4기] 레벨1 - "체스" STEP 1 회고 체스 게임 시작을 위해 입력해야 할 명령어의 문구를 출력한다. 체스 게임 시작을 위해서 명령을 입력받는다. [예외처리] 구성외의 입력은 받을 수 없다. [예외처리] move 뒤 값이 {원래 칸} {이동할 칸} 형태여야 한다. status를 입력받울 수 있다. [예외처리] start, move, end를 입력받을 수 없다. 체스 게임을 시작한다 위치가 변경될 때 마다 체스판을 출력한다 체스 게... 체스레벨1step1우테코step1 [우아한테크코스 백엔드 4기] 레벨1 - "블랙잭" 회고 참여자 이름 입력 받는 기능 [예외] 빈 문자열을 입력받은 경우 참여자의 배팅금액 입력 받는 기능 [예외] 숫자가 아닌 경우 한장 더 받는지 여부 확인 기능 [예외] y 또는 n이 아닌 문자를 입력받은 경우 카드 생성 플레이어 모음 객체 생성 플레이어 객체 생성 배팅금액 객체 생성 [예외] 0 이하일 경우 이름 객체 생성 카드 숫자 계산 카드 추가 기능 딜러 : 2장의 합계가 16 이하이면 ... 레벨1블랙잭우테코레벨1 [우아한테크코스 백엔드 4기] 레벨1 - "체스" STEP 2 회고 상여자는 커멘드로 간다^^ 방 이름을 입력받고 시작버튼을 누른다 이동하고 싶은 말과 칸을 커멘드로 입력한다 종료 버튼을 누른다 재시작 버튼을 누른다 각 방 이름별로 현재 진행 턴, 보드 상태를 저장한다. 방이름과 턴은 board 테이블에 String으로, 보드 상태는 squares 테이블에 저장한다 해당 방의 정보가 있는지 확인하고, 있을 시 게임 진행상태를 반환한다. 방 이름을 인자로 받아... 레벨1체스step2우테코step2 우아한테크코스 레벨1 로또 미션 정리 책임의 측면에서 보면 검증에 대한 로직은 해당 검증이 필요한 도메인에 두는 것이 맞다고 생각하는데, 변환과 같은 부분은 별도로 둘 수 있지 않을까 하는 생각이 들었다. 따라서 해당 입력이 1과 45 사이의 숫자인가에 대한 검증은 LottoNumber 라고 하는 VO객체에서 이루어질 수 있지만, 해당 입력이 숫자인지를 검증하고 이를 변환해주는 역할은 view에서 할 수 있을 것이다. 아래와 같... 레벨1피드백로또우아한테크코스레벨1 [프로그래머스] 다트 게임 (python3) 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 입력 형식 "점수|보너스|(옵션)"으로 이루어진 문자열 3세트. 예) 1S2D*3T 점수는 0에서 10 사이의 정수이다. 보너스는 S, D, ... 파이썬레벨1프로그래머스코딩테스트레벨1 우아한테크코스 레벨1 자동차 경주 미션 정리 내가 생각하기에 무분별하게 Setter를 두는 것은 해당 객체의 값을 의도하지 않은 곳에서 빈번하게 변경할 위험이 있기 때문에 자제하는 것이 좋다는 것을 생각했지만, Getter는 해당 객체의 인스턴스 변수 값을 변경하지 않기 때문에 필요한 곳에서 사용할 수 있도록 열어두어도 된다고 생각하였다. 어떤 인스턴스 변수(데이터)를 가지는 객체가 있다면 이 데이터에 대한 처리는 해당 객체의 책임이라... 자동차경주피드백레벨1우아한테크코스레벨1 우아한테크코스 레벨1 체스 미션 정리 아마 당시에 isXXX() 형태의 메소드는 어떤 기능을 수행하는 것이 아니라 '~~이니?'라고 묻는 메소드이기 때문에 제거해볼 수 있지 않을까 하는 생각에서 시작된 고민이었다고 생각된다. A. 해당 부분을 상태 안으로 넣음으로써 상태를 사용하는 곳, 즉 외부에서는 현재 어떤 상태인지를 알 필요없이 사용할 수 있게 된다. 즉 도메인에서 뷰에 의존하고 있다고 볼 수 있다. 따라서 Symbol 이... 체스피드백레벨1우아한테크코스레벨1 우아한테크코스 레벨1 블랙잭 미션 정리 DeckGenerateStrategy 인터페이스와 이를 구현하는 ShuffledDeckGenerateStrategy를 두어 덱 생성에 대한 책임을 해당 전략으로 분리할 수 있다. 예를 들어 위와 같은 코드의 경우, User 추상 클래스에 public abstract boolean isDealer();와 같은 추상메소드를 두고, 각각의 Dealer와 Player 구현체에서 그에 맞게끔 재정의 ... 블랙잭피드백레벨1우아한테크코스레벨1 우아한 테크코스 레벨1 돌아보기 이를 활용하면 전진 조건을 테스트 할 수 있습니다. 이를 통해 moveCar()메서드에 유연성을 부여 할 수 있습니다. 위와 같이 인터페이스를 잘 활용한다면 테스트가 까다로운 부분을 테스트 할 수 있고 동시에, 객체에 유연성을 부여 할 수 있습니다. 인스턴스 변수 선언을 통해 두가지 장점을 얻을 수 있습니다. 인스턴스 변수 선언을 통해 메서드 내부에서 인스턴스를 생성 하거나 파라미터로 필요한... 레벨1우아한테크코스레벨1 [프로그래머스] 8주차_최소직사각형 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 가장 긴 가로 ... 레벨1python프로그래머스위클리 챌린지코딩테스트python [python/java] 프로그래머스 2021 Dev-Maching: 웹 벡앤드 개발(상반기) 로또의 최고 순위와 최저 순위 🐍 문제 로또의 최고 순위와 최저 순위 문제 설명 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 25라고 가정해보겠습니다. 당첨 번호 6개가 31, 10, 45, 1, 6, 19라면, 당첨 가능한 최고 순위와 최저... 레벨1python프로그래머스2021 Dev-Maching: 웹 벡앤드 개발(상반기)Java코딩테스트2021 Dev-Maching: 웹 벡앤드 개발(상반기)