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..
์ ์ฒด ๊ธ
Page๊น์ง ์๋ค๋๊ฑด... ๊ธฐ๋ณธ์ ์ธ CRUD๋ฅผ ์๊ณ ๊ณ์ ์ํ๋ก ์ดํดํ๊ณ ์์ฑํ๊ฒ ์ต๋๋ค! ํ ์ผ : ๊ฐ๋จํ ๋ฆฌ์คํธ ๋ฐ์ดํฐ์ Page, Sort ๊ตฌํํ์ฌ API๋ฅผ ๊ตฌํํ๋ค. Service Entity์์ฒด๋ฅผ ๋ฐํํ๋๊ฑด ์ ๋๋ก ํ์ง ์๊ธฐ ๋๋ฌธ์ Response dto๋ฅผ ๋ง๋ค์ด์ ๋ฐํํ๊ธฐ๋ก ํฉ๋๋ค. Repository์์ ๋ฐ์์จ Page UserEntity๋ฅผ Response์ ๋งตํํด์ค์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐํํ ๋ ์์ฑ์์ stream์ ์ฌ์ฉํ์ฌ ๊ฐ๊ฐ ๋งตํ ํด์ค๋๋ค! ์ฌ๊ธฐ์ finAny().orElse("") ๋ user์ ์ด๋ฏธ์ง๊ฐ ํ์๋ ์๋๊ธฐ ๋๋ฌธ์ NPE์ด ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ null์ผ ๊ฒฝ์ฐ String ํ์
์ null์ ๋ฐํํ๊ฒ ํ์ต๋๋ค. ์ด๋ถ๋ถ์ ์ข๋ ์ฐพ์์ ์
๋ฐ์ดํธ ํ๋๋ก ํ๊ฒ ์ต๋๋ค! public Page..
์์ฃผ ๊ธฐ๋ณธ์ ์ธ ์ฝ๋๊น์ง ๋ชจ๋ ์์ต๋๋ค.. ์๋๋ฉด... ์ ๋ ๊ธฐ์ ๋ธ๋ก๊ทธ๋ค์ ๋ณด๋ฉด์ ๋น ์ ธ์๋ ๋ถ๋ถ์ ๋ณด๋ฉด ๋๊ฐ์ ์ด๋ณด๋ ์ด์ฉ๋ผ๊ณ ํ๋ฉฐ ์ฌํผํ๊ธฐ ๋๋ฌธ์,,, ์ฌ์ค 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๋ ์ถ๊ฐํด์ค๋๋ค. ๊ธฐ๋ณธ ํฌํ๋ฆฟ ..
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. ..
์์ ํ๋ก์ ํธ๋ฅผ ๋ค์ ์จ์ผํ๋ ์ํฉ์ด ์๋ค . . . ์ด๋ฏธ ์ด์งํ์ ๋ถ๊ป 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..
์ด๋ฒ์ ์คํํธ์
์ ์ทจ์
ํ๋ฉด์ ๋ง์ ๊ฑธ ๋ฐฐ์ฐ๋ ๋์์ ๋ง์ ๊ฒ ์ซ์ด์ก๋ค. ํ์ง๋ง ๋ฒํฐ๊ณ ๋๋ฉด ์ถ์ต์ด๊ณ ๋์ ๊ฒฝ๋ ฅ์ด ๋๊ฒ ์ง ... ใ
๊ฟป ์ฐ์ ์ฒ์ ํ๋ก์ ํธ๋ฅผ ๋ค์ด๊ฐ์ ์ฒ์์ผ๋ก ์ฌ์ฉํด ๋ดค๋ค. ํ์์์ ๋ง์ด ์ฌ์ฉํ์ง ์๋๋ค๊ณ ๋ฐฐ์ ์ง๋ง ์ด๋ฒ์ ์ฌ์ฉํ๋ฉด์ ๊ฐ๋
์ฑ๋ฉด์์ ๋งค์ฐ ์ข๋ค๊ณ ๋๊ผ๊ธฐ ๋๋ฌธ์ ๋์ค์ ์ํด ์ ๋ฆฌํ๋ค! Spring Boot ์์ api ์ค๊ณ ์ค ๋ฐฐ์ก ๊ธฐ๋ฅ์ ๋ง๋ค๋ฉด์ ๋ฐฐ์ก์ํ ๊ด๋ฆฌ๋ฅผ ํ๋๋ฐ 1,2,3... ๋ฑ ์ซ์๋ก ํํ๋์ด 1์ด ๋ฌด์์ธ์ง 2๊ฐ ๋ฌด์์ธ์ง ์ผ์ผ์ด ์ฐพ์๋ณด๊ธฐ ๋ฒ๊ฑฐ๋ก์ ๋ค. ๋ํ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ ์ด๋ค ๊ฑด์ง ํท๊ฐ๋ฆด ๊ฑฐ ๊ฐ์ Enumํ์
์ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค. @Getter public enum SomethingStatus { PAYMENT_COMPLETE(0), PREPARING(1), CANCEL(..
ํ๋ฃจ์ข
์ผ ์ฝ์งํ๊ฑฐ ์ ๋ฆฌํฉ๋๋ค. ๋ถ๋ช
์ธ์ ๊ฐ ๋ ์ธ๊ฒ์ด์ด๋.... ์ฐ์ 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์ SQL ID์ Mapper Interface์ ๋ฉ์๋๋ช
๊ณผ ์ ํํ ๋งค์นญํด์ค๋ค๋ฉด ์๋ฐ์์ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ธฐ ๋๋ฌธ์ ์คํ์ ๋ํ ๊ฑฑ์ ์ด ์๋ค. ๊ฐ๋ฐ์ ๋ฐฐ์ฐ๋ฉด์ ์ฐ๋ ๊ตฌ์กฐ๋ ๋์ถฉ ์ด๋ฐ์์ด์๋ค. ๊ทธ๋ฌ๋ ์ด๋ฒ์ ๋ฐ์ ๊ณผ์ ๋ Mapper Interface, Service class, sql.xml ์ด๋ ๊ฒ 3๊ฐ์ง๋ก ์์๋ค. ์ฒ์ ๋ณธ ๊ตฌ์กฐ 1.propertis์์ ์๋ฆฌ์์ค๋ฅผ ์ด์ฉํด sql์์ dto๋ก ์ฐ๊ฒฐํด์ฃผ๋ ๊ฒ์ annotation์ ์ฌ์ฉํ๋ฉด ์์ฃผ ๊ฐ๋จํ..
๊ธฐ๋ณธํ์
/ ์ฐธ์กฐํ์
์ผ๋ก ๋๋ฉ๋๋ค. (immutable / mutable) ๊ธฐ๋ณธํ์
์ ์ ์, ์ค์, ๋ฌธ์, ๋
ผ๋ฆฌ ๋ฆฌํฐ๋ด์ ์ ์ฅํ๋ ํ์
์
๋๋ค. ์ข
๋ฅ ๊ธฐ๋ณธํ์
๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ณธ๊ฐ ์ ์ byte 8bit 1byte 0 char 16bit 2byte ์ ๋์ฝ๋(\u0000), ASCII, ๋ฌธ์ํ short 16bit (2byte) 0 int 32bit (4byte) 0 long 64bit (8byte) 0 ์ค์ (๋ถ๋ ์์์ ) float 32bit (4byte) 0.0F double 8bit (1byte) 0.0 ๋
ผ๋ฆฌ boolean 8bit (1byte) false ๋ฉ๋ชจ๋ฆฌ์๋ 0๊ณผ 1์ ์ ์ฅํ๋ ์ต์ ๊ธฐ์ต ๋จ์์ธ bit๊ฐ ์์ต๋๋ค. ์ด bit 8๊ฐ๋ฅผ ๋ฌถ์ผ๋ฉด byte๊ฐ ๋ฉ๋๋ค. ์ด byte๊ฐ ํด์๋ก ํํํ๋ ๊ฐ์ผ ๋ฒ..
ํน์ง ? - Spring Web MVC Framework๋ JAVA1.5๋ถํฐ Annotation์ ์ง์ํฉ๋๋ค. - xml์ค์ ์ด ๋๋ฌด ๊ธธ์ด์ง์ ๋ฐ๋ผ ๊ทธ ๋์์ผ๋ก ๋ํ๋ฌ๋ค. - ๊ธฐ๋ณธ์ ์ผ๋ก๋ ํ์ฑํ๋์ง ์๊ธฐ ๋๋ฌธ์ xml์์ ํ์ฑํ ์์
์ด ํ์ํ๋ค. ์ฅ์ ? - ์ค์ ์ด ๊ฐํธํด ์ง, view ํ์ด์ง์ ๊ฐ์ฒด ๋๋ ๋ฉ์๋์ ๋งตํ์ด ๋ช
ํํด ์ง. Annotation์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ค์ ์ด ํ์ํฉ๋๋ค. 3๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. 1) CommonAnnotationBeanPostProcessor์ ํด๋์ค ์ค์ ํ์ผ์ ๋น๊ฐ์ฒด๋ก ๋ฑ๋กํ์ฌ ์ด๋
ธํ
์ด์
์ผ๋ก ์ฌ์ฉ 2) ํ๊ทธ ์ฌ์ฉ : ์ด๋ฏธ ๋ฑ๋ก๋ ๋น๋ค์ ์ด๋
ธํ
์ด์
์ ํ์ฑํ 3) : ํน์ ํจํค์ง ์์ ํด๋์ค๋ค์ ์ค์บํ๊ณ , Annotation์ ํ์ธ ํ bean ์ธ์คํด์ค๋ฅผ ์์ฑ - ์คํ
..