Skip to content

Commit 9cd5128

Browse files
authored
Merge pull request #33 from sojung0628/main
8주차 - 쏘/김소정 워크북 과제 제출
2 parents 075ee41 + 746e214 commit 9cd5128

3 files changed

Lines changed: 79 additions & 0 deletions

File tree

week07/mission/mission.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
![image.png](attachment:27084a4a-1817-4b3c-bfc4-77e680ed9439:image.png)
2+
3+
![image.png](attachment:1db38a13-d835-4e5b-8fe2-f6cb584f1fa9:image.png)
4+
5+
![image.png](attachment:6c292aa5-8cf7-4b0f-9021-d6fbc282484a:image.png)
6+
7+
미들웨어가 무엇인가
8+
9+
Express에서 요청(req)과 응답(res) 사이에 끼워 넣는 함수들.
10+
11+
app.use((req, res, next) => { ...; next(); }) 형태로 등록하고, 순차적으로 실행되며 필요하면 응답을 끝내거나 next()로 다음 단계로 넘김.
12+
13+
공통 로깅, 인증, 파서(express.json), 쿠키 파서, 정적 파일 제공, 에러 처리 등을 각각 독립 함수로 두고 체인처럼 묶어두는 것임
14+
15+
- morgan: 요청 로그 미들웨어
16+
- cookieParser: 쿠키를 req.cookies 로 파싱
17+
- express.json, express.urlencoded: 바디 파싱 미들웨어
18+
- 커스텀 404 핸들러와 errorHandler: 라우트 이후 실행되는 에러 처리 미들웨어
19+
20+
![image.png](attachment:b92a70fa-a400-4088-883d-7fc5d3ea8bce:image.png)
21+
22+
에러 미들웨어는 서버 라우팅 체인 맨 끝에 붙어서 모든 예외를 한 번에 처리하는 안전장치이이다. 먼저 AppError 계열인지 확인해서, 우리가 의도적으로 던진 에러라면 그대로 쓰고, 그렇지 않으면 new AppError 로 감싸서 메시지·상태코드를 표준 형태로 바꿔준다. 개발 모드에서는 원본 스택을 details 로 남기고 console.error 로 로그를 찍지만, 운영 모드에서는 메시지만 노출하도록 구분했다. 최종적으로 { success: false, code, message } 구조의 JSON을 내려주기 때문에, 컨트롤러 어디에서 오류가 나도 클라이언트는 동일한 실패 응답 포맷을 받을 수 있다.

week08/keyword/keyword.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
- Swagger
2+
- **API 설명서를 자동으로 만들어주는 도구**
3+
- 백엔드에서 만든 API를 시각화해 문서처럼 보여줌
4+
- Swagger UI를 통해 브라우저에서 API 목록, 파라미터, 응답 구조 등을 확인 가능
5+
- 코드에 주석만 달아도 문서가 자동 생성됨
6+
(`swagger-jsdoc`, `swagger-ui-express` 등 사용)
7+
- 프론트엔드, 기획자, QA와 협업 시 커뮤니케이션 비용 절감
8+
- API를 직접 테스트할 수 있는 UI 제공
9+
10+
**장점**
11+
12+
- 문서 자동 생성 → 유지보수 편함
13+
- UI로 한눈에 확인 가능
14+
- 팀 협업에 최적화
15+
16+
**단점**
17+
18+
- OpenAPI 3.1 완전 지원 부족
19+
- 복잡한 커스터마이징 어려움
20+
- OpenAPI
21+
- **REST API 명세를 위한 표준 포맷 (YAML 또는 JSON)**
22+
- Swagger는 이 OpenAPI 명세를 읽고 문서를 생성함
23+
→ OpenAPI는 “언어”, Swagger는 “뷰어” 역할
24+
- `paths`, `parameters`, `requestBody`, `responses` 등 구조화된 형태로 API를 정의함
25+
- 도구와 언어 상관없이 동일한 규칙으로 API를 문서화 가능
26+
27+
**장점**
28+
29+
- 문서 표준화
30+
- 다양한 툴과 연동 쉬움
31+
- Git 등으로 버전 관리 가능
32+
33+
**단점**
34+
35+
- 문법이 복잡하게 느껴질 수 있음
36+
- 작성 규칙에 익숙해지는데 시간 필요
37+
- OpenAPI Component
38+
- **OpenAPI 문서에서 공통되는 항목을 재사용 가능하게 묶어둔 곳**
39+
- 중복된 객체(예: `User`, `ErrorResponse`)를 하나만 정의하고 참조 가능
40+
- 유지보수 편리, 문서 가독성 향상
41+
42+
```yaml
43+
components:
44+
schemas:
45+
User:
46+
type: object
47+
properties:
48+
id:
49+
type: integer
50+
name:
51+
type: string
52+
```

week08/mission/mission.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
https://github.com/sojung0628/UMC_node_mission
2+
3+
![image.png](attachment:144a9ac7-6e91-4216-a79f-08a66ccc4d84:image.png)
4+
5+
![image.png](attachment:d3806539-9630-49a8-99ea-f5d472a1164f:image.png)

0 commit comments

Comments
 (0)