Home
hyoreal
Cancel

[Spring] JPA

JPA ๐Ÿ”—JPA(Java Persistence API/Jakarta Persistence API) Java ์ง„์˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ORM(Object-Relational Mapping) ๊ธฐ์ˆ ์˜ ํ‘œ์ค€ ์‚ฌ์–‘(๋˜๋Š” ๋ช…์„ธ, Specification) Java์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์‚ฌ์–‘์ด ์ •์˜๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— JPA๋ผ๋Š” ํ‘œ์ค€ ์‚ฌ์–‘์„ ๊ตฌํ˜„ํ•œ ๊ตฌํ˜„์ฒด๋Š” ๋”ฐ๋กœ ์žˆ๋‹ค๋Š”...

[Spring] JDBC

JDBC JDBC(Java Database Connectivity) Java์—์„œ ์ œ๊ณตํ•˜๋Š” ํ‘œ์ค€ ์‚ฌ์–‘(๋˜๋Š” ๋ช…์„ธ, Specification) Java ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฝ”๋“œ ๋ ˆ๋ฒจ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ €์žฅ ๋ฐ ์—…๋ฐ์ดํŠธ ํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ Java ์ฝ”๋“œ๋ ˆ๋ฒจ์—์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•ด์คŒ JDBC ๋™์ž‘ ํ๋ฆ„ ...

[Error Log] After saving the identifier must not be null

์—๋Ÿฌ ๋ฐœ์ƒ ๐Ÿšจ Spring Data JDBC ์ˆ˜์—…์„ ์œ„ํ•œ ์ธ๋ฉ”๋ชจ๋ฆฌ(In-memory) DB์ธ H2์™€ ์ธํ…”๋ฆฌ์ œ์ด๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๋ถ€๋ถ„์€ ์—ฐ๊ฒฐ์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์ธ ๋ฉ”์„ธ์ง€๋ฅผ ์š”์ฒญํ•œ ํ›„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ๋งŒ ํ•˜๋ฉด ๋˜๋Š” ๋ถ€๋ถ„์ด์—ˆ์ง€๋งŒ ์˜ˆ์ƒ๋ฐ–์˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ฐœ์ƒ๊นŒ์ง€์˜ ์—ฐ๋™ ๋ฐฉ์‹์€ ์ด๋Ÿฌํ–ˆ๋‹ค. build....

[Spring] ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ•„์š”์„ฑ { "timestamp":"2022-09-12T17:33:42.132+00:00", "status": 400, "error": "Bad Request", "path": "/v1/members" } ์˜ˆ์™ธ์ฒ˜๋ฆฌ ์—†์ด ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์‹คํŒจ ์‹œ ์‘๋‹ต ๋ฉ”์„ธ์ง€ ํด๋ผ์ด์–ธํŠธ๋Š” ์œ„ Response Body์˜ ๋‚ด์šฉ...

[Spring] Rest Client

Client์™€ Server์˜ ๊ด€๊ณ„ Client ์™€ Frontend Server ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์›น ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค(Resource, ์ž์›)์„ ์ด์šฉํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ณด์—ฌ์ง€๋Š” HTML ์ปจํ…์ธ ๋ฅผ ์›น ์„œ๋ฒ„์— ์š”์ฒญ ์›น ์„œ๋ฒ„๋Š” ์š”์ฒญ์— ํ•ด๋‹นํ•˜๋Š” ์ปจํ…์ธ ๋ฅผ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์‘๋‹ต์œผ๋กœ ์ „๋‹ฌ ...

[Spring] Mapper / Mapstruct

Mapper Mapper ํ•„์š” ์ด์œ  DTO์™€ Entity๋ฅผ ์„œ๋กœ ๋ณ€ํ™˜ํ•ด์•ผํ•จ ์ฝ”๋“œ ๊ตฌ์„ฑ์˜ ๋‹จ์ˆœํ™” REST API ์ŠคํŽ™์˜ ๋…๋ฆฝ์„ฑ ํ™•๋ณด ๊ณ„์ธต๋ณ„ ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ ๐Ÿ”—ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋‚˜ ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์ฝ”๋“œ ๊ด€์ ์—์„œ๋„ ๋ฆฌํŒฉํ† ๋ง ๋Œ€์ƒ ...

[Spring] DTO

DTO DTO (Data Transfer Object) ๋งˆํ‹ด ํŒŒ์šธ๋Ÿฌ(Martin Fowler)๊ฐ€ โ€˜Patterns of Enterprise Application Architectureโ€™ ์ฑ…์—์„œ ์ฒ˜์Œ ์†Œ๊ฐœํ•œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„์˜ ๊ฐ์ฒด ...

[Spring] Http Headers

HTTP Header HTTP HTML ๋“ฑ์˜ ๋ฌธ์„œ๋ฅผ ์ „์†กํ•˜๋Š” Application Layer ํ”„๋กœํ† ์ฝœ Header์™€ Body๋กœ ๊ตฌ์„ฑ HTTP Header HTTP ๋ฉ”์‹œ์ง€(Messages)์˜ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•˜๋‚˜ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด๋‚˜ ์„œ๋ฒ„์˜ ์‘๋‹ต์— ...

[Spring] Controller

ํŒจํ‚ค์ง€ ๊ตฌ์กฐ ์ƒ์„ฑ Spring Boot ๊ธฐ๋ฐ˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” Java ํŒจํ‚ค์ง€ ๊ตฌ์กฐ ๊ธฐ๋Šฅ ๊ธฐ๋ฐ˜ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ(package-by-feature) ๊ณ„์ธต ๊ธฐ๋ฐ˜ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ(package-by-layer) ํ…Œ์ŠคํŠธ์™€ ๋ฆฌํŒฉํ† ๋ง์ด ์šฉ์ดํ•˜๊ณ , ํ–ฅํ›„ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์‹œ์Šคํ…œ์œผ๋กœ ๋ถ„๋ฆฌ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์šฉ์ดํ•œ ๊ธฐ๋Šฅ ๊ธฐ๋ฐ˜ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ ์‚ฌ์šฉ ๊ถŒ์žฅ ...

[Spring] Spring MVC

Spring MVC Spring Web MVC Spring Framework : Spring์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ๋“ค์„ ํฌํ•จํ•œ ๊ฒƒ spring-webmvc : ์„œ๋ธ”๋ฆฟ(Servlet) API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“ˆ Spring Web MVC๋ฅผ ์ค„์—ฌ Spring MVC๋ผ๊ณ  ๋ถ€๋ฆ„ ...