BackEnd๐ฑ109 AWS VPC๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์์์ผ ํ ๋คํธ์ํฌ ๊ธฐ์ด ์ง์ ๊ฐ์AWS๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๋ค๋ฅธ ์ธํ๋ผ ๊ตฌ์กฐ๋ฅผ ๋ง์ด ์ดํด๋ณด๋ค ๋ณด๋ฉด VPC(Virtual Private Cloud) ๊ตฌ์กฐ๋ฅผ ์์ฃผ ์ ํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฌํ VPC ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ธฐ ์ํด์๋ ๋คํธ์ํฌ ๊ธฐ์ด ์ง์์ด ๊ฝค ๋ง์ด ํ์ํ๋ฐ์, ์ด๋ฒ ๊ฒ์๊ธ์์๋ AWS๋ฅผ ์ฌ์ฉํ ๋ VPC์ ๊ฐ๋ ๊ณผ ๊ด๋ จ ์ฉ์ด๋ค์ ๋ํด ์์ธํ ํ๋ฒ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ด๋ฒ ๊ฒ์๊ธ์ ์๋ ํ๊ณ ๋๋ฉด ์๋ ์ด๋ฏธ์ง์ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ์ดํดํ ์ ์์ต๋๋ค.ย ย Amazon VPC(Virtual Private Cloud)๋ ๋ฌด์์ผ๊น?Amazon VPC๋ ์ฌ์ฉ์๊ฐ ์ ์ํ๋ AWS ๊ณ์ ์ ์ฉ์ ๊ฐ์ ๋คํธ์ํฌ์ ๋๋ค. ์ฌ์ฉ์๋ VPC ๋ด์์ IP ์ฃผ์ ๋ฒ์ ์ ํ, ์๋ธ๋ท ์์ฑ, ๋ผ์ฐํ ํ ์ด๋ธ ๋ฐ ๋คํธ์ํฌ ๊ฒ์ดํธ์จ์ด ๊ตฌ์ฑ ๋ฑ ๊ฐ์ ๋คํธ์ํฌ ํ๊ฒฝ์ ์ง์ ๊ตฌ์ฑํ .. 2024. 4. 24. select .. for update ๋์ ์ ๋ฌด์ ๋ฐ๋ฅธ ์ ๊ธ ์ํ ๊ฐ์ InnoDB ์์ง์ ๊ธฐ๋ณธ์ ์ผ๋ก DDL ์ฟผ๋ฆฌ๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฐ์ดํฐ ์กฐ์ ์์ ์์ ํ ์ด๋ธ ๋ฝ์ ์ฌ์ฉํ์ง ์๊ณ ๋ ์ฝ๋ ๊ธฐ๋ฐ์ ์ ๊ธ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค. ๋ ์์ธํ๋ ๋ ์ฝ๋ ์์ฒด๋ณด๋ค๋ ์ธ๋ฑ์ค์ ์ ๊ธ์ ์ค์ ํ์ฌ ์ด๋ฃจ์ด์ง๋ฉฐ, ํ ์ด๋ธ์ ๋ช ์์ ์ธ ์ธ๋ฑ์ค๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ๋ด๋ถ์ ์ผ๋ก ์์ฑ๋ ํด๋ฌ์คํฐ ์ธ๋ฑ์ค๋ฅผ ํตํด ์ ๊ธ์ด ์ด๋ฃจ์ด์ง๋๋ค. ๊ทธ๋ฆฌ๊ณ Repetable-Read ๊ฒฉ๋ฆฌ ์์ค์์ InnoDB๋ record lock๊ณผ gap lock์ ๊ฒฐํฉํ Next-key lock์ ํ์ฉํ์ฌ Phantom Read๋ฅผ ๋ฐฉ์งํฉ๋๋ค. ์กฐ๊ฑด์ ๋ถํฉํ๋ ํน์ ํ์ ์ฐพ๊ธฐ ์ํด ์ธ๋ฑ์ค๋ฅผ ์ค์บํ๋ ๊ณผ์ ์์, InnoDB๋ ํด๋น ์ธ๋ฑ์ค ๋ ์ฝ๋๋ฟ๋ง ์๋๋ผ ๊ทธ ์ด์ ๊ณต๊ฐ์๋ ์ ๊ธ์ ์ค์ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ฒซ ๋ฒ์งธ ๋ฐ๊ฒฌ๋ ๋ ์ฝ๋์ ์ฟผ๋ฆฌ๊ฐ ์ ์ํ ๋ฒ์ ๋ด์ .. 2024. 4. 11. Datadog ์๋ฒ ๋ชจ๋ํฐ๋ง ์ดํด๋ณด๊ธฐ ์ด๋ฏธ์ง๋ฅผ ํด๋ฆญํ๋ฉด ํฐ ํ๋ฉด์์ ๋์ฑ ์์ธํ๊ฒ ํ์ธํ ์ ์์ต๋๋ค. Logs ๋จผ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ก๊ทธ ํ์ธ์ ๋๋ค. ์ข์ธก ๋ฉ๋ด์์ Logs๋ฅผ ์ ํํ๋ฉด Datadog๊ณผ ์ฐ๋๋ ๋ชจ๋ ์๋น์ค์ ๋ก๊ทธ๋ฅผ ํ๋์ ๋ณผ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ํ๋ ํน์ ์๋น์ค๋ฅผ ์ ํํ์ฌ ๊ทธ ์๋น์ค์ ๋ก๊ทธ๋ง์ ์์ธํ๊ฒ ์กฐํํ ์๋ ์์ต๋๋ค. ๋ก๊ทธ ํญ๋ชฉ์ ํด๋ฆญํ๋ฉด ํด๋น ๋ก๊ทธ์ ๋ํ ๋ ์์ธํ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ Trace์ Metrics ๊ธฐ๋ฅ์ด ๋งค์ฐ ์ ์ฉํ๋ฐ, ๋ก๊ทธ๊ฐ ์์ฑ๋๊ธฐ๊น์ง์ ๊ฒฝ๋ก์ ๋ก๊ทธ ๋ฐ์ ์์ ์ CPU ์ฌ์ฉ๋, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, ๋์คํฌ I/O ๋ฑ์ ์ค์ํ ๋ฉํธ๋ฆญ์ ์์ธํ๊ฒ ํ์ ํ ์ ์์ต๋๋ค(Trace์ Metrics ํ๋ฉด์ ์๋์์ ๋์ฌ ํ๋ฉด๊ณผ ๋์ผํ๊ธฐ์ ์๋์์ ์ดํด๋ณด๊ฒ ์ต๋๋ค). APM APM(Application.. 2024. 4. 1. ์ํคํ ์ฒ ๊ด์ ์์ ๋์ด๋๋ ํธ๋ํฝ ๋์ํ๊ธฐ ๊ฐ์์ํคํ ์ฒ์ ๊ด์ ์์ ๋์ด๋๋ ํธ๋ํฝ์ ์ด๋ป๊ฒ ๋์ํ๋ฉด ์ข์์ง์ ๋ํด ํ๋ฆ์ ๋ฐ๋ผ ์์ฑํ์ต๋๋ค. ํผ๋๋ฐฑ์ ์ธ์ ๋ ํ์์ด๋ฉฐ ๋๊ธ ๋จ๊ฒจ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.ย ํ๋์ ์ธ์คํด์ค๋จผ์ ๊ฐ์ฅ ๊ฐ๋จํ ๊ตฌ์ฑ์ ๋๋ค. ๋ชจ๋ ํธ๋ํฝ์ด ํ ๋์ ์๋ฒ๋ฅผ ํตํด ๊ด๋ฆฌ๋๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ EC2์ IP๊ฐ ์ ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด Elastic IP๋ฅผ ์ฐ๊ฒฐ์์ผ ๋์์ต๋๋ค.๊ทธ๋ฌ๋ ์๊ฐ์ด ์ง๋๋ฉด์ ์ฌ์ฉ์ ์๊ฐ ์ฆ๊ฐํ๊ณ , ์ด์ ๋ฐ๋ผ ์๋ฒ๋ก์ ํธ๋ํฝ๋ ๋์ด๋๊ธฐ ์์ํ์ต๋๋ค. ์ด๋ก ์ธํด EC2 ์ธ์คํด์ค์ CPU ์ฌ์ฉ๋ฅ ์ด ์ฆ๊ฐํ์ฌ ๋จ์ผ EC2 ์ธ์คํด์ค๋ก๋ ์ฆ๊ฐํ๋ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋๋ฐ ํ๊ณ๊ฐ ์๊ธฐ๊ธฐ ์์ํ์ต๋๋ค. ์ด ์์ ์์ ๊ณ ๋ คํ ์ ์๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํด๊ฒฐ ๋ฐฉ์์ EC2์ ์ธ์คํด์ค ์ฌ์์ ์ ๊ทธ๋ ์ด๋ํ๋ Scale-.. 2024. 3. 24. ๋ด๊ฐ ์ฐ๋ IntelliJ ์ ์ฉํ ๊ธฐ๋ฅ๋ค 1. Global Data Sources ์ธํ ๋ฆฌ์ ์ด๋ฅผ ์ฌ์ฉํ ๋, ๊ฐ ํ๋ก์ ํธ๋ง๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB) ์ฐ๊ฒฐ์ ์ค์ ํด ์ธํ ๋ฆฌ์ ์ด ๋ด์์ ์ง์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ๋ง์ฝ ๋ชจ๋ ํ๋ก์ ํธ์ ๊ฑธ์ณ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์ถ์ DB ์ฐ๊ฒฐ์ด ์๋ค๋ฉด, ํด๋น ์ฐ๊ฒฐ์ Make Global๋ก ์ค์ ํจ์ผ๋ก์จ ๋ค๋ฅธ ํ๋ก์ ํธ๋ฅผ ์ด์ด๋ ํด๋น DB ์ฐ๊ฒฐ ์ค์ ์ ์ ์งํ ์ ์์ต๋๋ค. 2. Shelve ์์ ์ค์ธ ๋ธ๋ ์น์์ ๋ค๋ฅธ ๋ธ๋์น๋ก ์ ํํ ํ์๊ฐ ์์ ๋, ์ผ๋ฐ์ ์ผ๋ก๋ git stash๋ฅผ ์ฌ์ฉํด ๋ณ๊ฒฝ ์ฌํญ์ ์์๋ก ์ ์ฅํ ํ ์ด๋ํฉ๋๋ค. ํ์ง๋ง ์ธํ ๋ฆฌ์ ์ด๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์ด์ ์ ์ฌํ ๊ธฐ๋ฅ์ธ Shelve๋ฅผ ํตํด ์ปค๋ฐํ์ง ์์ ์ฝ๋๋ฅผ ์์๋ก ์ ์ฅํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ํตํด ํ์ฌ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ธํ ๋ฆฌ์ ์ด ๋ด๋ถ์ ๋ณด๊ดํ๊ณ , ํ์ํ ๋ ์ธ์ ๋ .. 2024. 3. 20. ThreadPoolExecutor ๋์์ ๊ดํ ์คํด ๊ฐ์ Java์์ ์ค๋ ๋ํ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ThreadPoolExecutor, ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ๋์ฑ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก Spring์์ ์ ๊ณตํ๋ ThreadPoolTaskExecutor์ ๋์ ๋ฐฉ์์ ๊ดํด ์ ๊ฐ ๊ทธ๋์ ์๋ชป ์ดํดํ๊ณ ์์๋ ๋ ๊ฐ์ง์ ์คํด๋ฅผ ์ ๋ฆฌํ๊ณ ์ ๊ธ์ ์์ฑํ๊ฒ ๋์์ต๋๋ค. ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ณ๋์ ์ค์ ์ ํ์ง ์์ผ๋ฉด ์๋ฒ ์คํ ์์ ์ง์ ํ ์ค๋ ๋ ํ ํฌ๊ธฐ๋งํผ ์ค๋ ๋๊ฐ ์๋์ผ๋ก ์์ฑ๋์ง ์๋๋ค. corePoolSize์ maxPoolSize๋ ์๋ก ์๊ด์๋ค. ํ์ ํฌ๊ธฐ๋ฅผ ์ง์ ํด์ฃผ์ง ์์ผ๋ฉด maxPoolSize์ ์ฌ์ค์ ์๋ฏธ ์๋ ์ค์ ์ด๋ค. corePoolSizeํฌ๊ธฐ ์ด์์ ์์ฒญ์ด ๋ค์ด์จ๋ค๊ณ ํด์ maxPoolSize๋งํผ ์ค๋ ๋๋ฅผ ์์ฑํ์ง ์๋๋ค. https:.. 2024. 3. 11. [Kafka] ์ปจ์๋จธ ์คํ์ ์๋์ผ๋ก ์ปค๋ฐํ๊ธฐ ๊ฐ์ ๋ฉ์์ง ์์ค์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฉ์์ง ์ฒ๋ฆฌ๊ฐ ๋ฌธ์ ์์ด ์๋ฃ๋์์ ๊ฒฝ์ฐ์๋ง commit์ ์ํํ๋๋ก, ์ปจ์๋จธ์ offset commit์ ์๋์ผ๋ก ์ค์ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ฌ๋ฌ ์กด์ฌํฉ๋๋ค. ํ์ง๋ง ๋จ์ํ auto.offset.commit๋ง false๋ก ์ง์ ํ๋ ๊ฒฝ์ฐ์๋ ์ํ๋ ๋ฐฉํฅ์ผ๋ก ๋์ํ์ง ์์ ์๋ ์์ต๋๋ค. ์ด๋ฒ ๊ฒ์๊ธ์์๋ ์๋ ์ปค๋ฐ์ ๋์ ๊ณผ์ ๊ณผ ์ฃผ์์ , ๊ทธ๋ฆฌ๊ณ ์ปค๋ฐ์ ์๋์ผ๋ก ์ ์ดํ๊ธฐ ์ํ auto.offset.commit ์ค์ ๊ณผ ack-mode ์ค์ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. auto.offset.commit Kafka์ ์ปจ์๋จธ๋ ์ฝ์ ๋ฉ์์ง์ ์์น๋ฅผ ์ถ์ ํ๊ธฐ ์ํด offset์ commit ํ๋ ์ญํ ์ ๋ด๋นํฉ๋๋ค. ์ด offset์ Kafka์ ๋ด๋ถ ํ ํฝ์ธ __consumer_offsets์ ์ ์ฅ๋.. 2024. 3. 6. ์ธ๋ถ API๋ฅผ ์ฐ๋ํ ๋ ๊ณ ๋ คํ๋ฉด ์ข์ ์ ๋ค ๊ฐ์ ์ต๊ทผ ํ๋ก์ ํธ์์ ์ธ๋ถ API๋ฅผ ์ฐ๋ํ๋ ์ผ์ด ๊ต์ฅํ ๋ง์์๋๋ฐ, ์์ ํ๋ฉด์ ์ป์ ๋ค์ํ ๊ฒฝํ๊ณผ ์ง์์ ๊ณต์ ํ๊ณ ์ ์์ฑํ๊ฒ ๋์์ต๋๋ค. ํผ๋๋ฐฑ์ ์ธ์ ๋ ํ์์ด๋ฉฐ ๋๊ธ ๋จ๊ฒจ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. 1. I/O์ ํธ๋์ญ์ ์ ๋ถ๋ฆฌํด๋ผ ํธ๋์ญ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ ํ๊ธฐ ์ํด ์ปค๋ฅ์ ์ ํ์๋ก ํ๋ค. ํ์ง๋ง ์ด ์ปค๋ฅ์ ์ ์์ฑํ๋ ๋ฐ๋ ๊ฝค ๋ง์ ๋น์ฉ์ด ๋ค๋ฉฐ, ๋๋ถ๋ถ ์ด๋ฅผ ์ ์ฝํ๊ธฐ ์ํด ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ(WAS)๋ ์คํ ์ ๋ฏธ๋ฆฌ ์ผ์ ์์ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ํ์ ์ ์ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ๋ฐ์ํ๋ฉด ์ด ํ์์ ์ด๋ฏธ ์์ฑ๋์ด ์๋ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ด์ฉํ๋ค. ๊ทธ๋ฌ๋ ์ปค๋ฅ์ ํ์ ํฌ๊ธฐ๋ ์ ํ๋์ด ์๊ธฐ ๋๋ฌธ์, ๋์์ ์๋ง์ ์์ฒญ๋ค์ด ์ปค๋ฅ์ ํ์ ๊ฐ์ ์ด์์ผ๋ก ์ค๊ฒ ๋๋ค๋ฉด, ์ปค๋ฅ์ ์ ํ๋ํ์ง.. 2024. 2. 24. [Kafka] ํ๋ก๋์ ๋ฉฑ๋ฑ์ฑ ๋ณด์ฅํ๊ธฐ ๊ฐ์ ๋ฉฑ๋ฑ์ฑ์ ๋์ผํ ์์ ์ ์ฌ๋ฌ ๋ฒ ์ํํ๋๋ผ๋ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋๋ ํน์ฑ์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ๋ฉฑ๋ฑ์ฑ์ ์ง๋ ํ๋ก๋์๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ฒ ์ ์กํ๋๋ผ๋ ํด๋น ๋ฐ์ดํฐ๊ฐ ์นดํ์นด ํด๋ฌ์คํฐ์ ๋จ ํ ๋ฒ๋ง ์ ์ฅ๋๋๋ก ๋ณด์ฅํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ํ๋ก๋์์ ์ด๋ป๊ฒ ๋ฉฑ๋ฑ์ฑ์ ์ ์ฉํ๊ณ , ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ค๋ณต ์ ์ฅ ์์ด ์ ํํ ํ ๋ฒ๋ง ์ ์ฅ๋๋๋ก ๋ณด์ฅํ ์ ์์๊น์? ์ด๋ฒ ๊ธ์์๋ ํ๋ก๋์์ ๋ฉฑ๋ฑ์ฑ์ ๋ณด์ฅํ๋๋ก ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ๊ฒ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฉ์์ง ์ ์ก ๋ฐฉ์ Producer์ Broker์ ์ค์ ๋ฐ ๊ตฌ์ฑ์ ๋ฐ๋ผ Kafka์์๋ ๋ฉ์์ง ์ ๋ฌ ๋ณด์ฅ ์์ค์ ์๋์ ๊ฐ์ด ์ธ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๊ตฌ๋ถํฉ๋๋ค. ์ต๋ ํ ๋ฒ (At most once): ๋ฉ์์ง๊ฐ ํ ๋ฒ๋ง ์ ์ก๋๋ฉฐ, ์ฌ์ ์ก์ ๋ฐ์ํ์ง ์๋๋ค. ๊ทธ.. 2024. 2. 1. ์ด์ 1 2 3 4 ยทยทยท 13 ๋ค์