Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[8주차] 방현우 학습 PR 제출합니다. #40

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
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
44 changes: 0 additions & 44 deletions week08/README.md

This file was deleted.

68 changes: 68 additions & 0 deletions week08/방현우.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
> ‼️ 해당 파일은 절대로 지우지 말아주세요 ‼️

# COW MVC PRACTICE 학습 저장소
Postman을 사용하여, 여러분이 직접 api를 설계합니다. 그 다음 여러분이 스프링을 사용하여 웹 서버를 구현하고 Postman을 통해 요청에 대한 적절한 응답이 왔는 지를 확인하는 것이 이번 과제의
최종 목표입니다.
## 📮 미션 제출 방법
- 미션 구현을 완료한 후 GitHub을 통해 제출해야 한다.
- [미션 구현 저장소] [docker 사용 버전](https://github.com/Hoya324/cow_mvc_practice) 또는 [h2 사용 버전](https://github.com/Hoya324/cow_mvc_session) 에 자신의 작성한 미션 pr 작성
- docker 환경 설정이 어려운 경우 h2 사용 권장합니다.
- 미션 구현에서 기록한 md파일은 [COW-Spring-3](https://github.com/COW-edu/COW-Spring-3/tree/main/week08) 리포지토리에 pr 작성
- 미션 구현 pr 링크 첨부(필수)
---

현재 목표가 웹 서버를 개발하기에 인터넷, http, Rest Api에 대해서 조사하시면 여러분들에게 도움이 될 것 같습니다.

또 추가적으로 DB를 잘 모르시는 분들에게 엔터티간의 관계, 1:1 1:N 처리에 문제가 생길 수 있기에 추가적으로 학습하셔도 좋을 것 같습니다.

5/14 화요일 23:59 까지 제출해주시면 되겠습니다.

## [필수]

## 인터넷과 네트워크
- 인터넷은 '상호' 간의 뜻인 'inter'와 네트워크의 'net'이 합쳐진 단어로, 전 세계의 네트워크들이 연결된 거대한 네트워크를 의미
- 네트워크는 동료들과 데이터를 교환하고 협력하는 것이 주요 목적이지만, 인터넷은 지식을 얻고 소통하는 것이 주요 목적
- 네트워크는 LAN(Local Area Network), WAN(Wide Area Network) 등으로 구분되며, 인터넷은 WAN의 일종으로 전 세계의 LAN을 연결한 네트워크
---

## http란
- HTTP는 네트워크 장치 간에 정보를 전송하도록 설계된 애플리케이션 계층 프로토콜
- HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, HTML 문서와 같은 리소스들을 가져올 수 있도록 해줌.
- HTTP는 요청 메서드를 정의하여 주어진 리소스에 수행하길 원하는 행동을 표시.
---

## http 메서드
- HTTP 메서드는 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식을 의미
- 주요 HTTP 메서드에는 GET, POST, PUT, DELETE, PATCH 등
- GET: 리소스 조회, POST: 요청 데이터 처리(주로 데이터 등록), PUT: 리소스 대체(없으면 생성), DELETE: 리소스 삭제 등의 역할
---

## http 상태 코드
- HTTP 상태 코드는 클라이언트의 요청에 대한 서버의 응답 상태를 나타내는 숫자 코드.
- 200번대: 성공, 300번대: 리다이렉션, 400번대: 클라이언트 오류, 500번대: 서버 오류 등으로 구분됩니다.
---

## HTTP 헤더
- HTTP 헤더는 요청과 응답 메시지에 포함되는 부가 정보로, 메시지의 메타데이터를 제공
- 일반 헤더, 요청 헤더, 응답 헤더, 엔티티 헤더 등으로 구분됨.
- 대표적인 헤더로는 Content-Type, User-Agent, Authorization 등

**일반 헤더: 요청과 응답 모두에 사용되는 헤더**

**요청 헤더: 클라이언트가 서버에 보내는 추가 정보**

**응답 헤더: 서버가 클라이언트에 보내는 추가 정보**

**엔티티 헤더: 요청/응답 본문에 대한 정보**


---
## Rest API란
- REST(Representational State Transfer)는 웹의 기존 기술과 아키텍처를 활용하여 네트워크 기반 소프트웨어 아키텍처 스타일을 의미
- REST API는 HTTP 메서드를 활용하여 리소스를 처리하는 API 설계 방식
- 자원 기반 설계, 표준 HTTP 메서드 사용, 무상태성, 캐싱 가능성 등의 특징
- 캐싱 가능성: HTTP 캐싱 기능 활용

## [추가]

## Entity간의 연관 관계의 주인