๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ฃ ์ด์Šˆ ํ•ด๊ฒฐ ๊ธฐ๋ก2

[Spring MVC] DTO๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ๋ฐ›์„ ๋•Œ๋Š” @RequestBody๋ฅผ ๊ผญ ์ ์šฉํ•˜์ž! ๊ฐœ์š” ์ด๋ฒˆ์—๋„ ๋ฉ˜ํ† ๋ง ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉฐ ๋งˆ์ฃผ์นœ ์ด์Šˆ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ํ•˜๋ฉด์„œ ๋ณ„๋กœ ๊ฒช์ง€ ์•Š์•˜์—ˆ์ง€๋งŒ, ํ”„๋กœ์ ํŠธ๋ฅผ ์˜ค๋žœ๋งŒ์— ํ•˜๋‹ค ๋ณด๋‹ˆ ์ ‘ํ•˜๊ฒŒ ๋œ ์‹ค์ˆ˜์— ๊ฐ€๊นŒ์› ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋‹ค์‹  ๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๊ณต์œ ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค! ๋ฌธ์ œ ์ƒํ™ฉ ์–ด์ฉŒ๋ฉด ์ˆœ์ˆ˜ ์ž๋ฐ”๋กœ ๊ฐœ๋ฐœํ•˜๋‹ค๊ฐ€ ์Šคํ”„๋ง์œผ๋กœ ๋„˜์–ด๊ฐˆ ๋•Œ ํ•œ ๋ฒˆ์ฏค์€ ์ ‘ํ•˜์…จ์„ ์‹ค์ˆ˜์˜€์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค. ๊ธ€ (Board) ์“ฐ๊ธฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉฐ, ๊ธ€ ์ž‘์„ฑ์— ์‚ฌ์šฉ๋˜๋Š” ์š”์ฒญ dto๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ๋ ˆ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. (์‘๋‹ต dto๋Š” ์—ฌ๊ธฐ์— id๋„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.) public record BoardCreateRequest(String title, String content) { } ๊ทธ๋ฆฌ๊ณ  ์ƒ์„ฑ ์ฝ”๋“œ๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ์ž‘์„ฑํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. @PostMapping.. 2024. 1. 19.
[Spring Data JPA] ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA ๊ตฌํ˜„์ฒด๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ฃผ์˜ํ•  ์ ! (feat. ์ˆœํ™˜ ์ฐธ์กฐ) ๋ฌธ์ œ ๋ฐœ์ƒ ์ „ํ•™๊ต ์„ ๋ฐฐ ๋ถ„๊ป˜ ์ข‹์€ ๊ธฐํšŒ๋กœ ์Šคํ”„๋ง์— ๋Œ€ํ•ด ๋ฉ˜ํ† ๋ง์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด, ๋ฉ˜ํ† ๋ง ๊ณผ์ œ๋กœ ๊ฐ„๋‹จํ•œ ๊ฒŒ์‹œํŒ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.๋ฌธ์ œ ๋ฐœ์ƒ๊ฒŒ์‹œ๊ธ€ (Board)์— ๋Œ€ํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋˜ ๋„์ค‘, ์ˆœํ™˜ ์ฐธ์กฐ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๊ฒŒ์‹œ๊ธ€์— ๊ด€๋ จ๋œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ตฌํ˜„์ฒด๋“ค์„ ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ๋‘๊ณ  ์‹ถ์–ด, ์™„์ „ํžˆ ์ถ”์ƒํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค์ธ BoardRepository๋ฅผ ๋งŒ๋“ค๊ณ , ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA ์ธํ„ฐํŽ˜์ด์Šค๋กœ BoardJpaRepository๋ฅผ ๋งŒ๋“ค์—ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ ํ™˜๊ฒฝ์—์„œ BoardRepository๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” BoardJpaRepositoryImpl์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ฝ”๋“œ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. public interface BoardRepository { Long save(fin.. 2024. 1. 19.