Swagger๋?
- Swagger๋ REST API ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์์ฑํ๊ณ ์น ํ๋ฉด์์ ์ง์ API๋ฅผ ํ
์คํธํ ์ ์๊ฒ ํด์ฃผ๋ ๋๊ตฌ
- ์ฝ๋ ๊ธฐ๋ฐ์ผ๋ก ๋ฌธ์ ์๋ ์์ฑ
- ํ๋ก ํธ, ๋ฐฑ์๋, QA ๊ฐ API ๋ช ์ธ ๊ณต์ ํ์ค
- ์์ฒญ/์๋ต ๊ตฌ์กฐ๋ฅผ ๋์ผ๋ก ํ์ธ + ์ง์ ํธ์ถ ๊ฐ๋ฅ
- Swagger = API ๋ช ์ธ์ + ํ ์คํธ UI
Swagger ์ฌ์ฉ ์ด์ ?
- ๋ฌธ์ ๋ฐ๋ก ์ ์จ๋ ๋จ
- Controller ์ฝ๋ + ์ด๋ ธํ ์ด์ -> ๋ฌธ์ ์๋ ์์ฑ
- Notion, Excel, Wiki ๋ฐ๋ก ๊ด๋ฆฌํ ํ์ ๊ฐ์
- ํ๋ก ํธ์ ํ์
์ด ์ฌ์
- ํ๋ก ํธ๊ฐ Swagger ๋ณด๊ณ ๋ฐ๋ก API ์ฐ๋ ๊ฐ๋ฅ
- ์์ฒญ ํ๋ผ๋ฏธํฐ, ์๋ต ๊ตฌ์กฐ ์คํด ์ค์ด๋ฆ
- ํ
์คํธ ๋๊ตฌ๋ก ๋ฐ๋ก ์ฌ์ฉ
- Postman ์์ด๋ ๋จ
- ์ธ์ฆ ํ ํฐ ๋ฃ๊ณ ์ค์ API ํธ์ถ ๊ฐ๋ฅ
Swagger์ ๊ธฐ๋ฐ : OpenAPI
- Swagger๋ OpenAPI Specification(OAS) ํ์ค์ ๋ฐ๋ฅธ๋ค
- OpenAPI = API๋ฅผ ์ ์ํ๋ ๋ช ์ธ ๊ท๊ฒฉ
- Swagger UI = ๊ทธ ๋ช ์ธ๋ฅผ ํ๋ฉด์ผ๋ก ๋ณด์ฌ์ฃผ๋ ๋๊ตฌ
SpringBoot์์ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
- ์์กด์ฑ ์ถ๊ฐ (SpringBoot 3.x ๊ธฐ์ค)
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'
- ์คํ & ์ ์
http://localhost:8080/swagger-ui.html
๋๋
http://localhost:8080/swagger-ui/index.html
-> ํธ์ถํ๋ฉด UI๋ก API ํ ์คํธ ๊ฐ๋ฅ

๊ธฐ๋ณธ ์ด๋ ธํ ์ด์ ์ ๋ฆฌ
- Controller ์ค๋ช
@Tag(name = "ํ์ API", description = "ํ์ ๊ด๋ จ ๊ธฐ๋ฅ")
@RestController
@RequestMapping("/api/members")
- API ์ค๋ช
@Operation(summary = "ํ์ ์กฐํ", description = "memberId๋ก ํ์ ์ ๋ณด๋ฅผ ์กฐํํฉ๋๋ค.")
@GetMapping("/{id}")
public MemberResponse getMember(@PathVariable Long id) {
...
}
- ์์ฒญ/์๋ต ํ๋ ์ค๋ช
@Schema(description = "ํ์ ์ด๋ฉ์ผ", example = "test@test.com")
private String email;
- ์ธ์ฆ API ํ
์คํธ (JWT)
- Swagger ์๋จ Authorize ๋ฒํผ ์ฌ์ฉ
- ์ดํ ๋ชจ๋ API ํธ์ถ์ Authorization ํค๋ ์๋ ํฌํจ
โป ์ด์ ์๋ฒ์์๋ Swagger ๋นํ์ฑํ ๊ถ์ฅ
๋ด๋ถ ์ ๋ณด ๋ ธ์ถ ๋ฐฉ์ง, ๋ณดํต dev๋ local ํ๋กํ์ผ์์๋ง ์ฌ์ฉํจ
springdoc:
swagger-ui:
enabled: false
'ETC.' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [SAP] ABAP ๊ฐ๋ฐ ๊ตฌ์กฐ์ ๋ํด์ (2) | 2025.10.28 |
|---|---|
| [SAP] SAP์ ๋ํด์ ์์๋ณด์ (2) | 2025.10.21 |
| [Jenkins] ํ์ดํ๋ผ์ธ(Pipeline) ๋ฌธ๋ฒ (0) | 2025.10.12 |
| [Svelte] Svelte๋ ๋ฌด์์ธ๊ฐ (2) | 2025.08.18 |
| [Server] Redis ์๋ฒ๋? (0) | 2025.03.29 |