
Swagger(Springdoc OpenAPI)์์ ๋ถํ์ํ ์ปฌ๋ผ์ด ๋ณด์ด๋ ์ด์ ๋
API ์๋ต์ DTO๋ฅผ ์จ์ผ ํ๋๋ฐ Entity๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ด๋ค.
โ ๋ฌธ์
@GetMapping("/users/{id}")
public UserEntity getUser(@PathVariable Long id) {
return userService.getUser(id);
}
UserEntity๋ฅผ ์ง์ ๋ฐํํ๋ฏ๋ก, Swagger์์ ๋ชจ๋ ํ๋(password, phoneNumber ๋ฑ)๊ฐ API ๋ฌธ์์ ํฌํจ๋๋ค.
โ ํด๊ฒฐ๋ฒ
โ Swagger์์ ๋ถํ์ํ ์ปฌ๋ผ์ด ๋ณด์ด๋ฉด, Entity ๋์ DTO๋ฅผ ์ฌ์ฉํ์
@GetMapping("/users/{id}")
public UserDto getUser(@PathVariable Long id) {
UserEntity user = userService.getUser(id);
return new UserDto(user.getUsername(), user.getEmail());
}
DTO๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ํ ํ๋๋ง API ์๋ต์ ํฌํจํ ์ ์์
โ๏ธ ํน์ ํ๋ ์จ๊ธฐ๋ ๋ฒ
@JsonIgnore๋ฅผ ์ฌ์ฉํ๋ฉด Swagger ๋ฌธ์์์ ํด๋น ํ๋๋ฅผ ์ ์ธํ ์ ์์
@JsonIgnore
private String password;
โ๏ธ DAO, DTO, VO, Entity ์ฐจ์ด
๊ฐ๋ | ์ญํ | ์ฃผ์ ์ฌ์ฉ์ฒ | ํน์ง |
DAO | DB ์ ๊ทผ ๊ฐ์ฒด | `MyBatis`, `JPA` | DB ์ฟผ๋ฆฌ ์คํ |
DTO | ๋ฐ์ดํฐ ์ ๋ฌ์ฉ | API ์์ฒญ/์๋ต | Swagger ๋ฌธ์ํ ์ ์ฌ์ฉ |
VO | ๋ถ๋ณ ๊ฐ์ฒด | ํน์ ๋๋ฉ์ธ ๊ฐ ๊ฐ์ฒด | `equals()` ์ค๋ฒ๋ผ์ด๋ ํ์ |
Entity | DB ํ ์ด๋ธ ๋งคํ | `JPA`, `MyBatis` | ๋ชจ๋ ํ๋ ํฌํจ ๊ฐ๋ฅ |
[Spring] ์คํ๋ง ํท๊ฐ๋ฆฌ๋ ๊ฐ๋ ์ ๋ฆฌ 1. DAO, DTO, VO, Entity ์ฐจ์ด
1. DAO (Data Access Object)DAO๋ DB์ ์ง์ ํต์ ์ ํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ๊ฐ์ ธ์ค๋ ๊ฐ์ฒด์ด๋ค.์ฌ์ฉ์ฒ : `MyBatis` ํน์ `JPA`์ ๊ฐ์ ORM์์ ์ค์ ๋ก DB ์ ๊ทผ์ ๋ด๋นํ๋ ๊ฐ์ฒดํน์ง: ๋ณดํต ์ธํฐํ์ด์ค + Mapper
awesomepossum.tistory.com
'ํ๋ก๊ทธ๋๋ฐ์ธ์ด > Spring&JSP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] ์คํ๋ง ํท๊ฐ๋ฆฌ๋ ๊ฐ๋ ์ ๋ฆฌ 1. DAO, DTO, VO, Entity ์ฐจ์ด (1) | 2025.04.02 |
---|---|
[JSP] ๊ฒ์ํ ๋ง๋ค๊ธฐ 12 _ ๋ถํธ์คํธ๋ฉ์ผ๋ก ๋ฉ์ธํ์ด์ง ๊พธ๋ฏธ๊ธฐ (106) | 2024.12.13 |
[JSP] ๊ฒ์ํ ๋ง๋ค๊ธฐ 11 _ ๊ฒ์๊ธ ์์ , ์ญ์ ๊ธฐ๋ฅ (64) | 2024.12.13 |
[JSP] ๊ฒ์ํ ๋ง๋ค๊ธฐ 11 _ ๊ฒ์ํ ๋ณด๊ธฐ ๊ธฐ๋ฅ (96) | 2024.12.09 |
[JSP] ๊ฒ์ํ ๋ง๋ค๊ธฐ 10 _ ๊ฒ์ํ ๊ธ๋ชฉ๋ก ๊ธฐ๋ฅ (60) | 2024.12.09 |

Swagger(Springdoc OpenAPI)์์ ๋ถํ์ํ ์ปฌ๋ผ์ด ๋ณด์ด๋ ์ด์ ๋
API ์๋ต์ DTO๋ฅผ ์จ์ผ ํ๋๋ฐ Entity๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ด๋ค.
โ ๋ฌธ์
@GetMapping("/users/{id}") public UserEntity getUser(@PathVariable Long id) { return userService.getUser(id); }
UserEntity๋ฅผ ์ง์ ๋ฐํํ๋ฏ๋ก, Swagger์์ ๋ชจ๋ ํ๋(password, phoneNumber ๋ฑ)๊ฐ API ๋ฌธ์์ ํฌํจ๋๋ค.
โ ํด๊ฒฐ๋ฒ
โ Swagger์์ ๋ถํ์ํ ์ปฌ๋ผ์ด ๋ณด์ด๋ฉด, Entity ๋์ DTO๋ฅผ ์ฌ์ฉํ์
@GetMapping("/users/{id}") public UserDto getUser(@PathVariable Long id) { UserEntity user = userService.getUser(id); return new UserDto(user.getUsername(), user.getEmail()); }
DTO๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ํ ํ๋๋ง API ์๋ต์ ํฌํจํ ์ ์์
โ๏ธ ํน์ ํ๋ ์จ๊ธฐ๋ ๋ฒ
@JsonIgnore๋ฅผ ์ฌ์ฉํ๋ฉด Swagger ๋ฌธ์์์ ํด๋น ํ๋๋ฅผ ์ ์ธํ ์ ์์
@JsonIgnore private String password;
โ๏ธ DAO, DTO, VO, Entity ์ฐจ์ด
๊ฐ๋ | ์ญํ | ์ฃผ์ ์ฌ์ฉ์ฒ | ํน์ง |
DAO | DB ์ ๊ทผ ๊ฐ์ฒด | MyBatis , JPA |
DB ์ฟผ๋ฆฌ ์คํ |
DTO | ๋ฐ์ดํฐ ์ ๋ฌ์ฉ | API ์์ฒญ/์๋ต | Swagger ๋ฌธ์ํ ์ ์ฌ์ฉ |
VO | ๋ถ๋ณ ๊ฐ์ฒด | ํน์ ๋๋ฉ์ธ ๊ฐ ๊ฐ์ฒด | equals() ์ค๋ฒ๋ผ์ด๋ ํ์ |
Entity | DB ํ ์ด๋ธ ๋งคํ | JPA , MyBatis |
๋ชจ๋ ํ๋ ํฌํจ ๊ฐ๋ฅ |
[Spring] ์คํ๋ง ํท๊ฐ๋ฆฌ๋ ๊ฐ๋ ์ ๋ฆฌ 1. DAO, DTO, VO, Entity ์ฐจ์ด
1. DAO (Data Access Object)DAO๋ DB์ ์ง์ ํต์ ์ ํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ๊ฐ์ ธ์ค๋ ๊ฐ์ฒด์ด๋ค.์ฌ์ฉ์ฒ : `MyBatis` ํน์ `JPA`์ ๊ฐ์ ORM์์ ์ค์ ๋ก DB ์ ๊ทผ์ ๋ด๋นํ๋ ๊ฐ์ฒดํน์ง: ๋ณดํต ์ธํฐํ์ด์ค + Mapper
awesomepossum.tistory.com
'ํ๋ก๊ทธ๋๋ฐ์ธ์ด > Spring&JSP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] ์คํ๋ง ํท๊ฐ๋ฆฌ๋ ๊ฐ๋ ์ ๋ฆฌ 1. DAO, DTO, VO, Entity ์ฐจ์ด (1) | 2025.04.02 |
---|---|
[JSP] ๊ฒ์ํ ๋ง๋ค๊ธฐ 12 _ ๋ถํธ์คํธ๋ฉ์ผ๋ก ๋ฉ์ธํ์ด์ง ๊พธ๋ฏธ๊ธฐ (106) | 2024.12.13 |
[JSP] ๊ฒ์ํ ๋ง๋ค๊ธฐ 11 _ ๊ฒ์๊ธ ์์ , ์ญ์ ๊ธฐ๋ฅ (64) | 2024.12.13 |
[JSP] ๊ฒ์ํ ๋ง๋ค๊ธฐ 11 _ ๊ฒ์ํ ๋ณด๊ธฐ ๊ธฐ๋ฅ (96) | 2024.12.09 |
[JSP] ๊ฒ์ํ ๋ง๋ค๊ธฐ 10 _ ๊ฒ์ํ ๊ธ๋ชฉ๋ก ๊ธฐ๋ฅ (60) | 2024.12.09 |