20๋ ์ฐจ ๋ฐฑ์๋ ๊ฐ๋ฐ์
Kakao (2018 ~ 2026, ๅ ๋ฆฌ๋)
LF (LG Fashion, 2017, IT ํ๋ซํผํ ์ฐจ์ฅ)
์ฟ ํก (2013~2017, Sr. Software Engineer)
์คํ์์ค ๊ฐ๋ฐ์ ๋ํ ์์ (2012. ์ง์๊ฒฝ์ ๋ถ, NIPA)
์ฃผ์ ๋ถ์ผ
Java, Spring, MSA ํ๊ฒฝ์์ ์ค๋ ์๊ฐ ์ผ์ ํ์์ต๋๋ค. ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๋ง์ดํฌ๋ก ์๋น์ค ์ํคํ
์ณ ์ค๊ณ, ๋ณต์กํ ๋๋ฉ์ธ์ ์ํฐํฐ ์ค๊ณ ๊ฒฝํ๊ณผ ํ์ ์ด๋์ด๋ณธ ๊ฒฝํ์ ํตํด ๊ธฐ์ ์ ์ง์๊ณผ 10๋
์ด์์ ๋ฉด์ ๊ด ๊ฒฝํ์ ํตํด ์ธํฐ๋ทฐ๋ฅผ ์ค๋นํ๋ ๋ฐฉ๋ฒ๊ณผ ์ปค๋ฆฌ์ด์ ๋ก๋๋งต ๋ฐฉํฅ์ ์ก๋๋ฐ ๋์์ ๋๋ฆฌ๊ณ ์ถ์ต๋๋ค.
๊ฐ์ ๊ฒฝ๋ ฅ
2026.06 ๋์ผ์ดํ ํฌ์ธ ํด๋ก๋ ์ฝ๋ ๊ฐ์
2025.05 ๋ถ์ฐ ๋ํ๊ต AI ํ์ฉ ๊ฐ์
2024.11 ๋๊ตฌ๋ํ๊ต ๊ฒฝ์ฐ์ด๋ ธ๋ฒ ์ด์ ์์นด๋ฐ๋ฏธ ์ทจ์ ํน๊ฐ
2024.10 ํ๋น๋ฏธ๋์ด ์ฃผ๋์ด ๊ฐ๋ฐ์๋ฅผ ์ํ ์ทจ์ ์ธ๋ฏธ๋ 2์ฐจ ํน๊ฐ
2024.09 ๋ถ์ฐ๋ํ๊ต SW์ตํฉ๊ต์ก์ ์ทจ์ ํน๊ฐ
2024.04 ํ๋น๋ฏธ๋์ด ์ฃผ๋์ด ๊ฐ๋ฐ์๋ฅผ ์ํ ์ทจ์ ์ธ๋ฏธ๋ ํน๊ฐ
์ ์ (ํด๋ก๋ ์ฝ๋ ๋ง์คํฐ, ๊ฐ๋ฐ์ ๊ธฐ์ ๋ฉด์ ๋ ธํธ, ํ๋น๋ฏธ๋์ด)
Courses
Reviews
doldorida
ยท
Solving Claude Code in One Go for Beginners - Claude Code Master Author's Lecture for BeginnersSolving Claude Code in One Go for Beginners - Claude Code Master Author's Lecture for Beginnersmindcompass
ยท
[4-Week Course] "Claude Code Master" Completion Challenge - Full-Stack AI Agentic Coding for Professional Developers![4-Week Course] "Claude Code Master" Completion Challenge - Full-Stack AI Agentic Coding for Professional Developers!supark
ยท
[4-Week Course] "Claude Code Master" Completion Challenge - Full-Stack AI Agentic Coding for Professional Developers![4-Week Course] "Claude Code Master" Completion Challenge - Full-Stack AI Agentic Coding for Professional Developers!enetrypm
ยท
[4-Week Course] "Claude Code Master" Completion Challenge - Full-Stack AI Agentic Coding for Professional Developers![4-Week Course] "Claude Code Master" Completion Challenge - Full-Stack AI Agentic Coding for Professional Developers!ldhco5885
ยท
[4-Week Course] "Claude Code Master" Completion Challenge - Full-Stack AI Agentic Coding for Professional Developers![4-Week Course] "Claude Code Master" Completion Challenge - Full-Stack AI Agentic Coding for Professional Developers!
Posts
Q&A
menupan.git ๋ ํฌ์งํ ๋ฆฌ๊ฐ ๋ณด์ด์ง ์์ต๋๋ค.
์๋ ํ์ธ์. ์๊ฐ์๋.์ ๊ฐ git ์ค์ ์ ์๋ชปํ๊ฑฐ ๊ฐ์ต๋๋ค.https://github.com/claude-code-expert/menupan๋งํฌ ๋ค์ ์ ์ํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.๋ถํธ์ ๋๋ ค ์ฃ์กํฉ๋๋ค.๊ฐ์ ์๊ฐํด์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
- Likes
- 0
- Comments
- 2
- Viewcount
- 13
Q&A
์ฑ ์ ์๋ ํ๋กฌํํธ ๊ด๋ จ ์ง๋ฌธ์ ๋๋ค.
์๋ ํ์ธ์. ์๊ฐ์๋. ์ด๋จํฌ์ ๋๋ค. REQUIREMENT, TESTCASE, PRD, TRD๋ ๊ธฐ๋ณธ ๊ธฐ๋ฅ, ์ฌ์ดํธ ๊ฑด์ , ์ฃผ์ ๊ตฌํ ์ฌํญ๋ง md๋ก ์๊ธฐ ์์ฑํ ๋ค ํด๋ก๋ ์ฝ๋์๊ฒ ์์ฑ์ ์์ฒญํ ๋ค ํ์ค ํ์ค ๊ฐ๋ฐ์๊ฐ ๊ฒํ ํด์ ์์ ํ๋ ํํ๋ก ์์ฑ์ด ๋์์ต๋๋ค.๋ฐ๋ก ํ๋กฌํํ ์ ๋ฃ์ง ์์ ์ด์ ๋ ๋จ์ํ๊ฒ ์์ฒญ๋ง ํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ด๋ผ (์ TODO์ฑ์ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ฐ์ ธ์ผ ํด. 1,2,3,4 ๋ฑ๋ฑ ์์ฑ ํ ๋ค TRD๋ฅผ ์์ฑํด์ค -> ๊ฐ๋ฐ์ ๊ฒํ ํ ์์ ) ๋ณ๋๋ก ์ฝ์ ํ์ง๋ ์์์ต๋๋ค.์ด๋ ต๊ฒ ์๊ฐํ์ง ๋ง์๊ณ 216ํ์ด์ง์ md ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก TRD, PRD, RQUIREMENT, TESTCASE, DATA_MODEL์ ์์ฒญํ์๋ฉด ๋ฉ๋๋ค.๋จ, ๋งค ๋ฌธ์๋ ๋ฐ๋์ ๊ฐ๋ฐ์๊ฐ ์ฌํ์ธ์ ๊ฑฐ์ณ ์์ ์ ํด์ผ ํฉ๋๋ค. AI๋ ์์ง ์๋ฒฝํ์ง ์์์ ๊ฒํ ๋ฐ ์ง์, ์ ๊ฒ์ ๊ณผ์ ์ ๋ชจ๋ ๊ณผ์ ์์ ๋ฐ์๋์ด์ผ ํฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. PS. ์๊ณผ์งํ์ผ๋ก ์ธํด ๋ชจ๋ํฐ๊ฐ ๋ณด์ด์ง ์์ ๋ต๋ณ์ด ๋ง์ด ๋ฆ์ด์ก์ต๋๋ค.. (์ฌ์ค ์ง๊ธ๋ ์ ๋ณด์ด์ง ์์ต๋๋ค) ์ํด ๋ถํ๋๋ฆฝ๋๋ค.
- Likes
- 0
- Comments
- 2
- Viewcount
- 78
Q&A
16 ๊ฐ์ ๋ฉ์ธ์ง retryCount์ ์๋
์๋ ํ์ธ์. ์ง๋ฌธ์๋.์ง๋ฌธํ์ ๊ถ๊ธ์ฆ์ด ์ ํํ๊ฒ ๋ง์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก @Component๊ฐ ์ฑ๊ธํค์ด๊ณ ์ง๊ธ๊ณผ ๊ฐ์ด ์ ์ธํ๋ฉด retryCount ํ๋๋ ๋ชจ๋ ๋ฉ์์ง๊ฐ ๊ณต์ ํ๋ ์ ์ญ ๋ณ์๊ฐ ๋ฉ๋๋ค. ๊ทธ๋์ A๋ฉ์์ง๊ฐ ์คํจํ ๋ +1 ์ธ ์ํ๊ฐ B ๋ฉ์์ง๊ฐ ์ฑ๊ณต๋๋ฉด 0์ผ๋ก ๋ฆฌ์ ๋๊ธฐ ๋๋ฌธ์ ๋ง์ํ์ ๋ฐ๋ก ์ด๋ฌ๋ค๊ฐ ์ ๋ฌ๋ค๊ฐ ํ๊ฒ ๋ฉ๋๋ค. ์ฌ์ค ์ด๋ฏธ application.yml ์์ retry:enabled:truemax-attempts:3 ๋ฅผ ์ ์ธํ๊ธฐ ๋๋ฌธ์ AMQP ๋ด๋ถ์ ์ผ๋ก๋ ๋ฉ์์ง ๋จ์๋ก ์ฌ์๋ ํ์๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์ ์ ์ธ ์์ฒด๊ฐ ๋ฒ๊ทธ๋ฅผ ์ ๋ฐํ๊ณ ํ์๊ฐ ์๋ ์ฝ๋๊ฐ ๋ง์ต๋๋ค. ๊ฐ์ ์๋ฃ๋ฅผ ๋ค์ ์ ๋ฐ์ดํธ ํด๋๋๋ก ํ๊ฒ ์ต๋๋ค.์๋ ค์ฃผ์ ๋ฌธ์ ๊ทธ๋ฅ ๋์ด๊ฐ๋ป ํ๋๋ฐ ์ง๋ฌธํด์ฃผ์ ์ ๊ฐ์ฌ๋๋ ค์. ์ข์ ์ฃผ๋ง ๋ณด๋ด์ธ์.
- Likes
- 0
- Comments
- 2
- Viewcount
- 63
Q&A
step 4 - fanout ๊ด๋ จ ์ง๋ฌธ
์๋ ํ์ธ์. ์๊ฐ์๋ 1๋ฒ๋ถํฐ ๋ต๋ณ๋๋ฆฌ๋ฉด, ์์ ๊ตฌ์กฐ๋ง ๋๊ณ ๋ณด๋ฉด Topic์ด ๋ ์ข์ ์ ํ์ง์ ๋๋ค. ๋ค๋ง step4์์ Fanout์ ์ฌ์ฉํ ์ด์ ๋ ๋์ ๋ฐฉ์์ ๋ํ ์ค๋ช (ํ๋์ ๋ฉ์์ง๋ฅผ ๋ชจ๋ ๊ตฌ๋ ์์๊ฒ ๋ธ๋ก๋ ์บ์คํธ ํ๋ pub/sub์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํํ)์ ๊ตฌํํ๊ณ ์ ํ๋ ์ธก๋ฉด๊ณผ ์ค๋ฌด์์ ๊ฐ์ ๋ด์ค ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๋๋ผ๋ ๊ฐ Consumer๊ฐ ๋ค๋ฅธ ๋ก์ง์ผ๋ก ์ฒ๋ฆฌ ํด์ผ ํ ๊ฒฝ์ฐ (์๋ฅผ๋ค๋ฉด 1๋ฒ์ DB์ ์ ์ฅ, 2๋ฒ์ ํธ์ ์๋ฆผ, 3๋ฒ์ ๋ก์ง ์ฒ๋ฆฌ ๋ฑ) Fanout์ ํตํด ๋์ผํ ๋ฉ์์ง๋ฅผ ๋ฐ์ ํ์์ ์ ์ฒ๋ฆฌํ ์ ์๋ค๋ ์ ์ด๋ ๊ฒ ๋๊ฐ์ง ์ธก๋ฉด์ ๊ณ ๋ ค์์ ๋น์ทํ ํํ์ ๋ฉ์์ง์ ๋ํด ์๋ก ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํ๋ ๋ค์์ consumer ๋ก์ fanout ๋ธ๋ก๋์บ์คํ ์ ์ง์ ํ๊ฑฐ๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค. Step 4 ์์ ๋ ๋ด์ค๋ ํฐ๋ผ๋ ์๋๋ฆฌ์ค๋ฅผ ๋น๋ ธ์ง๋ง, ์ค์ ๋ก ๋ณด์ฌ์ฃผ๊ณ ์ ํ๋ ๊ฒ์ Fanout Exchange์ ๋ธ๋ก๋์บ์คํธ ๋์ ๋ฐฉ์์ ๋๋ค. 2๋ฒ์ ๊ฒฝ์ฐ pub/sub์ ํน์ง์ค ํ๋๋ ๊ตฌ๋ ์ ์ค๋ฆฝ์ฑ์ ๋๋ค. Consumer ์ค ํ๋๊ฐ ์ฅ์ ๊ฐ ๋๋ ๋๋จธ์ง ์ปจ์๋จธ๋ ์ํฅ์ ๋ฐ์ง ์์ผ๋ ์ด๊ฑธ ํ๋๋ก ํฉ์น๋ฉด ์ฅ์ ์ ๋ชจ๋ ๋ด์ค์ฒ๋ฆฌ๊ฐ ์ค๋จ๋๊ฑฐ๋ ํธ๋ํฝ ํญ์ฆ์ผ๋ก ์ธํด ์ง์ฐ์ด ๋ฐ์ํ ๋ ์ ์ฒด ์ดํ๋ฆฌ์ผ์ด์ ์ ์ํฅ์ ์ค๋๋ค. ์ด๋ฐ ๋ ๋ฆฝ์ฑ๊ณผ ํ์ฅ์ฑ (ํ๋์ ํ์ ์ด ์ถ๊ฐ๋๋ฉด consumer๋ง ์ถ๊ฐ ๋ฐ์ธ๋ฉ)์ ๊ณ ๋ คํด ์๋ก ์ํฅ์ ๋์ฃผ๊ณ ์ฒ๋ฆฌ๊ฐ ๋ณด์ฅ๋๋ ๊ฐ๋จํ ํํ์ ์์ ์ธ ๋ด์ค๋ ํฐ๋ก ์ค๋ช ํ์๊ณ , ๋ง์ํ์ ๋ฐฉ์๋ ๋์์ ํฉ๋๋ค. ๋ค๋ง ๋ฉ์์ง ์ฒ๋ฆฌ ์คํจ์ ์ํฅ ๋ฒ์, consumer ๋ด๋ถ ๋ถ๊ธฐ ๋ก์ง, ๋ ๋ฆฝ์ ์ค์ผ์ผ๋ง ๋ฑ์ ๊ณ ๋ คํ๋ฉด ํ๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์ด์ ์ธก๋ฉด์์ ์ด์ ์ด ์์ต๋๋ค.๋จ๊ณ๋ณ๋ก ์์ ๋ฅผ ์ฐ๊ฒฐํ๋ค๋ณด๋ ์์ ์ฑ๊ฒฉ์ด ๋ถ์กฑํ๊ฑฐ ๊ฐ์ต๋๋ค๋ง, ๋ฉ์์ง ์ฒ๋ฆฌ ์คํจ์ ์ํฅ ๋ฒ์๋ consumer ๋ด๋ถ ๋ถ๊ธฐ ๋ก์ง (๋ฉ์์ง ํ์ ์ ๋ฐ๋ผ ํ์ฑ ๋ฐ ํ๋จ ๋ถ๊ธฐ)์ ๊ณ ๋ ค, ๋ ๋ฆฝ์ ์ธ ์ค์ผ์ผ๋ง (ํน์ ๋ด์ค๋ง ํธ๋ํฝ์ด ํญ์ฆํ ๋) ๋ฑ์ ๊ณ ๋ คํ๋ฉด Fanout ์ผ๋ก ์ฐ๊ฒฐํ๊ณ consumer์ ์์ปค๋ฅผ ๋๋ฆฌ๋ ๋ฑ์ ์ผ๊ด์ฑ์ด๋ ์ ์ฐ์ฑ์ ์ฅ์ ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค.๋ํ ๋จ์ผ ํ ์์ฒด๋ ๋ชจ๋ํฐ๋งํ ๋๋ ์ํ๊ตฌ๋ถ์ด fanout ๋ณด๋ค ์ด๋ ต์ต๋๋ค. ํ์ ๊ฒฉ๋ฆฌ ๋ ๋ฒจ์์ ์ฅ์ ๋ ๋ ๋ฆฝ ์ค์ผ์ผ๋ง, ๋ชจ๋ํฐ๋ง ์ด๋ฐ ์ ์ ๊ณ ๋ คํ ๋ fanout์ด ์ ํฉํ๋ค๋ผ๊ณ ๋ณด์๋ฉด ๋๊ฒ ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- Likes
- 0
- Comments
- 2
- Viewcount
- 96
Q&A
๋์ ํ ์ด๋ฆ ์ค์ ๋ฐฉ๋ฒ ๋ฐ SimpleRabbitListenerContainerFactory์ ์ฌ์ ์์ ๋ฐ๋ฅธ Retry ์ค์ ๋ฏธ์ ์ฉ ๊ด๋ จ ์ง๋ฌธ์ ๋๋ค.
์๋ ํ์ธ์. ์๊ฐ์๋ ๋์ ํ ๋ค์ ๋ฐ์ธ๋ฉ๊ณผ ๊ด๋ จํด์๋ SpEL๋ ๋์์ ํ๊ฒ ์ผ๋ (์ ๋ ํ ์คํธ๋ ์ํด๋ดค์ต๋๋ค) ์ ๊ฐ ์ดํดํ ์ง๋ฌธ์ ๋์ ํ ๋ฐ์ธ๋ฉ์ ํตํด ๋ธ๋ก๋ ์บ์คํธ ํ๋ ๋ฐฉ์์ด ๋ง๋์ง ๋ฌผ์ด๋ณด์ ๊ฑฐ ๊ฐ์ต๋๋ค. @Configuration public class RabbitMQConfig { // Bean์ผ๋ก ํ ์ด๋ฆ ์ ์ฅ (ํ ๋ฒ๋ง ์์ฑ) @Bean public String dynamicPublishNotificationQueueName() { return PUBLISH_NOTIFICATION_QUEUE + ":" + UUID.randomUUID().toString(); } @Bean public Queue publishNotificationQueue( @Qualifier("dynamicPublishNotificationQueueName") String queueName) { // ์ฃผ์ ๋ฐ์์ ์ฌ์ฉ return new Queue(queueName, false, true, true); // durable=false, exclusive=true, autoDelete=true } @Bean public FanoutExchange publishNotificationExchange() { return new FanoutExchange(PUBLISH_NOTIFICATION_EXCHANGE); } @Bean public Binding publishNotificationBinding( Queue publishNotificationQueue, FanoutExchange publishNotificationExchange) { return BindingBuilder .bind(publishNotificationQueue) .to(publishNotificationExchange); } } @Component public class NotificationSubscriber { @RabbitListener(queues = "#{@dynamicPublishNotificationQueueName}") public void consumePublishNotificationMessage(Notification notification) { notificationService.publishNotification(notification); } }์ด๋ฐ์์ผ๋ก ์์ฑํด์ 3๊ฐ์ ์ธ์คํด์ค๋ฅผ ๋ฐํ์ผ๋ก ํ ์คํธ ํด๋ณด์๊ณ , ๋ก๊น ์ ์ถ๊ฐํด์ ํ ์คํธ ํด๋ณด์๋ฉด ์ข์๊ฑฐ ๊ฐ์ต๋๋ค. ๋๋ฒ์งธ ์ง๋ฌธ์ retry ๊ด๋ จํด์๋, SimpleRabbitListenerContainerFactory ๋ฅผ ์๋์ผ๋ก ์ ์ํ๊ณ RabbitListenerContainerFactoryConfigurer.configure ๋ฅผ ๋ณ๋๋ก ํธ๋ค๋งํ์ง ์์ผ๋ฉด Spring boot์ property๊ฐ ์๋ํ์ง ์๋๋ค๊ณ ์๋๋ค๊ณ ์๊ณ ์์ต๋๋ค. ์๋์ ์ฝ๋๋ฅผ ๋ณด์๊ณ ํ ์คํธ๋ฅผ ํ๋ฒ ํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค. @Bean public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory( ConnectionFactory connectionFactory) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(connectionFactory); // configurer.configure()๋ฅผ ํธ์ถํ์ง ์์! // YAML ์ค์ ์ด ์ ํ ์ ์ฉ๋์ง ์์ return factory; }์ด ์ฝ๋๋ ์๋์ ๊ฐ์ด ์ ์ํ ์ ์์ต๋๋ค.@Bean public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory( ConnectionFactory connectionFactory, RabbitListenerContainerFactoryConfigurer configurer) { // โญ ์ฃผ์ SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); // Boot ์ค์ ๋จผ์ ์ ์ฉ configurer.configure(factory, connectionFactory); // ์ถ๊ฐ ์ปค์คํฐ๋ง์ด์ง (Boot ์ค์ ๋ฎ์ด์ฐ๊ธฐ) factory.setDefaultRequeueRejected(false); factory.setMessageConverter(myCustomConverter()); return factory; }configurer์ configure ์ ๋๋นํฉํ ๋ฆฌ์ ์ปค๋ฅ์ ํฉํ ๋ฆฌ๋ฅผ ํตํด application.yml์ ์ค์ ์ ๋ฐ์ํด์ผ ํฉ๋๋ค. ์๊ฑด์ด๋ ํ๊ฒฝ์ด ์ ํํ์ง ์์์ ๋ค์ ์์ธํ๊ฒ ๋ต๋ณ ๋๋ฆฌ๊ธฐ ์ด๋ ค์ด ์ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
- Likes
- 0
- Comments
- 1
- Viewcount
- 140
Q&A
RabbitMQ ์ต์ค์ฒด์ธ์ง ์ง๋ฌธ
์๋ ํ์ธ์ ์๊ฐ์๋. ์ง๋ฌธํ์ ๋ด์ฉ์ด ์ ํํฉ๋๋ค. Direct exchange์ ํด๋นํ๋ ๋ด์ฉ์ธ๋ฐ ์ ๊ฐ ์ฐฉ๊ฐํ๊ณ ์๋ชป ์ค๋ช ํ๋ค์. ๊ฐ์ ์๋ฃ ์์ ํ๊ฒ ์ต๋๋ค. ์ข์ ๋ด์ฉ ์๋ ค์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
- Likes
- 1
- Comments
- 3
- Viewcount
- 126
Q&A
๊ฐ์ ์๋ฃ ๊ด๋ จ
์๋ ํ์ธ์. ์๊ฐ์๋. 2๊ฐ์ ๊ฐ์์๋ฃ ๊ณต์ง๊ฐ ์์๋๋ฐ ๋ชป๋ณด์ จ๋๋ด ๋๋ค. https://2dell.notion.site/RabbitMQ-1792d6475f85808eaf95c4b66b4bf7dc?pvs=4 ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค. ๊ฐ์ ์๊ฐํด์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
- Likes
- 0
- Comments
- 2
- Viewcount
- 109
Q&A
์ง์์ ์์ฑ ๊ฐ์ด๋์ ์ํ์ด๋ ฅ์ ์ดํด๋ณด๊ธฐ ๊ฐ์์ง๋ฌธ
์๋ ํ์ธ์. ์๊ฐ์๋ํฌํธํด๋ฆฌ์ค๋ ํ์ฅ์ ํ๋์ ํ๋ก์ ํธ๊ฐ ๋ค ๋ค์ด๊ฐ๋๋ก ํต์ฌ์ ์ ๋ฆฌํด์ ๋ณด์ฌ์ค์ผ ํฉ๋๋ค.๋ฌผ๋ก ์ ์ ์ผ ๊ฒฝ์ฐ ๋ง์ ๋ด์ฉ์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ๋ง์์ด ์๊ฒ ์ผ๋, ์๋ฅ๋ฅผ ๊ฒํ ํ๋ ์ ์ฅ์์๋ ๋ด์ฉ์ด ๋ง๋ค๊ณ ๋ ๋ณด์ง๋ ์๊ณ ์คํ๋ ค ์๋ฅ๊ฐ ๋ง์์ ธ์ ์ ์ ์ค์ํ๊ฒ ๋ถ๊ฐ๋์ด์ผ ํ ๋ด์ฉ์ด ๋ณด์ด์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.๋ฐ๋ผ์ ์ด๋ ฅ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋จ์ํ๊ณ ๋ช ํํ๊ฒ ์์ฑํ๋๊ฒ ์ค์ํฉ๋๋ค. ๊ฒฝ๋ ฅ์ง์ธ ๊ฒฝ์ฐ ํฌํธํด๋ฆฌ์ค๋ ํ์์์ต๋๋ค. ๊ฒฝ๋ ฅ๊ธฐ์ ์์ ์์ธํ ์ ์ผ๋ฉด ๋๊ณ , ๋ณธ์ธ์ด ์ง์ ํ ์ ๋ฌด๋ผ๋ฉด ๊ทธ์ ๋ฐ๋ฅธ ์ค๋ช ๋ ์ง์ํ๊ณ ์ ํ๋ ํ์ฌ์ ์ ๋ฌด ๋ฐฉํฅ์ ๋ง๊ฒ ์์ฑํด์ ์ดํํด์ผ ํฉ๋๋ค. ์ฐ๊ด๊ด๊ณ๊ฐ ์๋ค๋ฉด ๋์ฑ ์ข๊ฒ ์ฃ ? ๋ฌด๋ฃํธ์๋ ํ์ฌ ๊ณต๊ณ ๋ถ์์ด ๋ค์ ์ ์ ๋ถ๋์ผ๋ก ์ฌ๋ผ๊ฐ์์ต๋๋ค๋ง, ์ฑ์ฉ ๊ณต๊ณ ๋ฅผ ๋ถ์ํด์ ๊ทธ์ ๋ง๋ ๋ฐฉํฅ์ผ๋ก ์ด๋ ฅ์๋ฅผ ์์ ํด์ ์ ์ถํด์ผ ํฉ๋๋ค. ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
- Likes
- 0
- Comments
- 2
- Viewcount
- 150
Q&A
์ธ์ฆ ์๋ฌ
์๋ ํ์ธ์. ๋ฉ์์ง ์๋ฌ ์์ฒด๋ RabbitMQ์ ์ธ์ฆ ์๋ฌ ์ธ๋ฐ์, ๋์ปค ps์ log๋ฅผ ํ์ธํด๋ณด์๊ณ , management ์ ์ ๊ทผํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค. (admin/admin์ผ๋ก http://localhost:15672์ ์ ๊ทผ๋๋์ง) ์๋ ๊ธฐ๋ณธ ๊ณ์ ์ guest/guest ์ ๋๋ค. ๊ฐ์์ ๋์จ๋๋ก RabbitMQ๋ฅผ ๋จผ์ ์ค์นํ ๋ค ํ ์คํธ ํด๋ณด์๊ณ ์ ๋๋ก ๋๋ค๋ฉด ๋์ปค ์ค์ ์ ๋ฌธ์ ์ด๋ฏ๋ก (๋ก๊ทธ๋ ๊ถํ ์คํ ํ์ด๋ฐ์ผ๋ก ์ธํ ์๋ฌ)์ผ ์ด ๋ถ๋ถ์ ์ฒดํฌ ๋จผ์ ํ์๊ณ ๋ฒ์๋ฅผ ์ค์ฌ์ค๋ฅ ์ฌํญ์ ์์ธกํด๋ด์ผ ํฉ๋๋ค.๊ตฌ๊ธ์์ docker rabbitmq access reused error ๋ก ๊ฒ์ํ์๋ ์์ ์ธ๊ธํ ๋ฌธ์ ๋ค์ ํด๊ฒฐ๋ฐฉ๋ฒ์ด ๋์ค๋ฏ๋ก ์ฐธ๊ณ ํด๋ณด์๋, ๋จผ์ ์ด๋๋ฏผ ์ฝ์ ๋ถํฐ ์ ๊ทผ ๋๋์ง, ๊ณ์ ์ด ๋ง๋์ง ๋ถํฐ ์ ๊ฒ ํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- Likes
- 0
- Comments
- 2
- Viewcount
- 125
Q&A
RabbitMQ์์์ ํธ๋์ญ์ ๋ฉ์์ง ์ง๋ฌธ
์๋ ํ์ธ์. ์๊ฐ์๋ DB์ RabbitMQ๊ฐ์ ๋ฉ์์ง ๋ธ๋ก์ปค์ ํธ๋์ญ์ ์ ์๋ก ๋ ๋ฆฝ์ ์ ๋๋ค.๊ทธ๋์ RabbitMQ์์ ํธ๋์ญ์ ์ ๊ตฌํํ๋ ค๋ฉด DB์๋ ๋ณ๋๋ก ์์ฒด์์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก "์ฒ๋ฆฌ๋ ๊ฐ๋ฅ" ํฉ๋๋ค. 19๊ฐ ์๋ฃ์ ๋์์๋๋ฐ, amqp-client์ ์์กด์ฑ (starter-amqp์ ํฌํจ)channel.txSelect():ํธ๋์ญ์ ์์. ์ดํ ๋ชจ๋ ๋ฉ์์ง ์ ์ก ์์ ์ ์ด ํธ๋์ญ์ ๋ด์์ ์คํ.channel.txCommit():ํธ๋์ญ์ ์ปค๋ฐ. ๋ชจ๋ ์์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์ํ๋์์์ RabbitMQ์ ์๋ฆผ.channel.txRollback():ํธ๋์ญ์ ๋กค๋ฐฑ. ํธ๋์ญ์ ๋ด ์์ ์ ๋ฌดํจํํ๊ณ ๋ณ๊ฒฝ์ฌํญ์ ๋๋๋ฆผ.์ด ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ๋ ๊ฐ๋ฅํฉ๋๋ค๋ง, ์์๋ค์ํผ ๋ฉ์์งํ๋ ๋น๋๊ธฐ ํ๊ฒฝ์์ ๋ถ์ฐ ๋ฉ์์ง์ ์ฒ๋ฆฌํ๋๋ฐ ํ์ํ ๋ฏธ๋ค์จ์ด์ด๊ธฐ ๋๋ฌธ์ ์ด ๋ฐฉ์์ผ๋ก ๊ตณ์ด ํธ๋์ญ์ ์ ๊ตฌํํ๋๊ฒ ์๋ฏธ์๋? ๋ผ๋ ๊ด์ ์์ ๋ณด๋ฉด ๊ตฌํ ๋น์ฉ๋๋น ์คํจ์ฑ์ด ๋จ์ด์ง๋ ํธ์ ๋๋ค๋ฐ๋ผ์ 19๊ฐ์์ ์ค๋ช ํ๋ ๋ฐ์ ๊ฐ์ด Outbox ํจํด(db์ ๋ณ๋๋ก ์ ์ฅ ํ ๋ค ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ํตํด ๋ฉ์์ง ์ฒ๋ฆฌ)์ด๋ TCC์ ๊ฐ์ ํํ์ ์ฌ์๋์ ๋ณด์ ์ ํตํ ๋ฉฑ๋ฑ์ฑ์ ๋ณด์ฅํ๋๊ฒ ํจ์ฌ ์ ๋ฌด์ ์ผ๋ก๋ ์ข์ ์ ํ์ด๋ผ๊ณ ํ๋จํฉ๋๋ค. ์๊ฐ์ด ์ผ๋ง ๋จ์ง ์์ผ์ จ๋ค์. ๋ง๋ฌด๋ฆฌ ์ ํ์๊ธฐ ๋ฐ๋๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- Likes
- 0
- Comments
- 2
- Viewcount
- 135




