์ „์ฒด ๊ธ€

    01. HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹ - ์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํฌ

    www.inflearn.com/course/http-์›น-๋„คํŠธ์›Œํฌ# ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹ - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜ ์‹ค๋ฌด์— ๊ผญ ํ•„์š”ํ•œ HTTP ํ•ต์‹ฌ ๊ธฐ๋Šฅ๊ณผ ์˜ฌ๋ฐ”๋ฅธ HTTP API ์„ค๊ณ„ ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค., ์›น ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ OK!๊ผญ ํ•„์š”ํ•œ HTTP์˜ ํ•ต์‹ฌ์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๐Ÿ“ฃ ํ™•์ธํ•ด์ฃผ์„ธ์š”!๋ณธ ๊ฐ•์˜๋Š” ์ž๋ฐ” ์Šค www.inflearn.com ๊น€์˜ํ•œ๋‹˜์˜ HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹ ๊ฐ•์˜๋ฅผ ๋ณด๊ณ  ํ•„๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค! ๊ฐ•์˜๋ฅผ ๋ณด๋ฉด ์ดํ•ด๊ฐ€ ๋” ์‰ฌ์šฐ๋‹ˆ ์ถ”์ฒœ ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜‹ ์‹ค๋ฌด์—์„œ ํ•„์š”ํ•œ HTTP ๊ธฐ๋Šฅ๊ณผ ์˜ฌ๋ฐ”๋ฅธ HTTP API ์„ค๊ณ„ ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค! ๊ณต๋ถ€ ๊ณ„๊ธฐ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” HTTP ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋œ ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๊ธฐ์ˆ ๋“ค์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ๋‹จ์ˆœํžˆ ๊ธฐ๋Šฅ ์‚ฌ์šฉ๋ฒ• ์œ„์ฃผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ..

    Thymeleaf ์‚ฌ์šฉํ•˜๊ธฐ

    jsp๋งŒ ๋ฐฐ์šฐ๊ณ  ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ต์ˆ™ํ•ด์ง„ ๊ฒƒ์„ ๊ณ„์† ์“ฐ๊ณ  ์‹ถ์—ˆ์ง€๋งŒ Spring Boot๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด์„œ Thymeleaf๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„ ์ ์œผ๋กœ Spring boot์—์„œ jsp ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋งˆ ๋‚ด์žฅํ†ฐ์บฃ์ด๊ธฐ ๋•Œ๋ฌธ์— war๋กœ ํŒจํ‚ค์ง•์„ ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Spring boot๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ž…์žฅ์—์„œ๋Š” ์•ฝ๊ฐ„ ๐Ÿคจ์ž…๋‹ˆ๋‹ค. Thymeleaf๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์˜์กด์„ฑ์„ ๋จผ์ € ์ถ”๊ฐ€ ํ•ด์ค๋‹ˆ๋‹ค. build.gradle implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' application.yml์—๋„ ๊ด€๋ จ ์„ค์ •์„ ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. jsp๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ฒ˜๋Ÿผ ์œ„์น˜์™€ ํŒŒ์ผํ˜•์‹์„ ์•Œ๋ ค์ค๋‹ˆ๋‹ค application.yml spri..

    Thymeleaf๋กœ Pageable ์ ์šฉํ•˜๊ธฐ!

    Jpa pageable์„ ์ž˜๋ชจ๋ฅด์‹œ๋Š” ๋ถ„์€ ์•„๋ž˜์˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”~! 2021/02/03 - [WEB/JPA] - JAP Pageable ์‚ฌ์šฉํ•˜๊ธฐ JAP Pageable ์‚ฌ์šฉํ•˜๊ธฐ Page๊นŒ์ง€ ์™”๋‹ค๋Š”๊ฑด... ๊ธฐ๋ณธ์ ์ธ CRUD๋ฅผ ์•Œ๊ณ  ๊ณ„์‹  ์ƒํƒœ๋กœ ์ดํ•ดํ•˜๊ณ  ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ํ• ์ผ : ๊ฐ„๋‹จํ•œ ๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ์— Page, Sort ๊ตฌํ˜„ํ•˜์—ฌ API๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค. Service Entity์ž์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๊ฑด ์ ˆ๋•Œ๋กœ ํ•˜์ง€ ์•Š aejeong.com ์„ค์ • ์„ธํŒ… ๋ถ€ํ„ฐ ํ•ด๋ณผ๊ฒŒ์š” ~! 1. build.gradle implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' 2. application.yml spring: thymeleaf: prefix: classp..

    JPA Pageable ์‚ฌ์šฉํ•˜๊ธฐ

    Page๊นŒ์ง€ ์™”๋‹ค๋Š”๊ฑด... ๊ธฐ๋ณธ์ ์ธ CRUD๋ฅผ ์•Œ๊ณ  ๊ณ„์‹  ์ƒํƒœ๋กœ ์ดํ•ดํ•˜๊ณ  ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ํ• ์ผ : ๊ฐ„๋‹จํ•œ ๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ์— Page, Sort ๊ตฌํ˜„ํ•˜์—ฌ API๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค. Service Entity์ž์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๊ฑด ์ ˆ๋•Œ๋กœ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Response dto๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ฐ˜ํ™˜ํ•˜๊ธฐ๋กœ ํ•ฉ๋‹ˆ๋‹ค. Repository์—์„œ ๋ฐ›์•„์˜จ Page UserEntity๋ฅผ Response์— ๋งตํ•‘ํ•ด์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜ํ™˜ํ• ๋•Œ ์ƒ์„ฑ์ž์— stream์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ๊ฐ ๋งตํ•‘ ํ•ด์ค๋‹ˆ๋‹ค! ์—ฌ๊ธฐ์„œ finAny().orElse("") ๋Š” user์˜ ์ด๋ฏธ์ง€๊ฐ€ ํ•„์ˆ˜๋Š” ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— NPE์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— null์ผ ๊ฒฝ์šฐ String ํƒ€์ž…์˜ null์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ถ€๋ถ„์€ ์ข€๋” ์ฐพ์•„์„œ ์—…๋ฐ์ดํŠธ ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! public Page..

    Spring boot + JWT + RefreshToken ๊ตฌํ˜„ํ•˜๊ธฐ

    ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ์ฝ”๋“œ๊นŒ์ง€ ๋ชจ๋‘ ์žˆ์Šต๋‹ˆ๋‹ค.. ์™œ๋ƒ๋ฉด... ์ €๋„ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋“ค์„ ๋ณด๋ฉด์„œ ๋น ์ ธ์žˆ๋Š” ๋ถ€๋ถ„์„ ๋ณด๋ฉด ๋‚˜๊ฐ™์€ ์ดˆ๋ณด๋Š” ์–ด์ฉŒ๋ผ๊ณ  ํ•˜๋ฉฐ ์Šฌํผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—,,, ์‚ฌ์‹ค Security์˜ ์—ฌ๋Ÿฌ๊ฐ€์ง€ Filter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JWT ๋ฐฉ์‹์„ ์ด์šฉํ•˜๋Š”๊ฒŒ ๋งž์ง€๋งŒ ํ”„๋กœ์ ํŠธ ํฌ๊ธฐ,, ๊ธฐ๊ฐ„์ƒ ๋ถˆํ•„์š”ํ•˜๋‹ค ํŒ๋‹จํ•˜๊ฒŒ ๋˜์–ด์„œ JWT ๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ๋‚˜์ค‘์— Security๋„ ๊ฐ™์ด ๊ตฌํ˜„ํ•˜์—ฌ ์˜ฌ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Œ! ์ด๋ฒˆ์—๋Š” git์— ์˜ฌ๋ ค ์ฝ”๋“œ๊นŒ์ง€ ๊ณต์œ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค! ์ฒ˜์Œ๋ณด๋ฉด ์•ฝ๊ฐ„ ๋ณต์žกํ•˜๋‹ค๊ณ  ์ƒ๊ฐ๋˜๊ณ  ๋‚˜๋˜ํ•œ ๊ทธ๋žฌ๋‹ค ใ… ใ… ,, (๋ถ€๋„๋Ÿฌ์šด) ๊ตฌํ˜„์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ ์ดํ•ดํ•˜๊ณ  ํ˜น์‹œ ์ด์ƒํ•œ๊ณณ์€ PRํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค...(๊ฐ„์ ˆ,,) git ์ฃผ์†Œ (์‹ค๋ฌด์—์„œ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ˆ˜์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ~!) git clone https://github.com/ae..

    Spring boot์—์„œ JSP ์‚ฌ์šฉํ•˜๊ธฐ

    ๊ตฌ์กฐ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด 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๋„ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํƒฌํ”Œ๋ฆฟ ..

    FCM PUSH(IOS) - Java HTTP v1 ์‚ฌ์šฉํ•˜์—ฌ PUSH ์•Œ๋ฆผ ์ ์šฉํ•˜๊ธฐ

    FCM PUSH(IOS) - Java Spring Boot Server HTTP v1 ์‚ฌ์šฉํ•˜์—ฌ PUSH ์•Œ๋ฆผ ์ ์šฉํ•˜๊ธฐ ๋“œ๋””์–ด ๋งˆ๋ฌด๋ฆฌ ๋‹จ๊ณ„์— ์ ‘์–ด๋“ค์–ด PUSH๋ฅผ ์ ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ํšŒ์‚ฌ์—์„œ ์‚ฌ์šฉํ–ˆ๋˜ PUSHY๋Š” ์ค‘๊ตญ์„œ๋น„์Šค์—์„œ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ์—๋Š” FCM์„ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๊ณต์‹๋ฌธ์„œ๋Š” ์•„๋ž˜์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. firebase.google.com/docs/cloud-messaging/migrate-v1?authuser=0 JAVA ์„œ๋ฒ„์—์„œ ์ ์šฉํ•˜๋Š” ๋‚ด์šฉ์ž„์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ”„๋ก ํŠธ์—์„œ ์„ค์ •ํ•ด์ฃผ๋Š” ๋ถ€๋ถ„์€ ๋”ฐ๋กœ ์žˆ์Šต๋‹ˆ๋‹ค! ์šฐ์„  ํ”„๋ก ํŠธ์—์„œ ํŒŒ์ด๋ฒ„๋ฒ ์ด์Šค ์ž‘์—…์ด ๋๋‚ฌ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•ฑ์ถ”๊ฐ€๋œ ํ”„๋กœ์ ํŠธ์ด๋ฆ„ ํด๋ฆญ - ํ†ฑ๋‹ˆ๋ฐ”ํ€ด ๋ชจ์–‘ ํด๋ฆญํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ์„ค์ •์œผ๋กœ ๋“ค์–ด๊ฐ€์„ธ์š” ์ด ์„ค์ •์•ˆ์—์„œ json ํŒŒ..

    ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ฐ์ฒด, ์บก์Šํ™”

    ์ธํ”„๋Ÿฐ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ - ์ตœ๋ฒ”๊ท ๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ ์€ํ•„๊ธฐ ๋…ธํŠธ์ž…๋‹ˆ๋‹ค. ์ง์ ‘ ์‹ค์ „์—์„œ Java๋ฅผ ์“ฐ๊ฒŒ ๋˜๋ฉด์„œ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ค‘์š”์„ฑ์ด ๋ผˆ๋ฅผ ๊ฐ•ํƒ€ํ–ˆ๋‹ค... ๊ณต๋ถ€ํ•˜์ž! "Software maintenance is not keep it working like before it is keep being useful in a changing world" - Jessica Kerr ์œ ์ง€๋ณด์ˆ˜๋Š” ๊ทธ๋Œ€๋กœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์œ ์šฉํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ถ„์„๊ณผ ์ˆ˜์ •์ด ๋น ๋ฅด๊ฒŒ ๋˜์–ด์•ผ ํ•œ๋‹ค. ๋น„์šฉ๊ณผ ๋ณ€ํ™” ๋‚ฎ์€ ๋น„์šฉ์œผ๋กœ ๋ณ€ํ™”ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. 1. ํŒจ๋Ÿฌ๋‹ค์ž„ ๊ฐ์ฒด ์ง€ํ–ฅ, ํ•จ์ˆ˜ํ˜•, ๋ฆฌ์•กํ‹ฐ๋ธŒ ๋“ฑ 2. ์ฝ”๋“œ, ์„ค๊ณ„, ์•„ํ‚คํ…์ฒ˜ DRY, TDD, SOLID, DDD, ... ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜, MSA, ... 3. ..

    AWS Pem Key๋ถ„์‹ค

    ์˜ˆ์ „ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ์จ์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์™”๋‹ค . . . ์ด๋ฏธ ์ด์งํ•˜์‹  ๋ถ„๊ป˜ Pemํ‚ค๊ฐ€ ์žˆ๊ณ  ์ธ์ˆ˜์ธ๊ณ„๊ฐ€ ์•ˆ๋˜์–ด์žˆ์–ด์„œ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด๋Š”๋ฐ AWS์— ๋Œ€ํ•ด ์™„์ „ํžˆ ๋ชจ๋ฅด๋Š” ์ƒํƒœ์—ฌ์„œ ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š์•˜๋‹ค ใ…œใ…œ ๊ทธ๋ž˜์„œ,, ํ•˜๋ฃจ ์ข…์ผ ์‚ฝ์งˆํ•œ ๊ฒฝํ—˜์„ ๊ธฐ๋กํ•ด์„œ ๋‚˜์ค‘์— ๋˜ ์ด๋Ÿฐ ์ผ์ด ์žˆ์„ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋กํ•œ๋‹ค 1. key๋ฅผ ๋ถ„์‹คํ•œ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ •์ง€ํ•œ๋‹ค (stop) 2. ์ƒˆ๋กœ์šด ์ž„์‹œ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค 2-1. ssh-keygen -y -f text_key.pem ํ„ฐ๋ฏธ๋„์—์„œ ์ƒˆ๋กœ ๋งŒ๋“  ์ธ์Šคํ„ด์Šค์˜ ํ‚ค๊ฐ€ ์žˆ๋Š” ๊ณณ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์œ„์™€ ๊ฐ™์ด ssh-keygen ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ssh-rsa๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ธด ํผ๋ธ”๋ฆญ ํ‚ค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ๋ณต์‚ฌํ•ด์„œ ์ €์žฅํ•ด๋‘์„ธ์š”! 3. [AWS > ELASTIC B..

    Enum Type ์‚ฌ์šฉํ•˜๊ธฐ

    ์ด๋ฒˆ์— ์Šคํƒ€ํŠธ์—…์— ์ทจ์—…ํ•˜๋ฉด์„œ ๋งŽ์€ ๊ฑธ ๋ฐฐ์šฐ๋Š” ๋™์‹œ์— ๋งŽ์€ ๊ฒŒ ์‹ซ์–ด์กŒ๋‹ค. ํ•˜์ง€๋งŒ ๋ฒ„ํ‹ฐ๊ณ  ๋‚˜๋ฉด ์ถ”์–ต์ด๊ณ  ๋‚˜์˜ ๊ฒฝ๋ ฅ์ด ๋˜๊ฒ ์ง€ ... ใ…  ๊ฟป ์šฐ์„  ์ฒ˜์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋“ค์–ด๊ฐ€์„œ ์ฒ˜์Œ์œผ๋กœ ์‚ฌ์šฉํ•ด ๋ดค๋‹ค. ํ•™์›์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋ฐฐ์› ์ง€๋งŒ ์ด๋ฒˆ์— ์‚ฌ์šฉํ•˜๋ฉด์„œ ๊ฐ€๋…์„ฑ๋ฉด์—์„œ ๋งค์šฐ ์ข‹๋‹ค๊ณ  ๋Š๊ผˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์ค‘์„ ์œ„ํ•ด ์ •๋ฆฌํ•œ๋‹ค! Spring Boot ์—์„œ api ์„ค๊ณ„ ์ค‘ ๋ฐฐ์†ก ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๋ฉด์„œ ๋ฐฐ์†ก์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋Š”๋ฐ 1,2,3... ๋“ฑ ์ˆซ์ž๋กœ ํ‘œํ˜„๋˜์–ด 1์ด ๋ฌด์—‡์ธ์ง€ 2๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ผ์ผ์ด ์ฐพ์•„๋ณด๊ธฐ ๋ฒˆ๊ฑฐ๋กœ์› ๋‹ค. ๋˜ํ•œ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋•Œ ์–ด๋–ค ๊ฑด์ง€ ํ—ท๊ฐˆ๋ฆด ๊ฑฐ ๊ฐ™์•„ Enumํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. @Getter public enum SomethingStatus { PAYMENT_COMPLETE(0), PREPARING(1), CANCEL(..

    React + Node.js ์—ฐ๋™ํ•˜๊ธฐ

    ํ•˜๋ฃจ์ข…์ผ ์‚ฝ์งˆํ•œ๊ฑฐ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ถ„๋ช… ์–ธ์  ๊ฐ€ ๋˜ ์“ธ๊ฒƒ์ด์–ด๋‹ˆ.... ์šฐ์„  vscode๋กœ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. vscode ํ„ฐ๋ฏธ๋„์—์„œ npx create-react-app lasttest lasttest๋Š” ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋งŒ๋“ ํ›„ ํ„ฐ๋ฏธ๋„์—์„œ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๊ฒฝ๋กœ์—์„œ npm start๋กœ ์‹คํ–‰์ด ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ์นœ๊ตฌ๊ฐ€ ๋œฌ๋‹ค๋ฉด ๋ฐ”๋กœ node.js๋ž‘ ์—ฐ๋™ํ• ๊ฒŒ์š”. npm install express --save ์„ค์น˜ํ•ด์ฃผ์„ธ์š” express๋Š” NodeJS์˜ ์›นํ”„๋ ˆ์ž„์›Œํฌ ์ž…๋‹ˆ๋‹ค. ๊ฐ„ํŽธํ•˜๊ฒŒ ์›น์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์ฃ  ๊ทธ๋‹ค์Œ์— ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ํด๋”๋ฅผ ๋‚˜๋ˆ„์–ด ์ค„๊ป€๋ฐ์š” root๊ฒฝ๋กœ์— serverํด๋”๋ฅผ ๋งŒ๋“ค์–ด์ค€ ๋‹ค์Œ์— server.js ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š” const express = require('express'); co..

    Mapper Interface?

    ๋ฉด์ ‘๋ณด๊ธฐ ์œ„ํ•ด ๊ณผ์ œ๋ฅผ ํ•ด์•ผ ํ–ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ํŒŒ์ผ์„ ๋ฐ›์•˜๋Š”๋ฐ ๊ณ„์† ๊ตฌํ˜„ํ•ด์˜ค๋˜ ๊ตฌ์กฐ์™€๋Š” ๋งŽ์ด ๋‹ฌ๋ผ์„œ ์‹œ๊ฐ„์„ ๋งŽ์ด ์ผ๋‹ค. ํ•˜์ง€๋งŒ ์—ญ์‹œ๋‚˜ ์ธํ„ฐ๋„ท์„ ์ž์„ธํžˆ ๋ณด๊ณ  ์—„์ฒญ๋‚œ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ํ•œ ํ›„์— ์ ์‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์–ธ์ œ ๋‹ค์‹œ ์“ธ ์ˆ˜ ์žˆ์„์ง€ ๋ชฐ๋ผ ๊ธฐ๋กํ•ด ๋‘๊ธฐ๋กœ ํ–ˆ๋‹ค. Mapper์˜ SQL ID์™€ Mapper Interface์˜ ๋ฉ”์„œ๋“œ๋ช…๊ณผ ์ •ํ™•ํžˆ ๋งค์นญํ•ด์ค€๋‹ค๋ฉด ์ž๋ฐ”์—์„œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜คํƒ€์— ๋Œ€ํ•œ ๊ฑฑ์ •์ด ์—†๋‹ค. ๊ฐœ๋ฐœ์„ ๋ฐฐ์šฐ๋ฉด์„œ ์“ฐ๋˜ ๊ตฌ์กฐ๋Š” ๋Œ€์ถฉ ์ด๋Ÿฐ์‹์ด์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฒˆ์— ๋ฐ›์€ ๊ณผ์ œ๋Š” Mapper Interface, Service class, sql.xml ์ด๋ ‡๊ฒŒ 3๊ฐ€์ง€๋กœ ์žˆ์—ˆ๋‹ค. ์ฒ˜์Œ ๋ณธ ๊ตฌ์กฐ 1.propertis์—์„œ ์•Œ๋ฆฌ์•„์Šค๋ฅผ ์ด์šฉํ•ด sql์—์„œ dto๋กœ ์—ฐ๊ฒฐํ•ด์ฃผ๋˜ ๊ฒƒ์„ annotation์„ ์‚ฌ์šฉํ•˜๋ฉด ์•„์ฃผ ๊ฐ„๋‹จํ•˜..