1. ์ฑ๋ฅ ์ต์ ํ ๊ณ๊ธฐ ํ์ฌ ๊ด๋ฆฌ์ ํ์ด์ง์์ ์์ฝ ๋ด์ญ์ ํ์ด์ง ์ฒ๋ฆฌํ์ฌ ์กฐํํ ์ ์๋ ๊ธฐ๋ฅ์ด ์๋ค. limit๋ 20์ผ๋ก ํ ํ์ด์ง๋น 20๊ฐ์ ์์ฝ ์ปจํ
์ธ ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์๋ค. ์ ์ฒด ์์ฝ ๋ฐ์ดํฐ๋ 354,200๊ฐ์ธ ์ํฉ์ด๊ณ ํด๋น API์ ์ฑ๋ฅ์ด ํ๊ท ์ ์ผ๋ก 1.74์ด์ ์๊ฐ์ด ๊ฑธ๋ ธ๊ณ ์ต๋ 1.99์ด๊น์ง ๊ฑธ๋ฆผ์ผ๋ก์จ ์ฑ๋ฅ์ด ์ข์ง ๋ชปํ๋ค. ํด๋น ์ฑ๋ฅ์ ์ต์ ํํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ชจ์ํ๊ธฐ ์์ํ๋ค. ๋ฏธ๋ฆฌ ๋งํ์๋ฉด, ํ๊ท 56.2%์ ์ฑ๋ฅํฅ์์ ๋ง๋ณด๊ฒ ๋์๋ค! 2. ๋ฐ๋ณต๋๋ Count Query๋ฅผ ๊ฐ์ ํด๋ณด์! ํด๋น ๋ถ๋ถ์์ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์๋ ๋ถ๋ถ์ผ๋ก ๊ฐ์ฅ ๋์ ๋๊ฒ์ ๋งค๋ฒ ๋ฐ๋ณต๋๋ ์ ์ฒด ๋ฐ์ดํฐ์ ์๋ฅผ ์ธก์ ํ๋ Count Query์๋ค. "๊ตณ์ด Count Query๊ฐ ํ์ด์ง๋ง๋ค ๋งค๋ฒ ๋ฐ๋ณต๋ ํ์๊ฐ ์์๊น?" ..
๐จ๐ฉ๐ง๐ฆ Project
๋จ๊ณ๋ณ๋ก ์ฑ์ฅํ์!1. ํ ํฐ ์ฌ๋ฐ๊ธ์ ์ ์ฅ๊ณต๊ฐ์ด ํ์ํ ์ด์ ํ์ฌ JWT ์ธ์ฆ๋ฐฉ์์ ์ ์ฉํ๊ณ ์๋ค. ํด๋น ๋ฐฉ์์ ํ๋ก์ฐ๋ ๋๋ต ์๋์ ๊ฐ๋ค. ๋ก๊ทธ์ธ์ Access Token๊ณผ Refresh Token์ด ๋ฐ๊ธ๋๋ค. ๊ถํ์ด ํ์ํ API์ ๊ฒฝ์ฐ header์ Access Token์ ์ถ๊ฐํ์ฌ ์์ฒญํ๋ค. Access Token์ด ๋ง๋ฃ๋ ๊ฒฝ์ฐ์๋ Refresh Token์ ํตํด Access Token๊ณผ Refresh Token ๋ชจ๋ ์ฌ๋ฐ๊ธ ๋ฐ๋๋ค. ์ด๋ฌํ ์ ์ฐจ ๊ณผ์ ์์ ํ ํฐ์ ์ ์ฅํ ๊ณต๊ฐ์ด ํ์ํ๋ค. ํ์ฌ ์ฌ์ฉํ๊ณ ์๋ RDBMS์ธ MariaDB๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์ Redis๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๊ธฐ๋ฅ, ์ฑ๋ฅ์ ์ฐจ์ด๋ฅผ ๋น๊ตํด๋ณด์๋ค. ์๋๋ ์ต์ข
๋น๊ต ๊ฒฐ๊ณผ์ด๋ค. Redis์ ๋ํด ์์ธํ ์๊ณ ์ถ์ผ๋ฉด ์ด์ ์ ์์ฑํ ํฌ์คํ
์ ์ฐธ๊ณ ํ์! 2023..
1. ์ฑ๋ฅ ์ต์ ํ ๊ณ๊ธฐ ํ์ฌ ํ๋ก์ ํธ๋ ์์ฝ๊ณผ ๊ด๋ จํ์ฌ ์๊ฐ์ ๋ง์ด ๋ค๋ฃจ๊ณ ์๋ค. ๋ฐ๋ผ์, DATETIME ํ์
์ ์ปฌ๋ผ์ ๋ฒ์ ๋น๊ต ๋๋ ๋๋ฑ ๋น๊ตํ์ฌ ์กฐํํ๋ ์ฟผ๋ฆฌ๊ฐ ๋ง์ด ์กด์ฌํ์๋ค. ํด๋น ์ปฌ๋ผ์ ๋ํด ์ธ๋ฑ์ค๋ฅผ ์ง์ ํ์ฌ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ํ ์ ์์๊ฒ ๊ฐ์ Real MySQL 8.0์ ๋์์ ๋ฐ์ ์๋ํด๋ณด์๊ณ ๊ธฐ๊ฐ๋ณ ์์ฝ ๋ด์ญ ์กฐํ ์ฟผ๋ฆฌ์ ๋ํด 1374% ํฅ์์ ๋ณด๊ฒ ๋์๋ค. 2. ๋ฌธ์ ์ ์ฟผ๋ฆฌ ๋ฌธ์ ์ ์๋ ์ฟผ๋ฆฌ๋ ๊ธฐ๊ฐ๋ณ๋ก ์์ฝ ๋ด์ญ์ ์กฐํํ๋ ์ฟผ๋ฆฌ์ด๋ค. where์ ์์ DATETIME ํ์
์ ์์ฝ ์์๋ ์ง์๊ฐ์ ํด๋นํ๋ start_at ์ปฌ๋ผ์ ๋ํด BETWEEN ์ฐ์ฐ์ ์งํํ๋ค. ๋๋ start_at ์ปฌ๋ผ์ ๋ํด Index๋ฅผ ์ ์ฉํด๋ณด๊ณ ์ ํ๋ค. select reservatio0_.project_table_..
1. ๋ฐฐํฌ ์๋ํ๋ฅผ ๊ตฌ์ถํ๊ฒ ๋ ๊ณ๊ธฐ ํ์ฌ ๊ต๋ด ์๋ฒ์ค์ ์ด์์๋ฒ๊ฐ ๊ตฌ์ถ๋์ด ์๊ณ , ๊ต๋ด๋ง ์ ์ฑ
์ ๋ฐ๋ผ ์ธ๋ถ ์ก์ธ์ค ํฌํธ๋ 80, 443 2๊ฐ๋ง ์ฌ์ฉํ ์ ์์๋ค. ์ด๋ฏธ 80, 443์ ์ ํ๋ฆฌ์ผ์ด์
๋ฐฐํฌ๋ฅผ ์ํด ์ฌ์ฉํ๊ณ ์๋ค. ๋ฐ๋ผ์ ๊ต๋ด๋ง์ ์ ์ํด ์์ ๋๋ง 22๋ฒ ํฌํธ๋ก ssh ์ ์์ ํตํด ๋ณ๊ฒฝ์ฌํญ์ ์ด์์๋ฒ์ ๋ฐฐํฌํ ์ ์์๋ค. ์ด๋ ๋ฏ ๊ต๋ด๋ง์ ์ ์ํด์ผ๋ง ํ๋ค๋ ๋ฌธ์ ๋ ์์์ง๋ง, ๊ฒฐ๊ตญ์๋ ์๋์ผ๋ก ๋ฐฐํฌํ๋ค ๋ณด๋ ๋ช
๋ น์ด๋ฅผ ์๋ชป ์
๋ ฅํ๋ ๊ฒฝ์ฐ๋ ์์๊ณ ๋ฐฐํฌํ ๋๋ง๋ค ๋ฐ๋ณต๋๋ ์์
์ ์งํํ๋ค ๋ณด๋ ๋ฐฐํฌ ์๋ํ๊ฐ ์ ๋ง ์ ์คํ๋ค. 2. ๋ฐฐํฌ ์๋ํ ํ๋ก์ฐ ์ฐ์ Jenkins๋ฅผ ์ด์ฉํ์ฌ ๋ฐฐํฌ ์๋ํ๋ฅผ ๊ตฌ์ถํ๊ณ ์ ํ๋ค. PR์ด Master ๋ธ๋์น๋ก Merge๋๋ฉด Github WebHook์ด Trigger ๋๋ค...
1. ํด๋ผ์ฐ๋ ์๋น์ค๋ก ์ด์ ํ๊ฒ ๋ ๊ณ๊ธฐ ํ์ฌ ๊ต๋ด ์๋ฒ์ค์ KIOSEK ์๋น์ค๊ฐ On-Premise ํ๊ฒฝ์ผ๋ก ๋ฐฐํฌ๋์์๊ณ , ์ด์ ์๋ ํ๋ก ํธ ๊ฐ๋ฐ์์์ ์ง์์ ์ธ ํ์
์ ์ํ ๊ฐ๋ฐ ์๋ฒ๋ ํ์ํ ๋๋ง๋ค ๋ด ๋
ธํธ๋ถ์์ ํ์ด์ ํฌํธํฌ์๋ฉ ํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ํ์๋ค. ํด๋น ๋ฐฉ์์ ๋๋ฌด๋๋ ๋นํจ์จ์ ์ด์์ง๋ง, ๊ฐ์ฉํ ๋ฌผ๋ฆฌ ์๋ฒ๊ฐ ์์๊ณ ์ฌ์ค ํ๊ฒฝ์ ํ๋ ๋ ๊ตฌ์ถํ๋ค๋๊ฒ ๊ท์ฐฎ์ ์ ๋ ์์๋ค. ํ์ง๋ง ํ๊ณ๋ฅผ ๋๊ผ๊ณ , ์ด๋ฒ ๊ธฐํ์ ๊ฐ๋ฐ ์๋ฒ๋ฅผ AWS ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๊ตฌ์ถํด์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์๊ฒ IAM ๊ณ์ ์ ํ ๋นํ๊ณ ํ์ํ ๋๋ง๋ค ์๋ฒ๋ฅผ ๊ป๋ค ์ผค ์ ์๊ฒ ํ ์๊ฐ์ผ๋ก ๊ตฌ์ถํ๊ฒ ๋์๋ค. 2. ์ฌ์ฉํ AWS ์์ ์ ํ๊ธฐ 1. ํค์ค์คํฌ ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์
๊ณผ NGINX ์น์๋ฒ๋ฅผ ์ด์ ํ EC2 ์ธ์คํด์ค๊ฐ ๋จผ์ ํ์ํ๋ค. ํด๋น ์..
1. ๋ฌธ์ ์ํฉ Repository๋จ์์ Command์ Query๋ฅผ ๋ถ๋ฆฌํ์ฌ ์ฑ
์์ ๋ถ๋ฆฌํจ์ผ๋ก์จ ์ฝ๋ ์์ง๋์ ์ ์ง๋ณด์์ฑ์ ๋์ด๊ณ ์ ํ์๋ค. ์ด์ ์ฒ์ ์๋ํ๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค. Create, Update, Delete๋ฅผ ๋ด๋นํ CommandableRepo Interface์ Read๋ฅผ ๋ด๋นํ QueryableRepo Interface๋ก ๋๋์๋ค. ๊ตฌํ์ฒด๋ CommandRepo, QueryRepo๋ก ๊ตฌํํ๋ค. ํ์ง๋ง, ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค. ์ด๋ ํ ์ํฐํฐ๋ฅผ saveํด์ผ ํ๋ ์ํฉ์ ๊ฐ์ ํ ๋, ์ค๋ณต์กฐํ๋ ๋ค๋ฅธ ์กฐํ ๋ฉ์๋๋ฅผ ์ด์ฉํด์ผ ํ๋ ์ํฉ์ด ์ฃผ๋ก ๋ฐ์ํ๋ค. ์ด๋ด๋, Repository๋ฅผ ์ฌ์ฉํด์ผ ํ๋ Service ๊ณ์ธต์์ ์์กด์ฑ์ด ๋๋ฌด๋ ๋ง์์ง๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. 2. ๋ฌธ์ ํด๊ฒฐ ๊ณผ์ 1 - interf..