๐ฑ Develop/Server(5)
-
JPA ๊ตฌ์กฐ๋ ์ด๋ป๊ฒ ๋์ด์๊ณ spring-data-jpa์๋ ๋ญ๊ฐ ๋ค๋ฅผ๊น?
JPA๋ Java Persistence API๋ก, ์๋ฐ ๊ฐ์ฒด์ DB๋ฅผ ๋งคํํ๊ธฐ ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ์๋ฐ ORM ๊ธฐ์ ์ ํ์ค ๋ช ์ธ์ ๋๋ค. SQL Mapper ORM sql๊ณผ ๊ฐ์ฒด๋ฅผ ๋งคํ DB์ ๊ฐ์ฒด๋ฅผ ๋งคํ mybatis, jdbcTemplate ๋ฑ hibernate, EclipseLink ๋ฑ ๊ฐ์ธ์ ์ผ๋ก mybatis๋ฅผ ์ผ์ ๋๋ ๋ณต์กํ sql๋ฌธ์ด ํ์ํ ๋๋ ๋น๊ต์ ํธ๋ฆฌํ๊ฒ ์์ฑํ ์ ์๋ค๋ ์ฅ์ ์ด ์์์ต๋๋ค. ํ์ง๋ง DB๋ฅผ ์ค๊ฐ์ ๋ณ๊ฒฝํ๊ธฐ ์ด๋ ต๊ณ , ๊ธฐํ ๋ณ๊ฒฝ์ฌํญ์ด ์๊ธธ ๋๋ง๋ค sql๋ฌธ์ ์ผ์ผ์ด ์์ ํด์ค์ผํ๋ ๋ฐ๋ณต ์์ ์ ์ํํด์ผ ํ์ต๋๋ค. ๊ทธ๋์ CRUD๋ฅผ ํ๋ฃจ์ข ์ผ ์ง๊ณ ์๋ ๊ฐ๋ฐ์์ ๋ฒ์ด๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ง์คํ๊ธฐ ์ํด ORM ์ ๊ด์ฌ์ ๊ฐ์ง๊ฒ ๋์์ต๋๋ค. โORM์ด๋ ๊ฐ์ฒด๋ ๊ฐ์ฒด๋๋ก, DB๋ ..
2022.01.06 -
[Springboot] '์ต๊ทผ ์ฝ์ ๊ธ' Dto๋ก Redis์ ์ ์ฅํ๊ณ ์กฐํํ๊ธฐ AtoZ (2) - ์์ , ์ญ์ ํธ
2021.06.18 - [๐ฑ Develop/Server] - [Springboot] '์ต๊ทผ ์ฝ์ ๊ธ' Dto๋ก Redis์ ์ ์ฅํ๊ณ ์กฐํํ๊ธฐ AtoZ [Springboot] '์ต๊ทผ ์ฝ์ ๊ธ' Dto๋ก Redis์ ์ ์ฅํ๊ณ ์กฐํํ๊ธฐ AtoZ โ redis ๋ฅผ ์ ํํ ์ด์ ๋ธ๋ก๊ทธ ํํ์ด์ง๋ฅผ ๋ง๋๋ ํ๋ก์ ํธ์์, "์ต๊ทผ ์ฝ์ ๊ธ" ์ ๊ฐ๋ฐํด์ผํ๋ ์ํฉ์ด ์์์ต๋๋ค. velog ๊ฐ์ ์๋น์ค์์๋ ๊ฝค ์ค๋ ๊ธฐ๊ฐ๋์ ๋ด๊ฐ ์ฝ์ ๊ธ์ ์ ์ฅํ๋ ๋ฏ ํ tape22.tistory.com ์ด์ ๊ธ์์๋ ๊ฐ๋จํ๊ฒ redis์ list๋ก ์กฐํํ ๊ธ Dto๋ฅผ ์ ์ฅํ์์ต๋๋ค. ํ์ง๋ง ์ค์ ๋ก ํ๋ก ํธ์ ๋ฐฐํฌ๋ฅผ ํ๊ณ ๋๋, ํฌ๊ฒ ๋ ๊ฐ์ง ์ด์๋ฅผ ๊ฐ๊ณผํ๊ณ ์์ด์ ๋ ๋ฒ์งธ ๊ธ์ ์ฐ๊ฒ ๋์์ต๋๋ค. ํ์ฌ ๋ก์ง์ผ๋ก๋ postIdx ๋ฅผ ํตํด ํด..
2021.06.24 -
[Springboot] '์ต๊ทผ ์ฝ์ ๊ธ' Dto๋ก Redis์ ์ ์ฅํ๊ณ ์กฐํํ๊ธฐ AtoZ
โ redis ๋ฅผ ์ ํํ ์ด์ ๋ธ๋ก๊ทธ ํํ์ด์ง๋ฅผ ๋ง๋๋ ํ๋ก์ ํธ์์, "์ต๊ทผ ์ฝ์ ๊ธ" ์ ๊ฐ๋ฐํด์ผํ๋ ์ํฉ์ด ์์์ต๋๋ค. velog ๊ฐ์ ์๋น์ค์์๋ ๊ฝค ์ค๋ ๊ธฐ๊ฐ๋์ ๋ด๊ฐ ์ฝ์ ๊ธ์ ์ ์ฅํ๋ ๋ฏ ํ๋๋ฐ, ํ์ฌ ํ๋ก์ ํธ์ ๊ธฐํ์์๋ ์ผ์ฃผ์ผ์ด๋ผ๋ ๊ธฐ๊ฐ์ด ์ง์ ๋์ด์์์ต๋๋ค. ์ฒ์์๋ ํ ์ด๋ธ์ ํ๋ ๋ ์์ฑํด์ผํ๋ ๊ณ ๋ฏผ์ด ๋์๋๋ฐ, ์ฝ์ ๊ธ ํน์ฑ ์ ๋จ๊ธฐ๊ฐ์ ๋ง์ ๋ฐ์ดํฐ๊ฐ ์์ง๋๋ค๋ ์ ๊ณผ ๋ง๋ฃ ๊ธฐ๊ฐ์ ์ค์ ํ๋ ๊ฒ์ด ์ฑ๋ฅ ์์ผ๋ก ์ข์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ๊ทธ๋ฌ๋ค ์ด์ ํ๋ก์ ํธ์์ refreshToken์ ์ ์ฅํ ๋ redis๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์๊ฐ๋์, redis๋ก ์กฐํํ ๊ธ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ๊ณ , ์ผ์ ๊ธฐ๊ฐ์ด ์ง๋๋ฉด ์ญ์ ๋๋ ๊ธฐ๋ฅ์ ์ ์ฉํด๋ณด๊ณ ์ ํฉ๋๋ค. ๐ ๊ตฌํํด์ผํ๋ ๊ธฐ๋ฅ redis list ์๋ฃํ์ ์ฌ..
2021.06.18 -
[Nodejs/Mysql] ๊ฒ์๊ธ ํ์ด์งํ๊ธฐ(1) : LIMIT์ ์ฌ์ฉํ Offset-based Pagination ๊ตฌํํ๊ธฐ
โ Pagination (ํ์ด์ง๋ค์ด์ ) ๋ฐฑ์๋์์ ํด๋ผ์ด์ธํธ์๊ฒ ๊ฐ์ ์ ๋ฌํ ๋, ์ผ์ ๊ธฐ์ค์ผ๋ก ๋ถํ ํ์ฌ ์ ๋ฌํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์น์์ ๊ฒ์๊ธ์ 1ํ์ด์ง, 2ํ์ด์ง๋ก ๋๊ธฐ๋ ๊ฒ๊ณผ '๋๋ณด๊ธฐ' ๋ฒํผ์ผ๋ก ๋ฌดํ ์คํฌ๋กค์ ํ ์ ์๋ ๊ฒ ๋ชจ๋ ํ์ด์ง๋ค์ด์ ์ ํตํด ๊ตฌํ๋ ๊ฒ์ ๋๋ค. ํ์ด์ง๋ค์ด์ ์ ๋ฐฉ์์๋ ํฌ๊ฒ 2๊ฐ์ง๊ฐ ์๋๋ฐ, ํ๋๋ offset ๋ฐฉ์์ด๊ณ ํ๋๋ cursor ๋ฐฉ์์ ๋๋ค. 1. ์คํ์ ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ (offset pagination) limit, offset ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ๋ถํจ. ์ฃผ๋ก ์น ํ์ด์ง์์ > ์ด๋ฐ ๋ฐฉ์์ ๋ค๋น๊ฒ์ด์ ์ ์ธ ๋ ์ฌ์ฉ 2. ์ปค์ ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ (cursor pagination) ๊ฐ์ฅ ์ต๊ทผ idx๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ตฌ๋ถํจ. ์ฃผ๋ก ๋ฌดํ ์คํฌ๋กค์ด๋ ๋๋ณด๊ธฐ๋ฅผ ๊ตฌํํ ๋ ์ฌ์ฉ(SNS)..
2021.01.08 -
[AWS] Node.js Multer๋ก S3์ ์ด๋ฏธ์ง ์ ๋ก๋ํ๊ณ Mysql์ ์ ์ฅํ๊ธฐ
๐ 1. ํจํค์ง ์ค์น ๋ฐ S3 ์ ๋ณด์ ๋ ฅ ํ์ํ ํจํค์ง๋ค์ ์ค์นํด์ค๋๋ค. ์ด๋ฏธ์ง ์ ๋ก๋๋ฅผ ์ํ multer,multer-s3๊ณผ aws-sdk๋ฅผ ์ค์นํด์ฃผ์ธ์. npm install multer npm install multer-s3 npm install aws-sdk ๐ s3,ec2 ๋ฑ ๊ฐ์ฒด๋ฅผ ํธ๋ฆฌํ๊ฒ ์์ฑํ ์ ์์. ์ค์นํ๋ค๋ฉด ๐ config ํด๋์ js ํ์ผ ํ๋๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์! s3 ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , ๋ฒํท์ ์์ฑํ ๋ csv๋ก ์ ์ฅํ๋ ํ์ผ์์ KeyID์ SecretKey, ๊ทธ๋ฆฌ๊ณ ๋ฆฌ์ ์ ์ ๋ ฅํฉ๋๋ค. ์ ๋ ๋ฆฌ์ ์ ์์ธ๋ก ๋ง๋ค์ด์, ap-northeast-2๋ก ์ ๋ ฅํ์ต๋๋ค. ์ด ํค๋ค์ ๊ทธ๋๋ก github์ ์ฌ๋ ธ ์ ์์๋ ํดํน์ผ๋ก ๊ณผ๊ธ์ด ์ผ์ด๋ ์ ์๊ธฐ ๋๋ฌธ์, ๋ฐ๋์ .gitignore ํ์ผ์ ์ถ๊ฐ..
2020.11.28