From b41edf51512afc31f7cdf6e52efa04b1c5803970 Mon Sep 17 00:00:00 2001 From: Aqoom01 Date: Wed, 19 Nov 2025 15:07:36 +0900 Subject: [PATCH 1/2] =?UTF-8?q?docs:=208=EC=A3=BC=EC=B0=A8=20=ED=82=A4?= =?UTF-8?q?=EC=9B=8C=EB=93=9C=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week08/keyword/Keyword.md | 104 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 week08/keyword/Keyword.md diff --git a/week08/keyword/Keyword.md b/week08/keyword/Keyword.md new file mode 100644 index 0000000..003cf78 --- /dev/null +++ b/week08/keyword/Keyword.md @@ -0,0 +1,104 @@ +- Swagger + + ### πŸ”Ή **μ •μ˜** + + SwaggerλŠ” REST APIλ₯Ό λ¬Έμ„œν™”ν•˜κ³  ν…ŒμŠ€νŠΈν•  수 μžˆλŠ” **λ„κ΅¬Β·ν”„λ ˆμž„μ›Œν¬ μƒνƒœκ³„ 전체 이름**이닀. + + κ³Όκ±°μ—λŠ” β€œSwagger Specification(μŠ€μ›¨κ±° μŠ€νŽ™)"μ΄λΌλŠ” 자체 λ¬Έμ„œ ν‘œμ€€μ„ μ‚¬μš©ν–ˆμ§€λ§Œ, 이것이 λ°œμ „ν•΄ **OpenAPI Specification(OAS)**둜 이름이 λ°”λ€Œμ—ˆλ‹€. + + ν˜„μž¬ SwaggerλŠ” λ‹€μŒκ³Ό 같은 **도ꡬ λͺ¨μŒ**을 μ˜λ―Έν•œλ‹€: + + - Swagger UI (API λ¬Έμ„œ μ‹œκ°ν™”) + - Swagger Editor (λ¬Έμ„œ μž‘μ„±) + - Swagger Codegen (ν΄λΌμ΄μ–ΈνŠΈ/μ„œλ²„ μ½”λ“œ 생성) + - SwaggerHub (ν˜‘μ—… ν”Œλž«νΌ) + - Swagger Parser λ“± + + ### πŸ”Ή **속성 / νŠΉμ§•** + + - API μŠ€νŽ™(OpenAPI 기반)을 **μžλ™ UI νŽ˜μ΄μ§€λ‘œ λ Œλ”λ§**ν•΄ λ³΄μ—¬μ€Œ + - μ‹€μ‹œκ°„ API ν…ŒμŠ€νŠΈ κ°€λŠ₯ (Try it out) + - JSON/YAML 기반 + - 개발 ν™˜κ²½(Spring, Express, NestJS λ“±)κ³Ό μ‰½κ²Œ 연동 + + ### πŸ”Ή **μž₯점** + + - UIκ°€ 직관적이고 μ‚¬μš©ν•˜κΈ° 쉬움 + - νŒ€ ν˜‘μ—…μ— 맀우 μœ μš©ν•œ API λ¬Έμ„œ 제곡 + - API λ³€κ²½ μ‹œ μžλ™ μ—…λ°μ΄νŠΈ (μ½”λ“œ 기반 swagger generator μ‚¬μš© μ‹œ) + - λ°±μ—”λ“œ-ν”„λ‘ νŠΈ ν˜‘μ—… 속도 ν–₯상 (Mock ν…ŒμŠ€νŠΈ κ°€λŠ₯) + + ### πŸ”Ή **단점** + + - λ³΅μž‘ν•œ ꡬ쑰의 APIμ—μ„œλŠ” μŠ€νŽ™ 관리가 μ–΄λ €μšΈ 수 있음 + - μžλ™ μŠ€μΊλ‹ 방식은 ν”„λ ˆμž„μ›Œν¬ μ˜μ‘΄μ„±μ΄ κ°•ν•΄μ§ˆ 수 있음 + - μ»€μŠ€ν…€ μŠ€νŽ™μ„ μ„Έλ°€ν•˜κ²Œ 닀루렀면 YAML 지식이 ν•„μš” +- OpenAPI + + ### πŸ”Ή **μ •μ˜** + + OpenAPI Specification(OAS)은 RESTful APIλ₯Ό **ν‘œμ€€ν™”λœ λ¬Έμ„œ ν˜•μ‹μœΌλ‘œ μ •μ˜ν•˜λŠ” 규격**이닀. + + 즉, "API λ¬Έμ„œλ₯Ό μ–΄λ–»κ²Œ μž‘μ„±ν•΄μ•Ό ν•˜λŠ”μ§€"에 λŒ€ν•œ **곡식 ν‘œμ€€**. + + OpenAPIλŠ” Swagger μŠ€νŽ™μ˜ 후속 버전이며 + + ν˜„μž¬ κ°€μž₯ 널리 μ‚¬μš©λ˜λŠ” API λ¬Έμ„œ ν‘œμ€€μ΄λ‹€. + + ### πŸ”Ή **속성 / νŠΉμ§•** + + - JSON λ˜λŠ” YAML둜 API λͺ…μ„Έ μž‘μ„± + - 경둜(`/users`), λ©”μ„œλ“œ(`GET`, `POST`) λ“± API ꡬ쑰λ₯Ό λͺ…ν™•ν•˜κ²Œ ν‘œν˜„ + - μš”μ²­(Request) / 응닡(Response) / μŠ€ν‚€λ§ˆ(Schema) / λ³΄μ•ˆ(Security) λ“± 포함 + - Swagger UI 뿐만 μ•„λ‹ˆλΌ ReDoc, Postman λ“± λ‹€μ–‘ν•œ λ„κ΅¬μ—μ„œ 지원 + + ### πŸ”Ή **μž₯점** + + - REST API λ¬Έμ„œν™”μ˜ 사싀상 ν‘œμ€€ + - λ‹€μ–‘ν•œ μƒνƒœκ³„ 도ꡬ와 ν˜Έν™˜ + - λ¬Έμ„œλ₯Ό 기반으둜 μ½”λ“œ μžλ™ 생성 κ°€λŠ₯ + - API 계약(Contract) 기반 κ°œλ°œμ„ ν•  수 μžˆλ„λ‘ 지원 + + ### πŸ”Ή **단점** + + - μ΄ˆλ³΄μžμ—κ²Œ 문법(YAML/JSON)이 λ³΅μž‘ν•˜κ²Œ 느껴질 수 있음 + - 큰 ν”„λ‘œμ νŠΈμ—μ„œ 관리 λΉ„μš© 증가 + - λ‹¨μˆœ λ¬Έμ„œ ν‘œμ€€μ΄λΌ μ‹€ν–‰ λ‘œμ§μ€ 직접 κ΅¬ν˜„ν•΄μ•Ό 함 +- OpenAPI Component + + ### πŸ”Ή **μ •μ˜** + + OpenAPI의 `components`λŠ” **API λ¬Έμ„œμ—μ„œ μž¬μ‚¬μš© κ°€λŠ₯ν•œ μš”μ†Œλ“€μ˜ μ§‘ν•©**이닀. + + μΌμ’…μ˜ β€œκ³΅μš© μ»΄ν¬λ„ŒνŠΈ μ €μž₯μ†Œβ€λΌκ³  보면 λœλ‹€. + + μ—¬κΈ°μ—λŠ” λ‹€μŒ ν•­λͺ©λ“€ 포함됨: + + - `schemas` (DTO, 데이터 λͺ¨λΈ) + - `parameters` (header, query, path νŒŒλΌλ―Έν„°) + - `responses` (곡톡 응닡 ꡬ쑰) + - `requestBodies` (곡톡 μš”μ²­ ꡬ쑰) + - `securitySchemes` (JWT λ“± 인증 방식) + - `headers` + - `examples` + - `links` + + ### πŸ”Ή **μ—­ν• ** + + - λ°˜λ³΅λ˜λŠ” ꡬ쑰λ₯Ό λͺ¨μ•„μ„œ **μž¬μ‚¬μš©** + - λ¬Έμ„œ 쀑볡 μ΅œμ†Œν™” + - μœ μ§€λ³΄μˆ˜μ„± 증가 + - μŠ€ν‚€λ§ˆ μ •μ˜λ₯Ό μ€‘μ•™ν™”ν•˜μ—¬ API λ¬Έμ„œ ν’ˆμ§ˆ ν–₯상 + + μœ„ ꡬ쑰처럼 `/components/schemas/User`λ₯Ό μž¬μ‚¬μš©ν•  수 μžˆλ‹€. + + ### πŸ”Ή **μž₯점** + + - λ¬Έμ„œκ°€ 클수둝 components의 효용이 컀짐 + - νƒ€μž…/μŠ€ν‚€λ§ˆλ₯Ό 일괄 관리해 였λ₯˜ κ°μ†Œ + - API μš”μ²­Β·μ‘λ‹΅ ꡬ쑰가 일관성을 가짐 + + ### πŸ”Ή **단점** + + - μ»΄ν¬λ„ŒνŠΈκ°€ λ§Žμ•„μ§€λ©΄ 파일 ꡬ쑰가 λ³΅μž‘ν•΄μ§ + - 잘λͺ» μ„€κ³„ν•˜λ©΄ 였히렀 관리가 μ–΄λ €μ›Œμ§ \ No newline at end of file From d452cf30650348ff433d31e82989711bcceaa986 Mon Sep 17 00:00:00 2001 From: rlaush <84065399+Aqoom01@users.noreply.github.com> Date: Wed, 19 Nov 2025 15:58:07 +0900 Subject: [PATCH 2/2] =?UTF-8?q?docs:=208=EC=A3=BC=EC=B0=A8=20=EB=AF=B8?= =?UTF-8?q?=EC=85=98=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week08/mission/Mission.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 week08/mission/Mission.md diff --git a/week08/mission/Mission.md b/week08/mission/Mission.md new file mode 100644 index 0000000..256b735 --- /dev/null +++ b/week08/mission/Mission.md @@ -0,0 +1,3 @@ +1 +2 +3