BackEnd๐ฑ116 ๋๋ฉ์ธ ์ํฐํฐ์ ์์์ฑ ์ํฐํฐ ๊ฐ์์ํํธ์จ์ด ์ํคํ ์ฒ์์ ๋๋ฉ์ธ ์ํฐํฐ์ ์์์ฑ ์ํฐํฐ๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ ์ค์ํ ์ค๊ณ ์์น ์ค ํ๋์ด๋ค. ์ด ์์น์ ํด๋ฆฐ ์ํคํ ์ฒ์ ํต์ฌ ๊ฐ๋ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ๋๋ฉ์ธ ๋ก์ง๊ณผ ์์์ฑ ๊ณ์ธต ๊ฐ์ ์์กด์ฑ์ ์ต์ํํ์ฌ ์์คํ ์ ์ ์ง ๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ๋์ด๋ ๋ฐ ๋ชฉ์ ์ด ์๋ค.์ด๋ฒ ๊ฒ์๊ธ์์๋ ์ด๋ฌํ ๋๋ฉ์ธ ์ํฐํฐ์ ์์์ฑ ์ํฐํฐ์ ์ฐจ์ด์ ์ ๋ํด ์์๋ณด๊ณ , ์ด ๋์ ๋ถ๋ฆฌํจ์ผ๋ก์จ ์ป์ ์ ์๋ ์ด์ ๊ณผ ์ฃผ์ํด์ผ ํ ์ ๊ทธ๋ฆฌ๊ณ ์ธ์ ๋ถ๋ฆฌํ๋ฉด ์ข์์ง์ ๋ํด ์ ๋ฆฌํ๋ค. ๋๋ฉ์ธ ์ํฐํฐ๋จผ์ ๋๋ฉ์ธ ์ํฐํฐ์ ๊ฐ๋ ๋ถํฐ ์ดํด๋ณด๋ฉด ๋๋ฉ์ธ ์ํฐํฐ๋ ๋น์ฆ๋์ค ๋๋ฉ์ธ ๋ด์ ๊ฐ๋ ์ ๋ํ๋ด๋ ๊ฐ์ฒด๋ก, ์ ์์๊ฑฐ๋ ์์คํ ์์๋ 'Order', 'Customer', 'Product'๋ฑ์ด ๋๋ฉ์ธ ์ํฐํฐ๊ฐ ๋ ์ ์๋ค. ๋ค์์ ๊ฐ๋จํ ์์ ์ฝ๋์ด๋ค.. 2024. 6. 18. ํ์ ์ ์ํด Swagger ์ข ๋ ์ ์ฌ์ฉํด๋ณด๊ธฐ ๋ชฉ์ฐจAPI ๊ทธ๋ฃนํAPI ๋ฒ์ ๊ด๋ฆฌ ์ @Deprecated ํ์ฉํ๊ธฐ๋ช ์ธ๋ง ๋จผ์ ์ ๋ฌํ๊ธฐAuthorize์ jwt ๋ฃ์ ๋ prefix์ Bearer ์๋ต์ํค๊ธฐ๋ธ๋ผ์ฐ์ ์๋ก๊ณ ์นจ ํ์๋ ์ธ์ฆ์ ๋ณด ์ ์ง์ํค๊ธฐ๊ธฐํ ์์ํ ์์ธ ์ค์ ๋ค 1. API ๊ทธ๋ฃนํSwagger์์ API๋ฅผ ๊ทธ๋ฃนํํ๋ฉด ์ฌ๋ฌ ์๋ํฌ์ธํธ๋ฅผ ๋ ผ๋ฆฌ์ ์ธ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ด ๊ด๋ฆฌํ๊ณ ๋ฌธ์๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฌํ ์ ์์ต๋๋ค.์ค์ ํ์๋ ์ ์ด๋ฏธ์ง์ฒ๋ผ ๊ด๋ จ๋ ์๋ํฌ์ธํธ๋ง ๋ณผ ์ ์์ด ์ํ๋ API๋ฅผ ์ฝ๊ฒ ์ฐพ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. Swagger์์ API๋ฅผ ๊ทธ๋ฃนํํ๋ ๋ฐฉ๋ฒ์ ์ด๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋๋์ ๋ฐ๋ผ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํ์ธํด์ ์ ์ฉํ๋ฉด ๋ฉ๋๋ค.springfox-swagger2๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ@Configuration@EnableSwagger2publi.. 2024. 5. 15. 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. ์ํคํ ์ฒ ๊ด์ ์์ ๋์ด๋๋ ํธ๋ํฝ ๋์ํ๊ธฐ ๊ฐ์์ํคํ ์ฒ์ ๊ด์ ์์ ๋์ด๋๋ ํธ๋ํฝ์ ์ด๋ป๊ฒ ๋์ํ๋ฉด ์ข์์ง์ ๋ํด ํ๋ฆ์ ๋ฐ๋ผ ์์ฑํ์ต๋๋ค. ํผ๋๋ฐฑ์ ์ธ์ ๋ ํ์์ด๋ฉฐ ๋๊ธ ๋จ๊ฒจ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ํ๋์ ์ธ์คํด์ค๋จผ์ ๊ฐ์ฅ ๊ฐ๋จํ ๊ตฌ์ฑ์ ๋๋ค. ๋ชจ๋ ํธ๋ํฝ์ด ํ ๋์ ์๋ฒ๋ฅผ ํตํด ๊ด๋ฆฌ๋๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ 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์์ corePoolSize๋งํผ์ ์ค๋ ๋๊ฐ ๋ฐ๋ก ์์ฑ๋ ๊น? ๊ฐ์Java์์ ์ค๋ ๋ํ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ThreadPoolExecutor, ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ๋์ฑ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก Spring์์ ์ ๊ณตํ๋ ThreadPoolTaskExecutor์ ๋์ ๋ฐฉ์์ ๊ดํด ์ ๊ฐ ๊ทธ๋์ ์๋ชป ์ดํดํ๊ณ ์์๋ ๋ ๊ฐ์ง์ ์คํด๋ฅผ ์ ๋ฆฌํ๊ณ ์ ๊ธ์ ์์ฑํ๊ฒ ๋์์ต๋๋ค.๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.๋ณ๋์ ์ค์ ์ ํ์ง ์์ผ๋ฉด ์๋ฒ ์คํ ์์ ์ง์ ํ ์ค๋ ๋ ํ ํฌ๊ธฐ๋งํผ ์ค๋ ๋๊ฐ ์๋์ผ๋ก ์์ฑ๋์ง ์๋๋ค.corePoolSize์ maxPoolSize๋ ์๋ก ์๊ด์๋ค.ํ์ ํฌ๊ธฐ๋ฅผ ์ง์ ํด์ฃผ์ง ์์ผ๋ฉด maxPoolSize์ ์ฌ์ค์ ์๋ฏธ ์๋ ์ค์ ์ด๋ค.corePoolSizeํฌ๊ธฐ ์ด์์ ์์ฒญ์ด ๋ค์ด์จ๋ค๊ณ ํด์ maxPoolSize๋งํผ ์ค๋ ๋๋ฅผ ์์ฑํ์ง ์๋๋ค.https://githu.. 2024. 3. 11. [Kafka] ์ปจ์๋จธ ์คํ์ ์๋์ผ๋ก ์ปค๋ฐํ๊ธฐ ๊ฐ์๋ฉ์์ง ์์ค์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฉ์์ง ์ฒ๋ฆฌ๊ฐ ๋ฌธ์ ์์ด ์๋ฃ๋์์ ๊ฒฝ์ฐ์๋ง commit์ ์ํํ๋๋ก, ์ปจ์๋จธ์ offset commit์ ์๋์ผ๋ก ์ค์ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ฌ๋ฌ ์กด์ฌํฉ๋๋ค. ํ์ง๋ง ๋จ์ํ auto.offset.commit๋ง false๋ก ์ง์ ํ๋ ๊ฒฝ์ฐ์๋ ์ํ๋ ๋ฐฉํฅ์ผ๋ก ๋์ํ์ง ์์ ์๋ ์์ต๋๋ค.์ด๋ฒ ๊ฒ์๊ธ์์๋ ์๋ ์ปค๋ฐ์ ๋์ ๊ณผ์ ๊ณผ ์ฃผ์์ , ๊ทธ๋ฆฌ๊ณ ์ปค๋ฐ์ ์๋์ผ๋ก ์ ์ดํ๊ธฐ ์ํ auto.offset.commit ์ค์ ๊ณผ ack-mode ์ค์ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. auto.offset.commitKafka์ ์ปจ์๋จธ๋ ์ฝ์ ๋ฉ์์ง์ ์์น๋ฅผ ์ถ์ ํ๊ธฐ ์ํด offset์ commit ํ๋ ์ญํ ์ ๋ด๋นํฉ๋๋ค. ์ด offset์ Kafka์ ๋ด๋ถ ํ ํฝ์ธ __consumer_offsets์ ์ ์ฅ๋๋ฉฐ,.. 2024. 3. 6. [Kafka] ํ๋ก๋์ ๋ฉฑ๋ฑ์ฑ ๋ณด์ฅํ๊ธฐ ๊ฐ์๋ฉฑ๋ฑ์ฑ์ ๋์ผํ ์์ ์ ์ฌ๋ฌ ๋ฒ ์ํํ๋๋ผ๋ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋๋ ํน์ฑ์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ๋ฉฑ๋ฑ์ฑ์ ์ง๋ ํ๋ก๋์๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ฒ ์ ์กํ๋๋ผ๋ ํด๋น ๋ฐ์ดํฐ๊ฐ ์นดํ์นด ํด๋ฌ์คํฐ์ ๋จ ํ ๋ฒ๋ง ์ ์ฅ๋๋๋ก ๋ณด์ฅํฉ๋๋ค.๊ทธ๋ ๋ค๋ฉด ํ๋ก๋์์ ์ด๋ป๊ฒ ๋ฉฑ๋ฑ์ฑ์ ์ ์ฉํ๊ณ , ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ค๋ณต ์ ์ฅ ์์ด ์ ํํ ํ ๋ฒ๋ง ์ ์ฅ๋๋๋ก ๋ณด์ฅํ ์ ์์๊น์? ์ด๋ฒ ๊ธ์์๋ ํ๋ก๋์์ ๋ฉฑ๋ฑ์ฑ์ ๋ณด์ฅํ๋๋ก ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ๊ฒ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฉ์์ง ์ ์ก ๋ฐฉ์Producer์ Broker์ ์ค์ ๋ฐ ๊ตฌ์ฑ์ ๋ฐ๋ผ Kafka์์๋ ๋ฉ์์ง ์ ๋ฌ ๋ณด์ฅ ์์ค์ ์๋์ ๊ฐ์ด ์ธ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๊ตฌ๋ถํฉ๋๋ค. ์ต๋ ํ ๋ฒ (At most once): ๋ฉ์์ง๊ฐ ํ ๋ฒ๋ง ์ ์ก๋๋ฉฐ, ์ฌ์ ์ก์ ๋ฐ์ํ์ง ์๋๋ค. ๊ทธ๋ฌ๋.. 2024. 2. 1. ์ด์ 1 2 3 4 5 ยทยทยท 13 ๋ค์