๐Ÿ“š TIL 25์ผ์ฐจ

temprmnยท2023๋…„ 6์›” 20์ผ
0
post-thumbnail

์˜ค๋Š˜์˜ ์ฃผ์š”์‚ฌํ•ญ (6/20, ํ™”์š”์ผ)

  1. Spring ์ˆ™๋ จ ์ฃผ์ฐจ ํŒŒ์ดํŒ…

(ERD๋ฅผ ๊ทธ๋ฆฌ๋ ค๊ณ  ํ–ˆ๋˜ ๊ฒƒ)

๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋“ค์˜ ERD๋ฅผ ์ฐธ๊ณ ํ•ด์„œ entity๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๊นŒ์ง„ ํ–ˆ๋Š”๋ฐ, ๊ด€๊ณ„ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ๋‹จ๊ณ„์—์„œ ๋ง‰ํ˜”๋‹ค. ์‚ฌ์ดํŠธ ๊ธฐ๋Šฅ์ด ์–ด์ƒ‰ํ•œ ๊ฒƒ๋„ ํ•œ ๋ชซ ํ•˜์ง€๋งŒ... (ใ… ใ… ) ์•„์ง ๋“ฃ์ง€ ๋ชปํ•œ ์ฃผ์ฐจ์— ERD์— ๋Œ€ํ•œ ์„ค๋ช…์ด ์žˆ๋Š”๋ฐ ๊ทธ๋ถ€๋ถ„๊นŒ์ง€ ์ˆ˜๊ฐ•ํ•˜๊ณ  ์žฌ๋„์ „ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

Q. JPA ํ”„๋กœ์ ํŠธ์— schema๋ฅผ ๋‘ ๊ฐœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

SQL๋“ ์ง€ DB๋“ ์ง€ ์ต์ˆ™ํ•˜์ง€ ์•Š๋‹ค๋ณด๋‹ˆ table์ด ๋‘ ๊ฐœ ํ•„์š”ํ•˜๋‹ค๋ฉด schema๋„ ๋‘ ๊ฐœ ํ•„์š”ํ•œ๊ฐ€?! ๋ผ๋Š” ์ƒ๊ฐ์— ํŠœํ„ฐ๋‹˜๊ป˜ ์งˆ๋ฌธ์„ ํ•˜๋Ÿฌ ๊ฐ”์—ˆ๋‹ค.

JPA ํ™˜๊ฒฝ์—์„œ๋Š” schema๋ฅผ ๋‘ ๊ฐœ ์ด์ƒ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฑด ํž˜๋“ค๋‹ค๊ณ  ํ•œ๋‹ค. application.properties์—์„œ ๋ช…์‹œ์ ์œผ๋กœ schema๋ฅผ ์ง€์ •ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

spring.datasource.url=jdbc:mysql://localhost:3306/blog

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ๋Š” entity์— ๋”ฐ๋ฅธ table์„ ๋‘ ๊ฐœ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ๋œ๋‹ค๋Š” ๋‹ต๋ณ€์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋ฆฌํŒฉํ„ฐ๋ง

1) success ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜

์ด์ „์— ์ง„ํ–‰ํ–ˆ๋˜ Spring-CRUD-Lv1์˜ Api ๋ช…์„ธ๋ฅผ ๋ณด๋ฉด, [์„ ํƒํ•œ ๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ ์„ฑ๊ณต] ์‹œ, Response ๊ฒฐ๊ณผ๋กœ "success":"true"๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ SuccessResponstDto๋ฅผ ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์–ด์„œ ์ถœ๋ ฅํ•ด์ฃผ์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํ•ด๋‚ด๊ณ  ๋‚˜์„œ๋„ ์ฐ์ฐํ•จ์ด ๋‚จ์•„์žˆ์–ด์„œ, ๊ณผ์ œ ํ•ด์„ค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ–ˆ๋Š”๋ฐ, BlogResponseDto ์ƒ์„ฑ์ž๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹Œ๊ฐ€....

BlogResponseDto.java
public BlogResponseDto(Blog blog) {
 
	this.createdAt = blog.getCreatedAt();
	this.modifiedAt = blog.getModifiedAt();

	this.id = blog.getId();
	this.title = blog.getTitle();
	this.content = blog.getContent();
	this.author = blog.getAuthor();
}

// success ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” dto ์ƒ์„ฑ์ž
public BlogResponseDto(Boolean success) {

	this.success = success;
}

๋‚˜๋„ ๋ฐ”๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์„œ ์“ธ๋ฐ์—†๋Š” ๊ฐ์ฒด ์ƒ์„ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

2) ์ด๋ฆ„ ๋ณ€๊ฒฝ

์•ž์œผ๋กœ์˜ ๊ณผ์ œ ์ง„ํ–‰์„ ์œ„ํ•ด ๊ธฐ์กด์— Blog๋กœ ํ†ต์ผํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋˜ entity์˜ ์ด๋ฆ„์„ Post๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์—ˆ๋‹ค. (์ ์šฉ์€ Spring-CRUD-Lv2๋ถ€ํ„ฐ) entity์˜ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋จ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ class๋“ค์˜ ์ด๋ฆ„๋„ ๋ณ€๊ฒฝํ•ด์ฃผ์—ˆ๋‹ค.

- BlogController โ†’ PostController
- BlogService โ†’ PostService
- BlogRepository โ†’ PostRepository
- BlogRequestDto โ†’ PostRequestDto
- BlogResponseDto โ†’ PostResponseDto

ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ์— ์‚ฌ์šฉํ•  entity์˜ ์ด๋ฆ„์€ users์ด๊ณ , ์ด์— ๋”ฐ๋ผ api ๋ช…์„ธ๋„ ๋ฐ”๋€” ๊ฒƒ์ด๋ผ ์˜ˆ์ƒํ•œ๋‹ค.

profile
`ISFJ` T 49% F 51% /

0๊ฐœ์˜ ๋Œ“๊ธ€