์นด์นด์ค, SK๋ฅผ ๊ฑฐ์ณ ๊ฐ๋ฐ์๋ก ์ผํ๋ฉฐ
์ค์ ์๋น์ค ํ๊ฒฝ์์ ๋ค์ํ ๋ฐฑ์๋ ์์คํ
์ ์ค๊ณํ๊ณ ์ด์ํด์์ต๋๋ค.
๊ทธ ๊ฐ ๊ฒช์๋ ์ํ์ฐฉ์ค์ ๊ณ ๋ฏผ๋ค์ด
์๊ฐ์ ์ฌ๋ฌ๋ถ์ ์๊ฐ๊ณผ ์ ํ์ ์กฐ๊ธ์ด๋ผ๋ ์๊ปด์ค ์ ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ๋ง์์ผ๋ก
์ง์๊ณต์ ์ฝํ
์ธ ๋ฅผ ๋ง๋ค๊ณ ์์ต๋๋ค.
์ฝํ
์ธ ์ ๋ํ ์๊ฒฌ์ด๋ ๊ฐ์ ์ ์ด ์๋ค๋ฉด
์๋ ๋ฉ์ผ๋ก ์ธ์ ๋ ํธํ๊ฒ ๋ง์ํด์ฃผ์ธ์.
์ฌ๋ฌ๋ถ์ ์์งํ ํผ๋๋ฐฑ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
apiece.dev.ai@gmail.com
Courses
Reviews
- Designing a Server System to Withstand Traffic Surges - Coupon Issuance Service
- Backend Design Basics for AI - SpringBoot SNS Edition
- Backend Design Basics for AI - SpringBoot SNS Edition
- Complete One Full Cycle of Backend Service with Spring Boot and AWS
- Backend Design Basics for AI - SpringBoot SNS Edition
Posts
Q&A
Jib ์ด๋ฏธ์ง ๋น๋์์ docker credential ๊ด๋ จ์ผ๋ก ์ด์๊ฐ ์๋ค๋ฉด
์๋ ํ์ธ์ Wyatt๋!์ ๋ฆฌ ๊ณต์ ๊ฐ์ฌํฉ๋๋ค ๐๐๋ค๋ง ์์ธ๋ง ์กฐ๊ธ ๋ค์ ์๊ฐํด๋ณด์๋ฉด, ์ฐ์ ์ด ๊ฐ์ ์ค์ ์์๋ ์ธ์ฆ์ ๋ณด๊ฐ ํ์ ์์ต๋๋ค. base image๋ public์ด๊ณ , jibDockerBuild๋ push๋ฅผ ์ ํ๋๊น์. ์ฆ ํค์ฒด์ธ์์ ๋ชป ๊ฐ์ ธ์์ ์คํจํ๋ ๊ฒ ์๋๋๋ค.์์ธ์ helper ๋ฐ์ด๋๋ฆฌ๊ฐ Gradle ๋ฐ๋ชฌ์ PATH์ ์๋ ๊ฒ์ผ ์ ์์ต๋๋ค. Jib์ config.json์ credsStore๊ฐ ์์ผ๋ฉด public ์ด๋ฏธ์ง๋ผ๋ ์ผ๋จ helper๋ฅผ ์คํํด์ ๋ฌผ์ด๋ด ๋๋ค. ์ด๋ helper ์คํ ์์ฒด๋ฅผ ๋ชป ํ๋ฉด ์์ธ๊ฐ ๋๋ฉด์ ๋น๋๊ฐ ์ค๋จ๋๋๋ฐ์.๊ทธ๋์ ๋จผ์ ์๋ ๋ช ๋ น์ ์งํํด๋ณด์ธ์../gradlew --stop ./gradlew jibDockerBuildIntelliJ์์ ๋จผ์ ๋น๋ํ๋ฉด ๋ฐ๋ชฌ์ด IDE์ PATH๋ฅผ ์บ์ํด๋๊ณ ๊ณ์ ์ฌ์ฌ์ฉํฉ๋๋ค. ์ด๊ฑธ๋ก ํ๋ฆฌ๋ฉด build.gradle.kts๋ ์ ๊ฑด๋๋ฆฌ์ ๋ ๋ฉ๋๋ค.๊ทธ๋๋ ์ ๋๋ฉด ์กฐ์ฌํด์ฃผ์ ๋ฐฉ๋ฒ 1์ ์ฐ์๋ฉด ์ข์ ๊ฒ ๊ฐ์์.์ฐธ๊ณ ๋ก helper ๋ฐ์ด๋๋ฆฌ๋ Docker Desktop ์ค์น ์ ํจ๊ป ๊น๋ฆฌ๊ตฌ์. ์ต๊ทผ Docker Desktop์ credsStore๊ฐ osxkeychain์ด ์๋๋ผ desktop๋ผ์ ํ์ธํด๋ณด์๊ณ ๋ง์ถฐ ์ง์ ํด์ฃผ์๋ฉด ์ข์ต๋๋ค!์ข์ ๊ณต์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
- Likes
- 1
- Comments
- 1
- Viewcount
- 25
Q&A
์คํฌ๋ฆฝํธ์ ๋ํด ์ง๋ฌธ ์์ต๋๋ค.
์๋ ํ์ธ์. ์ธํธ๋! ์ข์์ง๋ฌธ ๊ฐ์ฌํฉ๋๋ค.ํ ์คํธ ์ฝ๋๋ก๋ ๊ฐ๋ฅํฉ๋๋ค. ์คํฌ๋ฆฝํธ๋ก ํ ์ ์๋ ๊ฑด ๋ณดํต ์ฝ๋๋ก๋ ํ ์ ์์ด์.๊ฐ์์์ ์ฒ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋์ ํ ์ด์ ๋, k6 ๊ฐ์ ํด์ ํตํด ๋ถํํ ์คํธ๋ฅผ ํธํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํจ์ด์์ด์. k6์ฉ js ํ์ผ์ด ํ์ํ๋, ์์ฐ์ค๋ฝ๊ฒ ์คํฌ๋ฆฝํธ ํด๋๋ฅผ ๋ง๋ค์๊ณ ํ ์คํธ์ ํ์ํ ์ค๋น๋ ์คํฌ๋ฆฝํธ๋ก ๊ฐ์ด ์ค๋นํ์ต๋๋ค.์ค๋ฌด์์๋ ๋จ์ ๋ฐ ํตํฉ ๊ฒ์ฆ์ ํ ์คํธ ์ฝ๋๋ก ์์ฑํ๊ณ , ๋๋ ์์ฒญ์ด๋ ๋์์ฑ ๊ฒ์ฆ์ k6 ๊ฐ์ ๋ถํ ํ ์คํธ ๋๊ตฌ๋ฅผ ํ์ฉํฉ๋๋ค. (๋ฌผ๋ก ํ๋ง๋ค ๋ค๋ฅด๊ณ ์ฃผ๊ด์ ์ผ ์ ์์ต๋๋ค)๊ฐ์์์๋ ๋ถํํ ์คํธ์ ๋๋ถ์ด ์ฅ์ ๋ฐ์๊ณผ ๋ฐ์ดํฐ ์ ํฉ์ฑ ํ์ธ๊น์ง ํ ๋ฌถ์์ผ๋ก ๋ง๋ค๊ธฐ ์ํด ๋ณ๋ ์คํฌ๋ฆฝํธ๊ฐ ์ ํฉํ๋ค๊ณ ํ๋จํด์ ์ฌ์ฉํ๋ค๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- Likes
- 1
- Comments
- 1
- Viewcount
- 13
Q&A
๊ฐ์ ์ฌ์ฉ์๊ฐ ์ฐ์๋ ์ค๋ณต ํธ์ถํ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋๋์ง ๊ถ๊ธํฉ๋๋ค!
์๋ ํ์ธ์! ์ผ์๋,๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด ๊ทธ ์์ ์ฝ๋์์๋ Redis ์ฌ๊ณ ๊ฐ 2์ฅ ์ค์ด๋ค๊ฒ๋ฉ๋๋ค. (1์ฅ๋ง ์ค์ด์ผ ํ๋๋ฐ)๋ค๋ง, ํ์ฌ ๊ฐ์ ์์ (์น์ 3, ๋ธ๋์น๋ part-2)์์๋ ๊ทธ๋ ์ต๋๋ค.๋ฐ๋ก ๋ค์ ๊ฐ์ (์น์ 4, 27๊ฐ, ์์ฒญ์ด ๋ชฐ๋ฆฌ๋ฉด API๊ฐ ๋๋ ค์ง๋ ์ง์ง ์ด์ )์์ ์์ ํ์ค ๋, ์ด ๋ถ๋ถ์ด ํด๊ฒฐ๋ฉ๋๋ค.(part-2 Redis Lua) 1. ๋จ์ ์ฌ๊ณ ๋ฅผ ์ฝ๋๋ค 2. 0์ด๋ฉด ๋งค์ง์ผ๋ก ๋ฐํํ๋ค 3. ์ฌ๊ณ ๋ฅผ 1 ๊น๋๋ค (part-3์ Redis Lua) 1. ์ด ์ฌ์ฉ์๊ฐ ๋ฐ๊ธ๋ฐ์ ์ฌ์ฉ์ ๋ชฉ๋ก(Set)์ ์ด๋ฏธ ์๋์ง ๋ณธ๋ค. ์์ผ๋ฉด ์ฌ๊ธฐ์ ๋ฐ๋ก ์ค๋ณต์ผ๋ก ๋ฆฌํด 2. ๋จ์ ์ฌ๊ณ ๋ฅผ ์ฝ๋๋ค 3. 0์ด๋ฉด ๋งค์ง์ผ๋ก ๋ฐํํ๋ค 4. ์ฌ๊ณ ๋ฅผ 1 ๊น๋๋ค 5. ์ด ์ฌ์ฉ์๋ฅผ ๋ฐ๊ธ๋ฐ์ ์ฌ์ฉ์ ๋ชฉ๋ก์ ๋ฃ๋๋คpart-3 ์์๋ Redis ์์์ฐ์ฐ์์ ์คํฌ๋ฆฝํธ ํ๋๊ฐ ํต์งธ๋ก ์คํ๋๊ณ , ๊ทธ ์ฌ์ด ๋ค๋ฅธ ์์ฒญ์ด ๋ผ์ด๋ค ์ ์์ต๋๋ค. ๊ทธ๋์ ๋ ๋ฒ์งธ ์์ฒญ์ 1๋ฒ์์ ๊ฑธ๋ฌ์ ธ ์ฌ๊ณ ์ฐจ๊ฐ์ ์์ ํ์ง ์์ต๋๋ค.์ฃ์ง์ผ์ด์ค๋ฅผ ์ ์๊ฐํด์ ๋ง์ํด์ฃผ์ จ๋ค์!์ข์ ์ง๋ฌธ๊ฐ์ฌํฉ๋๋ค.
- Likes
- 1
- Comments
- 1
- Viewcount
- 12
Q&A
aws ๊ด๋ จ ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์! ์ง์ฑ์กฐ๋.ํ๋ฆฌํฐ์ด EC2๋ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ์ด์ ์ด๋ฐ ํ์์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ถ๊ฐํ ๋ค ์กฐ๊ธ ๋์์ก๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ด ์์ธ์ด์์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ถ์กฑํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ณด์ถฉํด ์ง๊ธ์ฒ๋ผ ์งํํด๋ณด์๊ณ , ๊ทธ๋๋ ๊ณ์ ๊ฐ์ ์ฆ์์ด ์๋ค๋ฉด free -h์ top์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ๋ฐ CPU ์ฌ์ฉ๋์ ํ ๋ฒ ํ์ธํด ๋ณด์๊ณ , ์ ํฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ จ์๋ ํ๋ก์ธ์ค๋ ์ ๊ฑฐํด์ฃผ์๋ฉด ๋์์ด ๋ฉ๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- Likes
- 1
- Comments
- 3
- Viewcount
- 61
Q&A
twitterdb ์ฐ๊ฒฐ์ด ์๋ผ์
์๋ ํ์ธ์ weogle๋!docker ์์ MySQL ์ด ์คํ์ค์ธ์ง ํ์ธ๋ถํ๋๋ฆฝ๋๋ค. ์๋ ๋ช ๋ น์ด๋ก ํ์ธํ ์ ์์ด์.docker psMySQL (mysql-twitter) ์ปจํ ์ด๋๊ฐ ๋ ์์ด์ผ ํ๊ณ , 3306 ํฌํธ๊ฐ ์ด๋ ค์์ด์ผ ํฉ๋๋ค.์ ๋ ์๋ค๋ฉด ๊ทธ ํ spring boot ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ฉด ์ ์คํ์ด ๋ ๊ฒ๋๋ค.docker run --name mysql-twitter \ -e MYSQL_ROOT_PASSWORD=root123 \ -e MYSQL_DATABASE=twitterdb \ -e MYSQL_USER=dev \ -e MYSQL_PASSWORD=dev123 \ -p 3306:3306 \ -d mysql:9.3์ ๋ช ๋ น์ด๋ก ๋์ปค ์ปจํ ์ด๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.โบ๏ธ
- Likes
- 1
- Comments
- 2
- Viewcount
- 51
Q&A
JPA Repository ์ง๋ฌธ์ด ์์ต๋๋ค!
์๋ ํ์ธ์ Aurora ๋JpaPostRepository ์ findAllPaged ๋ฉ์๋๋ง ์ฌ์ ์ํ ์ด์ ๋, PostRepository ์ ์๋ save, findAll, findById, deleteById ๋ JpaRepository ์ ๊ธฐ๋ณธ ๊ตฌํ์ฒด๊ฐ ์ด ๋ฉ์๋๋ฅผ ์ง์ํ๋ ๋ฐ๋ฉด, findAllPaged ๋ ๊ทธ๋ ์ง ์๊ธฐ ๋๋ฌธ์ ์ฌ์ ์ํ์ต๋๋ค.์ฆ, PostRepository ๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๊ณ ์ถ์๋ฐ, JpaRepository ์ ๊ธฐ๋ฅ ์ถ๊ฐํ์ฌ ์ฌ์ฉํ๊ณ ์ถ์ด์ JpaPostRepository ๋ผ๋ ์ค๊ฐ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ ํํ์ ๋๋ค.PostRepositoryImpl ๊ฐ์ ๊ตฌํ์ฒด๋ฅผ ์ง์ ๋ง๋ค์ด์ ์ฌ์ฉํ์ ๋ ๋ฉ๋๋ค. ๋ค๋ง ๊ฐ์์๋๋ ์์์ ๋ง์๋๋ฆฐ ๊ฒ์ฒ๋ผ Spring Data Jpa ๊ฐ ์ง์ํ๋ JpaRepository ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํจ์ด ํฌ๋ค๊ณ ์๊ฐํด์ฃผ์๋ฉด ๋ฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- Likes
- 1
- Comments
- 2
- Viewcount
- 82
Q&A
ํ์ด์ง๋ค์ด์ ์ฒ๋ฆฌ๋ฅผ ์ฟผ๋ฆฌ์์ ํ๋ ๋ฐฉ์ ์ง๋ฌธ
์๋ ํ์ธ์ Aurora ๋.์น์ 2์ 'Query String ๊ณผ ํจ๊ป Pagination ํด๋ณด๊ธฐ' ๋ถ๋ถ์์๋ ๋ฉ๋ชจ๋ฆฌ์ posts ๋ฅผ ์ ์ฅํด๋๊ณ , ํ์ด์ง๋ค์ด์ ์กฐํ๋ฅผ ํ๊ณ ์์ต๋๋ค.๋ค ๋ง์ํ์ ๋ถ๋ถ์ฒ๋ผ DB ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค๋ฉด ํ์ด์ง ์ฟผ๋ฆฌ๋ฅผ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค. ์น์ 6์์ ๋ค๋ฃจ๊ณ ์์ผ๋ ํ์ธํด๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค ๊ฐ์ฌํฉ๋๋ค!
- Likes
- 1
- Comments
- 1
- Viewcount
- 66
Q&A
EC2 ์ค์ต ์ค docker-compose / docker ps ์คํ ์ ๊ถํ ์ค๋ฅ ๋ฌธ์
์๋ ํ์ธ์! khs1003k ๋. ํด๋น ์ค๋ฅ๋ ๋ง์ํ์ ๋๋ก ec2-user ๊ณ์ ์ด Docker ๊ถํ์ด ์์ด์ ๋ฐ์ํฉ๋๋ค. Docker๋ root ๋๋ docker ๊ทธ๋ฃน ์ฌ์ฉ์๋ง ์ ๊ทผํ ์ ์์ต๋๋ค.ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ง์ sudo ์ฌ์ฉํด์ ๋ช ๋ นํ์๊ฑฐ๋ (์ง๋ฌธ์๋ ํ์ ๊ฒ์ฒ๋ผ)๋๋ ec2-user ๊ณ์ ์ docker ๊ทธ๋ฃน ์ฌ์ฉ์๋ก ๋ง๋์๋ฉด ๋ฉ๋๋ค.# ํ์ฌ ์ฌ์ฉ์(ec2-user)๋ฅผ docker ๊ทธ๋ฃน์ ์ถ๊ฐ (sudo ์์ด ๊ฐ๋ฅํ๊ฒ) sudo usermod -aG docker ec2-user # ๋ฐ์์ ์ํด ๋ก๊ทธ์์ ํ ๋ค์ ๋ก๊ทธ์ธ ํ๊ฑฐ๋ ์๋๋ช ๋ น์ด ์คํ newgrp docker์ ํ๊ฒฝ์ docker ๊ทธ๋ฃน ์ค์ ์ด ๋์ด ์์๋ ๊ฒฝ์ฐ์ด๊ณ , ํ์ฌ์ฒ๋ผ sudo๋ฅผ ๊ณ์ ์ฌ์ฉํ๋ ๊ฒ๋ ๊ฐ๋ฅํ์ง๋ง ๊ทธ๋ฃน์ ์ถ๊ฐํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ํธ๋ฆฌํ ์ ์์ต๋๋ค. AWS EC2 ์๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌํ๊ธฐ - 00:46์ด ๋ถ๋ถ์ ์๋ ๊ฐ์์๋ฃ ๋ด์ฉ ํ๋ฒ ํ์ธ๋ณด์๋ฉด ์ข์๊ฒ๊ฐ์ต๋๋ค ๊ฐ์ฌํฉ๋๋ค.
- Likes
- 2
- Comments
- 1
- Viewcount
- 124
Q&A
gradlew, java -jar ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ํค๊ธฐ์์
์๋ ํ์ธ์ khs1003k ๋! ์ธ๋ฉ๋ชจ๋ฆฌ๋ก ํด์ ์ธ๋ถ ์์กด์ฑ์์ด ๊ฐ๋ณ๊ฒ java ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ณ ์ ํ๋ ์๋์์ต๋๋ค.์ด์ ์ฑํฐ ๊ฐ์์์ mysql ์ ๋ฏธ๋ฆฌ ์ ์ค์ ํด๋์ผ์ จ๋ค๋ฉด, mysql ์ ์ฐ๊ฒฐํ์ฌ์ java ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ์ ๋ ๋ฉ๋๋ค. ์ง๋ฌธ ๊ฐ์ฌํฉ๋๋ค!์ข์ํ๋ฃจ ๋ณด๋ด์ธ์.
- Likes
- 1
- Comments
- 1
- Viewcount
- 76
Q&A
application.yaml์์ enabled: true ์ธ์ ์๋จ
์๋ ํ์ธ์! ์ง๋ฌธ์๋ ๊ทธ๋ฆฌ๊ณ , ๋ฐฐ์์ง๋ ๊ฐ์ฌํฉ๋๋ค.์ ๋ Spring Boot 4.0.0 ์์ ๋์ผํ ํ์์ ๊ฒฝํํ์ต๋๋ค.spring.h2.console.enabled์ ๋ ธ๋ ๋ฐ์ค์ด ๋จ๊ณ ์ธ์๋์ง ์๋ ์ด์ ๋, Spring Boot 4.0๋ถํฐ ์๋ ์ค์ (auto-configuration)์ด ๋ชจ๋๋ณ๋ก ๋ถ๋ฆฌ๋๋ฉด์ H2 Console ๊ด๋ จ ์ค์ ์ด ๋ณ๋ ๋ชจ๋๋ก ๋น ์ก๊ธฐ ๋๋ฌธ์ ๋๋ค.์คํ๋ง๋ถํธ ๊ธฐ์กด(3.x)์๋ runtimeOnly("com.h2database:h2") ์์กด์ฑ๋ง ์ถ๊ฐํ๋ฉด H2 Console์ด ์๋ ์ค์ ๋์์ง๋ง, 4.0๋ถํฐ๋ implementation("org.springframework.boot:spring-boot-h2console") ๋ชจ๋์ ๋ช ์์ ์ผ๋ก ์ถ๊ฐํด์ผ ํฉ๋๋ค. build.gradle.ktsimplementation("org.springframework.boot:spring-boot-h2console") ์ด ์์กด์ฑ์ ์ถ๊ฐํ๋ฉด spring.h2.console.enabled ์์ฑ์ด ์ ์ ์ธ์๋๊ณ , /h2-console ๊ฒฝ๋ก๋ก ์ ์ํ ์ ์์ต๋๋ค.runtimeOnly("com.h2database:h2") ๋ ์ ์์กด์ฑ์์ ์๊ธฐ ๋๋ฌธ์ ๋ณ๋ ์ถ๊ฐํ์ง ์์ผ์ ๋ ๋ฉ๋๋ค. ๊ณต์ ๋ฌธ์ ์ฐธ๊ณ : https://docs.spring.io/spring-boot/reference/data/sql.html#data.sql.h2-web-console ์ง๋ฌธ์๋ถ ๊ทธ๋ฆฌ๊ณ , ๊ด์ฌ์ ๊ฐ์ง๊ณ ์ถ๊ฐ ๋ต๋ณํด์ฃผ์ ๋ถ ๋ชจ๋ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
- Likes
- 3
- Comments
- 4
- Viewcount
- 181




