SpringBoot ๋ฉ€ํ‹ฐ๋ชจ๋“ˆ ํ”„๋กœ์ ํŠธ - ๋ชจ๋“ˆ ๊ฐ„ ์˜์กด๊ด€๊ณ„ ์„ค์ • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

 

๐Ÿšจ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์ง€์ 

 

 

API๋ชจ๋“ˆ์—์„œ Domain๋ชจ๋“ˆ์„ implementationํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ์ƒํ™ฉ์—์„œ

API๋ชจ๋“ˆ์—์„œ Domain๋ชจ๋“ˆ์˜ ์˜์กด์„ฑ์— ์ถ”๊ฐ€๋œ JPA ์‚ฌ์šฉ ์‹œ, ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

Cannot access 'org.springframework.data.jpa.repository.JpaRepository' which is a supertype of 'com.th.plu.domain.domain.member.repository.MemberRepository'. Check your module classpath for missing or conflicting dependencies

 

 

ํ˜„์žฌ ์˜์กด์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฐ๊ฒฐ๋œ ์ƒํƒœ์ด๋‹ค.

API๋ชจ๋“ˆ -> Domain ๋ชจ๋“ˆ implementation,
Domain ๋ชจ๋“ˆ -> JPA implementation

 

์ œ๋Œ€๋กœ ์˜์กด์„ฑ์ด ์—ฐ๊ฒฐ๋˜์—ˆ๋Š”๋ฐ ์™œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๊นŒ์— ๋Œ€ํ•ด ์ฐพ์•„๋ณด๋˜ ์ค‘ ๋ฌธ์ œ์˜ ๋ฐœ์ƒ ์›์ธ์„ ์ฐพ์•„๋‚ด๊ฒŒ ๋˜์—ˆ๋‹ค.

 

์šฐ์„  ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„  implementation ํ‚ค์›Œ๋“œ์™€ api ํ‚ค์›Œ๋“œ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ–ˆ๋‹ค.

 


implementation ํ‚ค์›Œ๋“œ

 

implementation์„ ํ†ตํ•ด ์œ„์™€ ๊ฐ™์ด ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋ฉด JPA ๋ชจ๋“ˆ์— ์ˆ˜์ •์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ
์ง์ ‘ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“ˆ์ธ Domain๋ชจ๋“ˆ๋งŒ rebuild(recomplie) ํ•˜๋ฉด ๋œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

 


api ํ‚ค์›Œ๋“œ

 

ํ•˜์ง€๋งŒ api๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์ง์ ‘, ๊ฐ„์ ‘ ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“ˆ๊นŒ์ง€ rebuild(recomplie)์ด ๋˜์–ด์•ผ ํ•œ๋‹ค.

์ฆ‰, JPA ๋ชจ๋“ˆ์„ ์ˆ˜์ •ํ–ˆ๋Š”๋ฐ Domain ๋ชจ๋“ˆ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ API ๋ชจ๋“ˆ๊นŒ์ง€ rebuild(recomplie) ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

 

 

์ด๋Ÿฌํ•œ ํŠน์ง•์— ์˜ํ•ด implementation ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์œ„ ์ฐจํŠธ์™€ ๊ฐ™์ด ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•œ ๊ฒฝ์šฐ์—๋Š”, JPA์— ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•ด๋„ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” API๋ชจ๋“ˆ์€ rebuild๊ฐ€ ๋˜์ง€ ์•Š์•„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ์šฐ๋ คํ•˜์—ฌ
API๋ชจ๋“ˆ์—์„œ Domain๋ชจ๋“ˆ์ด implementationํ•˜๊ณ  ์žˆ๋Š” JPA์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 


โœ… ๋ฌธ์ œ ํ•ด๊ฒฐ

๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด์„œ๋Š” Domain ๋ชจ๋“ˆ์—์„œ JPA ์˜์กด ์„ค์ •์„ implementation์ด ์•„๋‹Œ apiํ‚ค์›Œ๋“œ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผ ํ–ˆ๋‹ค. 

 

 

API๋ชจ๋“ˆ์—์„œ Domain ๋ชจ๋“ˆ implementation,
Domain ๋ชจ๋“ˆ์—์„œ JPA api

 

๊ฒฐ๋ก ์ ์œผ๋กœ ํ˜„์žฌ ์˜์กด์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •๋œ ์ƒํƒœ์ด๋‹ค.

 

 

์ด๋ ‡๊ฒŒ Domain ๋ชจ๋“ˆ์—์„œ api ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด JPA ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋”๋‹ˆ API ๋ชจ๋“ˆ์—์„œ JPA ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์ ธ
์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.