diff --git "a/week1/[1\354\243\274\354\260\250]\354\235\264\354\204\261\354\235\200.md" "b/week1/[1\354\243\274\354\260\250]\354\235\264\354\204\261\354\235\200.md" new file mode 100644 index 0000000..f91a7de --- /dev/null +++ "b/week1/[1\354\243\274\354\260\250]\354\235\264\354\204\261\354\235\200.md" @@ -0,0 +1,37 @@ +# COW 1주차 이성은 과제 + +## www.google.com을 치면 일어나는일 +### 1. DNS가 www.google.com에 해당하는 IP 주소를 조회한다. +### 2. 브라우저는 호스트의 IP 주소를 받아 해당 호스트의 WS(Web Server)와 TCP/IP 연결을 설정한다 +### 3. 브라우저에서 HTTP 요청을 생성하고 전송한다 +### 4. WS(Web Server, 정적 컨텐츠, 요청처리 등), WAS(Web Application Server, 동적 웹 페이지 생성, DB 연동 등)에서 요청을 처리한 후 응답을 생성한다. +### 5. 응답을 전송하여 컨텐츠가 렌더링 된다. +*** + +## API, HTTP통신 +### API : 애플리케이션(고유한 기능을 가진 모든 소프트웨어) 간의 요청과 응답을 주고 받는 형식 및 사용 방법을 정의한 인터페이스 +### HTTP 통신 : 클라이언트와 서버 간에 Hyper Text를 교환하기 위한 프로토콜 +*** + +## 백엔드가 하는 일 +### 1. 클라이언트에게 요청을 받고 응답을 반환 +### 2. DB와 연결하고 관리 +### 3. 요청과 Data를 활용하여 응답해야할 데이터로 변환하는 로직 구현 +### 4. 인증 및 보안 관리 +*** + +## 객체지향 특징 및 장점 +### 1. 유지보수성이 좋다 +### 2. 코드의 재사용성 및 확장성이 좋다 +### 3. 업무를 분담하기 좋다 +*** + +## 코드 컨벤션이란 +### 가독성을 높이고 관리하기 쉬운 코드를 작성하기 위한 코딩 스타일 규약(네이밍, 들여쓰기, 주석 등) +*** + +## MVC 패턴 +### Model : DB에 접근하여 데이터를 사용하고 관련된 로직 처리하는 역할 +### View : 사용자에게 보여지는 클라이언트 부분 +### Controller : View와 Model을 연결하는 역할 +*** \ No newline at end of file diff --git "a/week2/[2\354\243\274\354\260\250]\352\260\235\354\262\264\354\247\200\355\226\245 \354\275\224\353\223\234 \354\227\260\354\212\265.md" "b/week2/[2\354\243\274\354\260\250]\352\260\235\354\262\264\354\247\200\355\226\245 \354\275\224\353\223\234 \354\227\260\354\212\265.md" new file mode 100644 index 0000000..31a7c8c --- /dev/null +++ "b/week2/[2\354\243\274\354\260\250]\352\260\235\354\262\264\354\247\200\355\226\245 \354\275\224\353\223\234 \354\227\260\354\212\265.md" @@ -0,0 +1,49 @@ +# 링크 : https://github.com/COW-edu/practice-oop-lotto/pull/51 + +# 필수 기능 + +## 구입 금액 입력 +### 입력 했을때 나누기 밑 횟수 리턴 +### 1000으로 나누어 떨어지지 않으면 에러 처리 + +## 당첨 번호 입력 및 보너스 번호 입력 -> 오름차순 정렬하면 비교할 때 좋을듯 +### 1~45 사이의 숫자가 아니거나 같은 숫자를 입력시 에러 처리 + +## 로또 구입 +### 랜덤으로 갯수만큼 번호 추출 -> 오름차순 정렬 + +## 비교 및 당첨 확인 + +## 수익률 계산 + + +# 코드 방향성 + +## Lotto class +### 당첨 번호와 랜덤으로 뽑은 로또들을 저장 + +## Application class +### 입력 및 실행 담당 + 수익률 계산 method + +## check implement +### check_input -> 1000으로 나누어 떨어지는지 확인 +### check_num -> 1~45 사이의 숫자인지 확인 + +## Lotto 랜덤 생성 Class + +## Rank Class(Enum 사용) +### 등수를 저장하고 로또 번호끼리와 보너스 번호를 비교하는 메소드 생성 + +# 배운점 및 고민했던점, 아쉬운 점 등 +## 배운점 +### Scanner가 아닌 우테코에서 활용하는 Console을 사용하는 것이 효율적이다 +### Enum을 활용할 수 있다 +### 객체지향 관점으로 고민해보는 좋은 경험이 되었다. + +## 고민했던점 +### SOLID 원칙을 적용해서 코드를 짜보려고 하였다 -> 습관적으로 Application에 너무 책임이 몰린 거 같아 잘 지켜지진 않은것 같다 +### 금액이 1,000 단위로 떨어지는 지와 숫자가 1~45 사이에 존재하는 지가 둘 다 수를 확인하다 보니 Check 인터페이스를 활용해 구현받게 해보았다 + +## 아쉬운 점 +### Application에 너무 많은 책임이 들어있다... +### Enum의 사용법이나 장점에 명확히 이해하지 못 했다 \ No newline at end of file