๐ŸŒ WEB/Spring

๋™๊ธฐ๋ถ„์˜ ๋„์›€์œผ๋กœ ์ฒ˜์Œ์œผ๋กœ Interceptor ๋ฅผ ์ ์šฉํ•ด๋ณด์•„์„œ ๋‚˜์ค‘์— ์‚ฌ์šฉํ•  ์ผ์ด ์žˆ์„ ๋•Œ ์ฐพ์•„๋ณด๋ ค๊ณ  ์จ๋ด…๋‹ˆ๋‹ค! ์•„๋ž˜์™€ ๊ฐ™์€ Controller ์— Header ์—์„œ ์ธ์ฆ์„ ์œ„ํ•œ ๊ฐ’์„ ๋ฐ›์•„์•ผ์ง€๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! @RestController @RequestMapping("/orders") @RequiredArgsConstructor public class OrdersController { private final OrdersService ordersService; @Auth(type = ApiServiceType.HOMEPAGE) @GetMapping public ResponseEntity getOrders( @RequestParam(required = false) String sear..
์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ์ฝ”๋“œ๊นŒ์ง€ ๋ชจ๋‘ ์žˆ์Šต๋‹ˆ๋‹ค.. ์™œ๋ƒ๋ฉด... ์ €๋„ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋“ค์„ ๋ณด๋ฉด์„œ ๋น ์ ธ์žˆ๋Š” ๋ถ€๋ถ„์„ ๋ณด๋ฉด ๋‚˜๊ฐ™์€ ์ดˆ๋ณด๋Š” ์–ด์ฉŒ๋ผ๊ณ  ํ•˜๋ฉฐ ์Šฌํผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—,,, ์‚ฌ์‹ค Security์˜ ์—ฌ๋Ÿฌ๊ฐ€์ง€ Filter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JWT ๋ฐฉ์‹์„ ์ด์šฉํ•˜๋Š”๊ฒŒ ๋งž์ง€๋งŒ ํ”„๋กœ์ ํŠธ ํฌ๊ธฐ,, ๊ธฐ๊ฐ„์ƒ ๋ถˆํ•„์š”ํ•˜๋‹ค ํŒ๋‹จํ•˜๊ฒŒ ๋˜์–ด์„œ JWT ๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ๋‚˜์ค‘์— Security๋„ ๊ฐ™์ด ๊ตฌํ˜„ํ•˜์—ฌ ์˜ฌ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Œ! ์ด๋ฒˆ์—๋Š” git์— ์˜ฌ๋ ค ์ฝ”๋“œ๊นŒ์ง€ ๊ณต์œ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค! ์ฒ˜์Œ๋ณด๋ฉด ์•ฝ๊ฐ„ ๋ณต์žกํ•˜๋‹ค๊ณ  ์ƒ๊ฐ๋˜๊ณ  ๋‚˜๋˜ํ•œ ๊ทธ๋žฌ๋‹ค ใ… ใ… ,, (๋ถ€๋„๋Ÿฌ์šด) ๊ตฌํ˜„์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ ์ดํ•ดํ•˜๊ณ  ํ˜น์‹œ ์ด์ƒํ•œ๊ณณ์€ PRํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค...(๊ฐ„์ ˆ,,) git ์ฃผ์†Œ (์‹ค๋ฌด์—์„œ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ˆ˜์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ~!) git clone https://github.com/ae..
๊ตฌ์กฐ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด resources์™€ ๊ฐ™์€ ๊ฒฝ๋กœ์— webapp์„ ๋งŒ๋“ค์–ด ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์•ˆ์— WEB-INF๋Š” ๋˜‘๊ฐ™์ด ๋งŒ๋“ค์–ด์ฃผ์‹œ๊ณ  application.yml์— ์„ค์ •์— ๋”ฐ๋ผ ์•ˆ์— ์žˆ๋Š” ํด๋” ์ด๋ฆ„์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. application.yml spring: mvc: view: prefix: /WEB-INF/jsp/ suffix: .jsp build.gradle // JSTL implementation 'javax.servlet:jstl:1.2' // JASPER implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' springboot์—์„œ jps๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์™ธ์žฅํ†ฐ์บฃ์„ ์˜์กด์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค. jsp๋Š” ๊ทนํ˜์ด๋‹ˆ jstl๋„ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํƒฌํ”Œ๋ฆฟ ..
๋ฉด์ ‘๋ณด๊ธฐ ์œ„ํ•ด ๊ณผ์ œ๋ฅผ ํ•ด์•ผ ํ–ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ํŒŒ์ผ์„ ๋ฐ›์•˜๋Š”๋ฐ ๊ณ„์† ๊ตฌํ˜„ํ•ด์˜ค๋˜ ๊ตฌ์กฐ์™€๋Š” ๋งŽ์ด ๋‹ฌ๋ผ์„œ ์‹œ๊ฐ„์„ ๋งŽ์ด ์ผ๋‹ค. ํ•˜์ง€๋งŒ ์—ญ์‹œ๋‚˜ ์ธํ„ฐ๋„ท์„ ์ž์„ธํžˆ ๋ณด๊ณ  ์—„์ฒญ๋‚œ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ํ•œ ํ›„์— ์ ์‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์–ธ์ œ ๋‹ค์‹œ ์“ธ ์ˆ˜ ์žˆ์„์ง€ ๋ชฐ๋ผ ๊ธฐ๋กํ•ด ๋‘๊ธฐ๋กœ ํ–ˆ๋‹ค. Mapper์˜ SQL ID์™€ Mapper Interface์˜ ๋ฉ”์„œ๋“œ๋ช…๊ณผ ์ •ํ™•ํžˆ ๋งค์นญํ•ด์ค€๋‹ค๋ฉด ์ž๋ฐ”์—์„œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜คํƒ€์— ๋Œ€ํ•œ ๊ฑฑ์ •์ด ์—†๋‹ค. ๊ฐœ๋ฐœ์„ ๋ฐฐ์šฐ๋ฉด์„œ ์“ฐ๋˜ ๊ตฌ์กฐ๋Š” ๋Œ€์ถฉ ์ด๋Ÿฐ์‹์ด์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฒˆ์— ๋ฐ›์€ ๊ณผ์ œ๋Š” Mapper Interface, Service class, sql.xml ์ด๋ ‡๊ฒŒ 3๊ฐ€์ง€๋กœ ์žˆ์—ˆ๋‹ค. ์ฒ˜์Œ ๋ณธ ๊ตฌ์กฐ 1.propertis์—์„œ ์•Œ๋ฆฌ์•„์Šค๋ฅผ ์ด์šฉํ•ด sql์—์„œ dto๋กœ ์—ฐ๊ฒฐํ•ด์ฃผ๋˜ ๊ฒƒ์„ annotation์„ ์‚ฌ์šฉํ•˜๋ฉด ์•„์ฃผ ๊ฐ„๋‹จํ•˜..
ํŠน์ง• ? - Spring Web MVC Framework๋Š” JAVA1.5๋ถ€ํ„ฐ Annotation์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. - xml์„ค์ •์ด ๋„ˆ๋ฌด ๊ธธ์–ด์ง์— ๋”ฐ๋ผ ๊ทธ ๋Œ€์•ˆ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ๋‹ค. - ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ํ™œ์„ฑํ™”๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— xml์—์„œ ํ™•์„ฑํ™” ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค. ์žฅ์  ? - ์„ค์ •์ด ๊ฐ„ํŽธํ•ด ์ง, view ํŽ˜์ด์ง€์™€ ๊ฐ์ฒด ๋˜๋Š” ๋ฉ”์„œ๋“œ์˜ ๋งตํ•‘์ด ๋ช…ํ™•ํ•ด ์ง. Annotation์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„ค์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. 1) CommonAnnotationBeanPostProcessor์— ํด๋ž˜์Šค ์„ค์ •ํŒŒ์ผ์— ๋นˆ๊ฐ์ฒด๋กœ ๋“ฑ๋กํ•˜์—ฌ ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ์‚ฌ์šฉ 2) ํƒœ๊ทธ ์‚ฌ์šฉ : ์ด๋ฏธ ๋“ฑ๋ก๋œ ๋นˆ๋“ค์˜ ์–ด๋…ธํ…Œ์ด์…˜์„ ํ™œ์„ฑํ™” 3) : ํŠน์ • ํŒจํ‚ค์ง€ ์•ˆ์˜ ํด๋ž˜์Šค๋“ค์„ ์Šค์บ”ํ•˜๊ณ , Annotation์„ ํ™•์ธ ํ›„ bean ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ - ์Šคํ…Œ..
Servlet์—์„œ 1:1mapping์„ ๋ณด์•ˆํ•ด์„œ ์ž๋™์œผ๋กœ ๋ถ„๊ธฐ, ์ž๋™์œผ๋กœ ์ƒ์„ฑํ™”๋ฉด ์ด๋™์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ด Controller๋Š” ๋‹ค์–‘ํ•œ ์š”์ฒญ์„ ์ œ์–ดํ•˜์—ฌ J2EE Pattern: frontController ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Business Layer์—์„œ handler mapper๋ฅผ ์žŠ๊ณ  ๊ทธ๋ฆฌ์ง€ ์•Š์•˜๋Š”๋ฐ ์•Œ์•„๋‘์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Handler Mapping : dispatcherSevlet์œผ๋กœ ๋ฐ›์€ ์š”์ฒญ -> Controller ๋ณด๋ƒ„-> ์š”์ฒญ์ด ์–ด๋–ค ๋งคํ•‘์ธ์ง€ ๊ทธ ๋ฐฉ๋ฒ•์„ ์ •ํ•ด์ฃผ๋Š” ํด๋ž˜์Šค ์ž…๋‹ˆ๋‹ค. Spring 3๋Œ€ ์ž‘๋™์›๋ฆฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 1. DI/IoC - Bean Spring ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋“ฑ๋ก - Life-Cycle์„ ๋”ฐ๋ผ๊ฐ€์ง€ ์•Š๊ณ  ์‚ฌ์šฉ POJO๋ฅผ Spring beanํ˜น์€ @Annotation์„..
Spring FrameWork๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์ „ Servlet์„ ๋จผ์ € ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Servlet์ด๋ผ ํ•˜๋ฉด 3๊ฐ€์ง€๋ฅผ ์•Œ์•„๋‘๋ฉด ์ข‹์•„์š”. Url-Mapping, Hierarchy, Life-cycle์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์”ฉ ์•Œ์•„๋ณผ๊ฒŒ์š”! Url-Mapping 1:1 servlet-mapping ๋ธŒ๋ผ์šฐ์ €์—์„œ ws์— ์š”์ฒญํ•˜๋Š” ์ฃผ์†Œ์™€ ํ•ด๋‹น ์ฃผ์†Œ์˜ ์ฒ˜๋ฆฌ ๋กœ์ง์„ 1:1 ๋งคํ•‘ํ•œ๋‹ค ๋ฌธ์ œ : ๋„ˆ๋ฌด ๋งŽ์€ mapping์œผ๋กœ ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง„๋‹ค. Life-Cycle (์ƒ๋ช…์ฃผ๊ธฐ) HttpServlet -> OCP(Open Closed Programming) ์ดˆ๊ธฐํ™” -> ์„œ๋น„์Šค -> ์ข…๋ฃŒ init() service() distroy() doGet() doPost() doDelete() Hierarchy ๊ณ„์ธต๊ตฌ์กฐ HttpServelt์„ ์ƒ์†๋ฐ›์•„ ..
Hyper ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๊ณผ์ • ์ค‘ ์–ด๋ ค์›Œํ–ˆ๋˜ ํŒŒ์ผ ์—…๋กœ๋“œ์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. commons-fileupload๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ  pom.xml์— ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค. Ajax๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋‹ˆ Controller์— @ResponseBody๋ฅผ ๋ถ™์—ฌ์ค˜์•ผ ํ•œ๋‹ค ์ด๊ฑฐ ๋˜ํ•œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด pom.xml์— jackson-mapper๋ฅผ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค. pom.xml์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ๊ฒƒ. (mvnrepository.com) 1. commons-fileupload 2. jackson-mapper ์ œ์ผ ๋จผ์ € ํŒŒ์ผ ์—…๋กœ๋“œ๋ฅผ ๊ตฌํ˜„ ํ›„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ํ•˜๊ฒ ๋‹ค. 1. spring ํด๋”์—์„œ xxx-context.xml ์— ํŒŒ์ผ ๋ฆฌ์กธ๋ฒ„๋ฅผ ์ง€์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค. + application / servlet -context์˜ ์ฐจ์ด ๋”๋ณด๊ธฐ ์ด ๋‘ ..
1.ํ†ฐ์บฃ ์„ธ์…˜์„ ์‚ฌ์šฉํ•œ๋‹ค. - ๊ธฐ๋ณธ ์„ ํƒ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค. - WAS์— ์ €์žฅ๋˜๋Š”๋ฐ 2๋Œ€์ด์ƒ์˜ WAS๋กœ ๊ตฌ๋™๋˜๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” ์ถ”๊ฐ€ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค. 2.MySQL๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ธ์…˜ ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. - ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด๋‹ค. - ๋กœ๊ทธ์ธ ์š”์ฒญ์‹œ DB IO๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. 3.Redis ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ DB๋ฅผ ์„ธ์…˜ ์ €์žฅ์†Œ๋กœ ์ด์šฉํ•œ๋‹ค. ์‚ฌ์šฉ๋ฃŒ๋ฅผ ์ง€๋ถˆํ•ด์•ผํ•œ๋‹ค! ์„œ๋น„์Šค๊ฐ€ ์ปค์งˆ๋•Œ ๊ณ ๋ ค! 'org.spirngframework.session:spring-session-jdbc' ๋ฅผ gradle์— ๋“ฑ๋กํ•ด์ฃผ๊ณ  application.prorperties์— spring.session.store-type=jdbc ๋งŒ ๋“ฑ๋กํ•˜์ฃผ๋ฉด jpa๊ฐ€ ์„ธ์…˜ํ…Œ์ด๋ธ”์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜์—ฌ ์„ธ์…˜์ €์žฅ์†Œ๊ฐ€ ์ง€์ •๋œ๋‹ค!
์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋Š” ๋ง‰๊ฐ•ํ•œ ์ธ์ฆ๊ณผ ์ธ๊ฐ€ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ์ธ์ฆ์ด๋ž€, ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•œ ๋Œ€์ƒ์— ๋Œ€ํ•ด ๋ˆ„๊ตฌ์ธ์ง€, ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด๋„ ๋˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. ์ธ๊ฐ€๋ž€, ์ธ์ฆ ์ดํ›„์— ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. ๋ณด์•ˆ๊ณผ ๊ด€๋ จํ•ด์„œ ์ฒด๊ณ„์ ์œผ๋กœ ๋งŽ์€ ์˜ต์…˜์„ ์ œ๊ณตํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์ผ์ผ์ด ๋ณด์•ˆ ๊ด€๋ จ ๋กœ์ง์„ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•ด๋ณด์ž! https://console.cloud.google.com/ ๋กœ ์ ‘์†ํ•ด์„œ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•œ ํ›„ API ๋ฐ ์„œ๋น„์Šค -> ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด OAuth ํด๋ผ์ด์–ธํŠธ ID ํด๋ฆญ! ๋™์˜ ํ™”๋ฉด ์ค‘ ์™ธ๋ถ€/๋‚ด๋ถ€๊ฐ€ ์žˆ๋Š”๋ฐ ์™ธ๋ถ€๋ฅผ ํด๋ฆญํ•œ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฆ„ : ์‚ฌ์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ๋  ์• ํ”Œ๋ฆฌ์ผ€์ด..
๊ต์œก๊ณผ์ • ๋™์•ˆ ์–ธ์ œ ๋งŒ๋“ค์–ด์กŒ๋Š”์ง€, ์–ธ์ œ ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€์— ๋”ฐ๋ฅธ ์œ ์ง€๋ณด์ˆ˜ ์ค‘์š”์„ฑ์„ ๋ฐฐ์šฐ์ง„ ๋ชปํ–ˆ๋‹ค. ์ด์ œ ๋ชจ๋ธ๋งํ•  ๋•Œ ๊ณ ๋ คํ•ด์„œ ์งœ์•ผ๊ฒ ๊ตฐ... ๊ฐ™์€ ๋‚ด์šฉ์ธ๋ฐ ๋งค๋ฒˆ DB์— insert/update์„ ํ•˜๊ธฐ์—๋Š” ์ฝ”๋“œ๊ฐ€ ์—ฌ๊ธฐ์ €๊ธฐ ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋‹ˆ๊นŒ ์ƒ์„ฑ๋  ๋•Œ ๊ฐ™์ด ์ƒ์„ฑ๋˜๋ฉด ํŽธ๋ฆฌํ•˜๋‹ค! domain ํด๋”์— BaseTimeEntityํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ๋ชจ๋“  Entity์˜ ์ƒ์œ„ ํด๋ž˜์Šค๊ฐ€ ๋˜๊ฒŒ ํ•˜๋ฉด ๋œ๋‹ค. 1. @MappedSpuerclass ๋ฅผ ์ด์šฉํ•˜๋ฉด JPA Entityํด๋ž˜์Šค๋“ค์ด BaseTimeEntity๋ฅผ ์ƒ์†ํ•  ๊ฒฝ์šฐ ํ•„๋“œ๋“ค๋„ ์ปฌ๋Ÿผ์œผ๋กœ ์ธ์‹ํ•˜๋„๋ก ํ•œ๋‹ค. 2. @EntityListeners(AuditingEntityListener.class)๋กœ ํ•ด๋‹น ํด๋ž˜์Šค์— Auditing๊ธฐ๋Šฅ์„ ํฌํ•จํ•œ๋‹ค. 3. @CreatedDate priva..
JPA๊ฐ€ ๊ด€๊ณ„ํ˜•๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋งž๊ฒŒ SQL์„ ๋Œ€์‹  ์ƒ์„ฑํ•˜์—ฌ ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ์‹คํ–‰๋œ ์ฟผ๋ฆฌ์˜ ํ˜•ํƒœ๊ฐ€ ๊ถ๊ธˆํ•  ์ˆ˜ ์žˆ๋‹ค. application.properties๋ฅผ ๋งŒ๋“ค์–ด์ค€ ํ›„ spring.jpa.show_sql = true ๋ฅผ ์ž‘์„ฑํ•ด์ค€๋‹ค. ์งœ๋ž€!
์• ์ •์“ฐ
'๐ŸŒ WEB/Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก