[ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ์ฑŒ๋ฆฐ์ง€ ] 23.03.18 week 3

2023. 3. 21. 22:33ใ†๐ŸŒป์Šคํ„ฐ๋”” ๊ด€๋ฆฌ/๐Ÿ™‰์„œ๋ฒ„ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ์ฑŒ๋ฆฐ์ง€

๋ฐ˜์‘ํ˜•

 

GitHub - mooh2jj/side-project-challenge-study: ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ์ฑŒ๋ฆฐ์ง€ ์Šคํ„ฐ๋””์ž…๋‹ˆ๋‹ค.

์„œ๋ฒ„ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ์ฑŒ๋ฆฐ์ง€ ์Šคํ„ฐ๋””์ž…๋‹ˆ๋‹ค. Contribute to mooh2jj/side-project-challenge-study development by creating an account on GitHub.

github.com

 

๊ณผ์ œ

1) ์ด๋ก  ์ฑ… 3๊ถŒ ์„ ์ •
2) ์ฑ… 1๊ถŒ ์ฝ๊ณ  ๋ธ”๋กœ๊ทธ์— ๋ถ๋ฆฌ๋ทฐ ๋‚จ๊ธฐ๊ธฐ
3) ๋ถ๋ฆฌ๋ทฐ ๋ฐฉ์‹์€ "๊ฐ€์žฅ ์ธ์ƒ๊นŠ์€ ๊ตฌ์ ˆ" & "์ธ์ƒ๊นŠ์€ ๊ธฐ์ˆ ์  ์ธ์‚ฌ์ดํŠธ"๋กœ ์ •๋ฆฌ

 

 

์ฑ…์„ ์ฝ์œผ๋ฉด์„œ ์‹ ๊ฒฝ์„ ์“ด ๋ถ€๋ถ„


ํ•™์Šต์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์ฑ…์€ ํ•˜๋‚˜์˜ ์ˆ˜๋‹จ์œผ๋กœ ๊ทธ๊ฒƒ์„ ์ฝ๊ณ  ๋‚ด๊ฐ€ ๋ฐฐ์šด ๋‚ด์šฉ, ๋А๋‚Œ์„ ์ •๋ฆฌํ•˜๋Š” ๊ฒŒ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋‚ด๊ฐ€ ๋ธ”๋กœ๊ทธ๋ฅผ ํ•˜๋ฉด์„œ ๋А๋ผ๋Š” ๋ถ€๋ถ„์€ ๊ธ€์„ ๋งŽ์ด ์ž‘์„ฑ์„ ํ•˜์—ฌ ์ •๋ฆฌํ•˜๋Š” ์Šต๊ด€์„ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‚ด ์ƒ๊ฐ์„ ๊ธ€๋กœ ์ •๋ฆฌํ•˜๊ธฐ ํž˜๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์€ ๊พธ์ค€ํ•œ ์ž‘์„ฑ์„ ํ†ตํ•˜์—ฌ ๋‚ด ์ƒ๊ฐ์„ ์ •๋ฆฌํ•˜๋Š” ์Šคํ‚ฌ์„ ๋†’์—ฌ์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

 

์ฑ… ์„ ์ •์— ๋ณด๊ธฐ

  1. CS์ „๊ณต์ง€์‹๋…ธํŠธ - ๋น„์ „๊ณต์ž๊ฐ€ ์ „๊ณต์ž์˜ 4๋…„์น˜ ์ „๊ณต๋‚ด์šฉ์„ ์งง๊ณ  ์••์ถ•์ ์œผ๋กœ ์ดํ•ดํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ์ฑ…์œผ๋กœ CS๋ฉด์ ‘ ๋Œ€๋น„์šฉ์œผ๋กœ ๊ฐ€์žฅ ์ข‹์€ ์ฑ…์ด๋‹ค.
  2. ๊ฐ์ฒด์ง€ํ–ฅ๊ณผ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด - ์ž๋ฐ” ๋ฐฑ์•ค๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ OOP๋ฅผ ์•Œ์•„์•ผ ํ•˜๋Š” ๊ฒƒ์€ ๋‘๋งํ•˜๋ฉด ์ž”์†Œ๋ฆฌ. ํ•˜์ง€๋งŒ OOP์— ๋Œ€ํ•œ ์˜คํ•ด๋ฅผ ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ด ์ฑ…์ด ์ž˜ ์ฐ์–ด์ค€๋‹ค. ์•„์ฃผ ์‰ฝ๊ฒŒ.
  3. ์Šคํ”„๋ง ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์›๋ฆฌ์™€ ์ดํ•ด - ์ž๋ฐ”๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ, OOP, ๋‹ค์ง€์ธํŒจํ„ด, ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ, ๋ชจ๋˜์ž๋ฐ” ๋‚ด์šฉ๊นŒ์ง€ ์ข…ํ•ฉ์„ธํŠธ๋กœ ์„ ๋ฌผํ•˜๋Š” ์ฑ…. ๊ฐ€์„ฑ๋น„๊ฐ€ ์ข‹๋‹ค. ์ดˆ๋ณด์ž๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์•„์ฃผ ์ข‹๊ฒŒ ๋˜์–ด์žˆ๋Š” ๊ฒƒ๋„ ๋ค.
  4. ํด๋ฆฐ์ฝ”๋“œ - ์„ค๊ณ„๊ด€์ ์—์„œ OOP, ๊ทธ๋ฆฌ๊ณ  SOLID ์›์น™์— ๋งž๊ฒŒ ์ฝ”๋“œ๋ฅผ ๊นจ๋œปํ•˜๊ฒŒ ์ž‘์„ฑํ• ๋ ค๋ฉด? ์— ์•„์ฃผ ์ข‹์€ ๋‹ต์•ˆ๊ณผ ํ–ฅํ›„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ์ค‘์š”์„ฑ๋„ ๊ฐ•์กฐํ•˜๋Š” ์ฑ…์ด๋‹ค. ํ•˜์ง€๋งŒ ์–ด๋””๊นŒ์ง€๋‚˜ ๊ฐ€์ด๋“œ๋ผ๋Š” ์ ์€ ์žŠ์ง€ ๋ง์ž.
  5. Real MySQL8.0 - MySQL ๋ฒ„์ „ 5๋ฒ„์ „์—์„œ 8๋ฒ„์ „์œผ๋กœ ๊ฐ€๋ฉด์„œ ๋งŽ์€ ๊ฒƒ์ด ๋ฐ”๊ผˆ๋‹ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํŠน์ง•์ธ Transaction ๊ธฐ๋Šฅ, InnoDB ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„, ๊ทธ๋ฆฌ๊ณ  index์— ๋Œ€ํ•œ ๊ฐœ๋…๋“ค์„ ์ œ๋Œ€๋กœ ํŒŒํ›ผ์น  ์ˆ˜ ์žˆ๋Š” ์ฑ…์ด๋‹ค.

 

๋‚˜๋Š” 2์ฃผ ์‹œ๊ฐ„์„ ํ†ตํ•˜์—ฌ 3๊ถŒ์„ ์ฝ์–ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ์—ˆ๋‹ค. ๋ฌผ๋ก  ๋ชจ๋“  ์ฑ…์„ ๋ณด๊ณ  ์‹ถ์ง€๋งŒ ๋‚ด ํ˜„์žฌ ์ƒํ™ฉ์— ์ง‘์ค‘ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฑ…์„ ์„ ์ • 1. CS ์ „๊ณต์ง€์‹๋…ธํŠธ | 2. Real MySQL 1,2 | 3. JPA

 

๋‹น์ผ ๋ฐ˜์žฅ๋‹˜์˜ ์„ค๋ช…์— ๋Œ€ํ•œ ์ •๋ฆฌ

CS์— ๋Œ€ํ•ด ํ•™์Šต์„ ํ•˜๋ฉด์„œ ๋ชจ๋“  ๋ฌธ์ œ๊ฐ€ ์—ฐ๊ฒฐ์ด ๋œ๋‹ค๋Š” ์ƒ๊ฐ์„ ๊ฐ€์ง€๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด๋•Œ ๋ฐ˜์žฅ๋‹˜์ด ๋๋‚˜๊ธฐ ์ด์ „์— ๊ฐ„๋‹จํ•œ ํ๋ฆ„์— ๋Œ€ํ•ด ์„ค๋ช…์„ ํ•ด์ฃผ์…จ๋Š”๋ฐ ๋‚ด๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๋‚ด์šฉ๊ณผ ์šด์˜์ฒด์ œ์—์„œ ๋ง‰ํžŒ ๋ถ€๋ถ„์ด ํ•ด๊ฒฐ์ด ๋˜์—ˆ๋‹ค.

์Šค๋ ˆ๋“œ์™€ ํ”„๋กœ์„ธ์Šค์˜ ๊ฐ€์žฅ ๋ช…ํ™•ํ•œ ์ฐจ์ด๋Š”๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ์˜ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.  ์Šค๋ ˆ๋“œ๋Š” ๊ณต์œ ๋ฅผ ํ†ตํ•˜์—ฌ ๋ฉ€ํ…Œ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•œ๋ฐ ์ด๋•Œ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” DB์˜ LOCK ๊ฐœ๋…์ด ์ด์–ด์กŒ๊ณ  ๋”ฐ๋กœ LOCK์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ํ•™์Šตํ–ˆ๋‹ค.

 

 

๋™์‹œ์„ฑ ์ด์Šˆ๋ž€ ๋ฌด์—‡์ธ๊ฐ€? - (1)

์ด ๊ธ€์„ ์™œ ์ž‘์„ฑํ•˜๋Š”๊ฐ€? ๊ธฐ์กด์— CS ๋ฐ ์ž๋ฐ”์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด ๋งŽ์€ ์–ธ๊ธ‰์ด ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๊ฐœ๋…์ ์œผ๋กœ ์ดํ•ด๋ฅผ ํ•˜์˜€์ง€๋งŒ ์‹ค์ œ๋กœ ์ฝ”๋“œ๋ฅผ ํ†ตํ•˜์—ฌ ํ•™์Šตํ•˜๊ณ  ๋™์‹œ์„ฑ์˜

pos04167.tistory.com

 

 

 

๋ฐ˜์‘ํ˜•