๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

AOP4

[Redisson] ํŠธ๋žœ์žญ์…˜ ๋ฌธ์ œ ๋ฐœ์ƒ ๋ฐ ํ•ด๊ฒฐ ์ง€๋‚œ ํฌ์ŠคํŠธ [Redisson]์„ ์ด์šฉํ•œ ๋ถ„์‚ฐ Lock ๊ตฌํ˜„ & ๋™์‹œ์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋‚ด ํ”„๋กœ์ ํŠธ์˜ Payment๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ ์ค‘์— ๊ธฐ๋ณธ์ด ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ์ง๋ฉดํ–ˆ์—ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ฐ”๋กœ ๋™์‹œ์„ฑ ๋ฌธ์ œ! ์Šคํ”„๋ง๋ถ€ํŠธ์˜ ๋‚ด์žฅ ์„œ๋ฒ„๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ†ฐ์บฃ, ์–ธ๋”ํ† ์šฐ ๋“ฑ๋“ฑ์˜ WAS๋กœ ๋Œ์•„๊ฐ€๋Š”๋ฐ ์ด sweeeetgoguma.tistory.com ์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ Redisson์„ ์ด์šฉํ•˜์—ฌ ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋ฆฌํŒฉํ† ๋ง์ด ๊ฑฐ์˜ ๋๋‚˜๊ฐ€ ์กฐํšŒ API๋ฅผ ๊ตฌ์ฒดํ™”ํ•˜์—ฌ ๋ช‡ ๊ฐœ ์ถ”๊ฐ€ํ•˜๋˜ ๋„์ค‘, ์Šค๋ ˆ๋“œ 100๊ฐœ์˜ ๋™์‹œ ์š”์ฒญ์„ ์ง์ ‘์ ์œผ๋กœ ๋ฐ›๋Š” ๊ณผ์ •์„ ํ™•์ธํ•˜๊ณ  ์‹ถ์–ด์กŒ๋‹ค. ๊ทธ๋ž˜์„œ ์‹คํ—˜ํ•ด๋ดค๋‹ค. ๊ฒฐ๊ณผ๋Š”?? ์ฒ˜์ฐธํ•˜๋‹ค.. ๋ฌด์—‡์ด ๋ฌธ์ œ์˜€์„๊นŒ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ์”นํ˜”๋‹ค. @GetMapping("/test") public void t.. 2022. 10. 1.
OutBox Pattern & Saga Pattern & Transaction ์ง€๋‚œ๋ฒˆ ํฌ์ŠคํŒ…์„ ์ดํ›„๋กœ 3์ผ๊ฐ„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์— ๊ด€ํ•œ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉฐ ๋ฆฌํŒฉํ„ฐ๋ง์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ์˜ ํŠธ๋žœ์žญ์…˜์˜ ๊ณ ๋ ค๋„ ์ถฉ๋ถ„ํžˆ ์ค‘์š”ํ•œ ์„ค๊ณ„ ๊ฐ™๋‹ค. ๊ทธ ๋ฆฌํŒฉํ„ฐ๋ง ๊ณผ์ •์„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค. https://sweeeetgoguma.tistory.com/entry/%E3%80%8COutBox-Pattern%E3%80%8D-%ED%99%9C%EC%9A%A9 ใ€ŒOutBox Patternใ€ ํ™œ์šฉ https://github.com/GroovyArea/MyChickenBreastShop/wiki/Version-1 GitHub - GroovyArea/MyChickenBreastShop: ChikenBreastShop API with Spring boot ChikenBreastShop API with Spring boot... 2022. 6. 13.
2022.03.11~03.13์˜ ๊ธฐ๋ก โ–ถ 3์ผ ๊ณ„ํš=>  ๊ณต๋ถ€ ๊ด€๋ จ1) ์ˆ˜์—… ๋‚ด์šฉ ๋ณต์Šต2) MVC ๊ฐ์ฒด์ง€ํ–ฅ ๋ฆฌํŒฉํ† ๋ง ์™„๋ฃŒ3) ๊ธฐ์ˆ  ์งˆ๋ฌธ ๋‹ต๋ณ€ ๋…ธ์…˜ ์ •๋ฆฌ ๋ฐ SOLID ์˜ˆ์ œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (OCP & DIP & ISP)4) 8๊ฐœ์˜ ๋””์ž์ธ ํŒจํ„ด ์ •๋ฆฌ => ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ1) ERD ๊ทธ๋ ค ๋†“๊ณ  pdf๋กœ ๋งŒ๋“ค์–ด๋†“๊ธฐ2) ์ด๋ฏธ์ง€ ์ˆ˜์ง‘ ๋งˆ์šฐ์Šค ๊ฑด์ „์ง€ ๋ฐ”๊ฟ”๋ผ!! [์™„๋ฃŒ]โ–ถ ๋ฌธ์ œ ์ •๋ฆฌ1. ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ์ฃผ์ž…์€ ๊ดœ์ฐฎ์Œ. ํ•˜์ง€๋งŒ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์œผ๋กœ ์˜์กดํ•˜์ง€ ๋ง๊ฒƒ (ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ์–ด๋ ค์›€)> ํ”Œ๋ ˆ์ด์–ด๋กœ ์ปดํ“จํ„ฐ๋ฅผ ์ฃผ์ง€๋ง๊ณ  ์™ธ๋ถ€์—์„œ ๋น„๊ต๊ฐ’์„ ์–ป์–ด๋ผpublic class Player { private final Rsp playerRsp; private final Computer computer = new Computer(); // setter ๋Œ€์‹  ์ƒ์„ฑ์ž๋กœ ์ฃผ์ž…์‹œ์ผœ.. 2022. 3. 12.
2022.03.08~03.10 ์˜ ๊ธฐ๋ก โ–ถ 3์ผ ๊ณ„ํš=>  ๊ณต๋ถ€ ๊ด€๋ จ1) ์Šคํ”„๋ง ๊ฐœ๊ตฌ๋ฆฌ์ฑ… ์™„๋… ํ›„ ๋…ธ์…˜ ๋ฐ ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ2) MVC ๊ฐ์ฒด์ง€ํ–ฅ ๋ฆฌํŒฉํ† ๋ง ํ•˜๋ฃจ์ข…์ผ (9์ผ ์˜ค๋Š˜)3) ๊ธฐ์ˆ  ์งˆ๋ฌธ ๋‹ต๋ณ€ ๋…ธ์…˜ ์ •๋ฆฌ ๋ฐ SOLID ์˜ˆ์ œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ => ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ1) DB ํ…Œ์ด๋ธ” ์™„์„ฑ ๋ฐ select JOIN ๋Œ€๋žต์ ์ธ ์ฟผ๋ฆฌ๋ฌธ ์ž‘์„ฑ2) git ํ˜‘์—…โ–ถ ๋ฌธ์ œ ์ •๋ฆฌ1. ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„> ๋‹จ์ผ ์ฑ…์ž„ ์›์น™์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ๋ถ„๋ฆฌ2. ๋‚ด๋ถ€ ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ Model์—์„œ ์ผ์–ด๋‚˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค> ์ƒ์ˆ˜์˜ ๋‚˜์—ด์ธ enum ํด๋ž˜์Šค์—์„œ ํ•ด๊ฒฐ3. setter ๋ฉ”์„œ๋“œ์˜ ์ƒ๋žต (๋ถˆ๋ณ€์„ฑ์„ ์ง€์ผœ๋ผ)> ์ƒ์„ฑ์ž์˜ ์ฃผ์ž…์œผ๋กœ ํ•ด๊ฒฐ4. ๊ฐ’ ์ž์ฒด์˜ ๋น„๊ต๋ณด๋‹ค ํƒ€์ž…์˜ ์˜๋ฏธ๋ฅผ ๋” ์‚ด๋ ค์„œ ๋น„๊ต> ํƒ€์ž…์„ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ™์€ ํƒ€์ž…๋ผ๋ฆฌ์˜ ๋น„๊ต๊ฐ€ ์ฝ”๋“œ ์ž‘์„ฑ์˜ ๊ฐ€๋…์„ฑ์ด ์ข‹๋‹ค. 5. ๋ชจ๋ธ์—์„œ ๋ทฐ ์˜์กด์„.. 2022. 3. 9.
๋ฐ˜์‘ํ˜•