Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions week1/[1주차] 심이현 과제.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
## www.google.com 을 치면 일어나는일
Keywords : DNS, TCP/IP프로토콜, WS, WAS

1. DNS 서버에서 도메인 주소를 IP주소로 변환
2. IP 주소를 알게 되면 TCP/IP를 통해 데이터를 주고 받기 위한 연결을 함
3. HTTP의 요청을 보내면 WS에서 요청을 받고 응답함
4. 만약 WS에서 처리할 수 없는 요청을 보낼 경우 WAS에서 로직 수행

---

## API, HTTP통신

- API: 애플리케이션이 상호작용할 수 있도록 프로그래밍 하는 것. HTTP 요청을 서버에 보냈을 때 실행됨.
- HTTP 통신: 컴퓨터 간에 텍스트 데이터를 주고 받는 길, 요청 및 응답 가능

---

## 백엔드가 하는 일
사용자 눈에 보이지 않는 서버에서 데이터를 관리하거나 로직을 설계하는 역할

---

## 객체지향 특징 및 장점
프로그램을 객체 간의 상호작용으로 만듦
(*객체란 메소드와 변수를 가지고 특정한 역할을 수행함)

유지보수가 쉽고 재사용성이 좋음

---

## 코드 컨벤션이란
코드 작성할 때 지켜야하는 공통 규칙과 가이드라인

---

## MVC 패턴
어플리케이션의 역할을 세 가지로 나눠서 관리하는 방식
- Model: 데이터와 로직 당담
- View: UI
- Controller: 사용자의 요청을 처리하고 흐름을 제어

---
1 change: 1 addition & 0 deletions week1/[1주차] 심이현.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
안녕하세요 저는 심이현입니다
51 changes: 51 additions & 0 deletions week2/[2주차] 심이현 과제.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# 학습한 내용
- Console.readLine(): Scanner를 사용하면 가짜 입력값을 주입하기 어렵다는 문제가 있다는 것을 알게되었고,
테스트 용이성을 고려한 설계의 중요성을 학습했다.
- Randoms.pickUniqueNumbersInRange(min, max, count): 지정된 범위 내에서 중복되지 않는 무작위 숫자를 추출
- Enum: 연관된 상수들을 그룹화하여 관리한다. 코드의 가독성과 유지보수성을 높일 수 있다.
- EnumMap: Enum을 키로 사용할 때 메모리 효율과 성능이 가장 뛰어나다는 것을 알게 되었다.
if-else를 사용하지 않고도 깔끔하게 통계를 낼 수 있다는 점에서 HashMap과 차이가 있다는 것도 알게되었다.

---

# 고민했던 점
함수 하나가 한 가지 일만 하고 15줄을 넘기지 않도록 하기 위해 메서드를 분리하려고 노력했다.
확실히 책임을 분리하니까 단위 테스트를 더 쉽게 할 수 있었던 것 같다.
s
---

# 아쉬운 점
기능 단위로 커밋을 하지 않았다는 것을 뒤늦게 확인했다.
기능 단위로 커밋을 하지 않으면 변경 이력을 추적하기 어렵고,
특정 기능에서 발생한 문제의 원인을 파악하는 효율이 떨어진다는 문제가 있다는 걸 다시 한 번 인지했으니,
앞으로 있을 과제에선 기능 단위 커밋을 잊지 않고 하는 습관을 들이고 싶다
요구 사항에 맞춰 직접 코드를 설계해본 경험이 부족해서 너무 뒤쳐지는 것 같다는 생각이 들었다.
내가 이해하고 있는 내용이 맞는지 제대로 사용하고 있는 게 맞는지 확신이 없어서 어려웠다.

그래도 요구 사항에 맞춰 문제를 해결해 나가는 즐거움을 알게 되었다.
부족한 점을 인지한 만큼 다음 세션에서는 조건을 더 잘 지켜 더 나은 구조를 설계해보고 싶다.

---

# 기능
### 입력
- 구입 금액 입력
- 1000단위로 입력 받음, 예외시 에러 메시지 출력
- Console.readLine() 이용
- 당첨 번호 입력
- 쉼표 기준 6개
- 보너스 번호 입력
- 당첨 번호와 중복X

### 로또 발행 및 관리
- 구입 금액에 맞는 개수만큼 로또 발행
- Randoms.pickUniqueNumbersInRange(min, max, count) 이용
- 오름차 순으로 로또 번호 정렬 및 저장
- 중복 검증

### 당첨 확인
- 당첨 등수 판별
- 일치 숫자 개수를 비교해 판별
- enum
- 수익률 계산