๐ŸฅธReview/์ฑ… ๋ฆฌ๋ทฐ

์ปค๋ฆฌ์–ด ์Šคํ‚ฌ by ์กด ์†Œ๋ฉ”์ฆˆ

hellohailie 2022. 7. 3. 23:34

ํ•œ ๋‹ฌ์ „์— ์ฝ์—ˆ์ง€๋งŒ ๋ฆฌ๋งˆ์ธ๋“œ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฝ์œผ๋ฉด์„œ ํ•ต์‹ฌ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๊ธฐ๋กํ•œ ๋ถ€๋ถ„์„ ์ •๋ฆฌํ•ด์„œ ํฌ์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค. 

๋‚˜์ค‘์— ์ œ๊ฐ€ ๋ณด๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๊ธฐ ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•œ ๊ธ€์€ ์•„๋‹™๋‹ˆ๋‹ค. 

 

 

์ด ์ฑ…์„ ํ†ตํ•ด ์–ป๊ณ  ์‹ถ์€ ๊ฒƒ

  1. ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ๊ณต์ ์œผ๋กœ ์ž…๋ฌธํ•˜๋Š” ๋ฐฉ๋ฒ•
  2. ํšจ๊ณผ์ ์ธ ๊ณต๋ถ€๋ฐฉ๋ฒ• 
  3. ์ข‹์€ ์ผ์ž๋ฆฌ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•
  4. ์žฌ๋ฐŒ๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๋Š” ๋ฐฉ๋ฒ•
  5. ์›น ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ๋Œ€๋žต์ ์ธ ์ •๋ณด
  6. ์ข‹์€ ๊ฐœ๋ฐœ์ž๋˜๊ธฐ
  7. ์•ž์œผ๋กœ์˜ ๋ฐฉํ–ฅ์„ฑ๊ณผ ์ž๊ธฐ๊ณ„๋ฐœ ๋ฐฉ๋ฒ•

 

ํ•ต์‹ฌ! ์ด ์ฑ…์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์‹ค์ฒœํ•˜์ž!

 

 

p. 43 ๋ฌด์–ธ๊ฐ€๋ฅผ ์ž๋™ํ™”ํ•˜๊ธฐ ์ „์— ๊ทธ ์ž‘์—…์„ ์ˆ˜๋™์œผ๋กœ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋ถ€ํ„ฐ ๊นจ์šฐ์ณ์•ผ ํ•œ๋‹ค. 

[๋ฌธ์ œ์ดํ•ดํ•˜๊ธฐ] - ์ฝ”๋”ฉ์„ ํ•˜๊ธฐ ์ „์— ์ž์‹ ์ด ๋ฌด์—‡์„ ๋งŒ๋“œ๋Š”์ง€, ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ•˜๋Š”์ง€ ์•Œ๊ณ  ๊ทธ๊ฒƒ์„ ์ดํ•ดํ•˜๋Š” ์ง€์ ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค. 

[์„ค๊ณ„ํ•˜๊ธฐ] - ๋ฐ”๋กœ ์ฝ”๋”ฉ์— ๋›ฐ์–ด๋“ค๊ธฐ ์ „์— ์ผ์ • ์ˆ˜์ค€์˜ ์„ค๊ณ„๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค. 

[์ฝ”๋“œ์ž‘์„ฑํ•˜๊ธฐ] - ํ›Œ๋ฅญํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜๋Š” ํ•„๋…์„œ 1. Code Complete / Steve McConnel 2. Clean Code / Robert Martin

[ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋ฐฐํฌํ•˜๊ธฐ] 

[์ฝ”๋“œ ์ž‘์„ฑ ๊ทธ ์ดํ›„] - ๋งˆ์ง€๋ง‰์œผ๋กœ ๋””๋ฒ„๊น…ํ•˜๊ธฐ

 

<์–ด๋–ค ์œ ํ˜•์˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ  ์‹ถ์€์ง€ ๊ตฌ์ฒด์ ์ธ ๋ชฉํ‘œ๋ฅผ ์„ธ์šฐ์ž>

โžฅ ๋‚˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๋ฆฌ์—‘ํŠธ๋ฅผ ๋Šฅ์ˆ™ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ค„ ์•Œ๊ณ , ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋„ ํ™œ์šฉํ•  ์ค„ ์•„๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ  ์‹ถ๋‹ค. 
โžฅ ๊ฐœ๋ฐœ ๋ฌธํ™”๊ฐ€ ์ข‹๊ณ  ์ˆ˜ํ‰์ ์ธ ๋ฌธํ™”๋ฅผ ๊ฐ€์ง„ ๋ˆ ๋งŽ์ด ์ฃผ๋Š” ๋Œ€๊ธฐ์—…์— ๊ฐ€๊ณ  ์‹ถ๋‹ค!

 

 

ํ•œ ๊ฐ€์ง€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๊ผผ๊ผผํžˆ ๋ฐฐ์šฐ๊ณ , ์ฝ”๋“œ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๋Š” ๋ฒ•์„ ๋ฐฐ์›Œ์•ผ ํ•œ๋‹ค. ์ฝ”๋“œ ๊ตฌ์กฐํ™”๋ž€ ์ฃผ์„์„ ์ค„์ค„์ด ๋‹ฌ์ง€ ์•Š๊ณ ๋„ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž˜ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์›๋ž˜๋Š” ์ฝ”๋“œ๋งŒ์œผ๋กœ๋„ ์˜์‚ฌ ์ „๋‹ฌ์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. 

๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ƒˆ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ผ๋ณด๋‹ค ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๋Š” ์ผ์— ํ›จ์”ฌ ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ์“ด๋‹ค. (์Šคํ‹ฐ๋ธ ๋งฅ์ฝ”๋„ฌ์ด ์“ด <code complete> ์ฑ… ์ถ”์ฒœ)

์ฝ”๋“œ ๊ตฌ์กฐํ™” ๋ฐฉ๋ฒ•์„ ๋‚˜์ค‘์œผ๋กœ ๋ฏธ๋ฃฐ ์ƒ๊ฐํ•˜์ง€ ๋ง๊ณ , ์ฝ”๋”ฉ์„ ์ฒ˜์Œ ๋ฐฐ์šธ๋•Œ๋ถ€ํ„ฐ ๊น”๋”ํ•˜๊ฒŒ ์ž˜ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ๋‘ฌ๋ผ!

 

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์„ธ๊ณ„์—์„œ๋Š” ๋ณต์žก์„ฑ์„ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฃฐ์ง€ ๋Š˜ ๊ณ ๋ฏผํ•ด์•ผํ•œ๋‹ค. ๋ณต์žกํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ณ„ ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด(ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค)๋กœ ๋‚˜๋ˆ„์–ด ๋””์ž์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋Š˜ ์ƒ๊ฐํ•˜๋ฉฐ, ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„๋ฅผ ํ•˜๋„๋ก ํ•ด์•ผํ•œ๋‹ค. 

 

 


<์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ>

  • ๋ฐฐ์—ด, ๋ฐฑํ„ฐ
  • ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
  • ์Šคํƒ
  • ํ
  • ํŠธ๋ฆฌ
  • ํ•ด์‹œ
  • ์„ธํŠธ

 

๋ฐ์ดํ„ฐ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๋ฉด ์–ด๋ ค์šด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ณ  ๋ช…์พŒํ•˜๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค. 

 

 


ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํŠน์ • ํ”Œ๋žซํผ์ด๋‚˜ ๋ณต์ˆ˜์˜ ํ”Œ๋žซํผ์—์„œ ์ฝ”๋“œ๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ธํŠธ์ด๋‹ค. 

์Šคํƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ•˜๋‚˜๋ฅผ ์ œ๋Œ€๋กœ ์™„์„ฑํ•˜๋Š”๋ฐ ํ•จ๊ป˜ ์“ฐ์ด๋Š” ๊ธฐ์ˆ  ์„ธํŠธ์ด๋‹ค. (์—ฌ๊ธฐ์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋ ˆ์ž„์›Œํฌ๋„ ํฌํ•จ๋œ๋‹ค. )

ex) MEAN ์Šคํƒ

mongoDB: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ์ˆ 

Express.js: ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์šฉ Node.js์˜ ํ”„๋ ˆ์ž„์›Œํฌ

Angular.JS: ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ui ๊ฐœ๋ฐœ์šฉ ํ”„๋ŸฐํŠธ์—”๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.

Node.js: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์›น ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ ์“ฐ์ด๋Š” ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ด๋‹ค. 

 

์ด ๋ชจ๋“  ๊ธฐ์ˆ ๊ณผ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์•Œ์•„์•ผ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ๋Œ€๋กœ ๊ฐœ๋ฐœํ•  ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ”๊ฒŒ ๋œ๋‹ค. ์Šคํƒ์„ ์•Œ๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ด ๋” ์‰ฌ์›Œ์ง„๋‹ค. 

 


 

<๊ฐœ๋ฐœ์ž๊ฐ€ ๊ผญ ์•Œ์•„์•ผํ•  ์ตœ์†Œํ•œ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ํ•ญ๋ชฉ>

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘๋™ ๋ฐฉ์‹
  • ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋‹จ์ˆœํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๋ฐ์ดํ„ฐ ์‚ฝ์ž…, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๋ฐ์ดํ„ฐ ์„ธํŠธ ๊ฒฐํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ์ž์‹ ์ด ์„ ํƒํ•œ ํ”Œ๋žซํผ์ด๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•

 

๋””๋ฒ„๊น…์€ ๋ฐ˜๋“œ์‹œ ๋ฐฐ์›Œ์•ผํ•œ๋‹ค. ์ž์‹ ์ด๋‚˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ๋””๋ฒ„๊น…ํ•  ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ์•ผ๋งŒ ํ•œ๋‹ค. !!!

 


<๋ฌด์–ธ๊ฐ€๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ฐฐ์šฐ๋Š” ๋ฐฉ๋ฒ•>

๋ชฉํ‘œ์„ค์ •ํ•˜๊ณ , ๊ทธ ๋ชฉํ‘œ ๋‹ฌ์„ฑ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ๋ฐฉ๋ฒ• ์ƒ๊ฐํ•ด์„œ ๋„๋‹ฌํ•˜๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ€๊ธฐ

ํ•™์Šต ๊ณ„ํš ์„ธ์šฐ๊ธฐ

์ง์ ‘ ์ฝ”๋“œ ์งœ๊ณ , ์ตํžˆ๊ธฐ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต ์ฐพ๊ธฐ

๋ฐฐ์šด ๋‚ด์šฉ ๋‚จ์—๊ฒŒ ๊ฐ€๋ฅด์น˜๊ธฐ

 


์ง€๊ธˆ์€ ์–ธ์–ด ์ž์ฒด์˜ ๊ธฐ๋Šฅ๋ณด๋‹ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๋Š๋ƒ๊ฐ€ ๋” ์ค‘์š”ํ•˜๋‹ค!! ์–ด๋–ค ์–ธ์–ด๋ฅผ ๋ฐฐ์šธ์ง€๋Š” ๊ทธ๋‹ฅ ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค. 

์ผ๋‹จ ํ•œ๊ฐ€์ง€ ์–ธ์–ด๋ฅผ ๊พธ์ค€ํžˆ ๋ฐฐ์›Œ๋ผ!

 

 

<์ฒซ ๋ฒˆ์งธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐฐ์šฐ๊ธฐ>

 

์ž˜ ์ž‘๋™ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์ธ๊ธฐ์žˆ๋Š”๊ฑธ๋กœ)์˜ ์†Œ์Šค์ฝ”๋“œ ์‚ดํŽด๋ณด๊ธฐ, ๊นƒํ—™ ์ถ”์ฒœ : ์ดํ•ด๋˜์ง€ ์•Š์•„๋„ ๊ทธ๋ƒฅ ์ตœ์„ ์„ ๋‹คํ•ด์„œ ํ•˜๋‚˜ ๋‘˜ ์ •๋„์˜ ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€, ์•„๋‹ˆ๋ฉด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ์„๋•Œ ๊ธฐ๋Šฅ์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ!!

 

ํ•ด๋‹น ์–ธ์–ด์˜ ๋ฒ”์œ„๊ฐ€ ์–ด๋””๊นŒ์ง€์ด๊ณ , ๊ทธ ์–ธ์–ด์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฒ”์œ„๋Š” ์–ด๋””๊นŒ์ง€์ธ์ง€ ์„ธ์‹ฌํ•˜๊ฒŒ ํ™•์ธํ•˜๊ธฐ

๊ตฌ๋ถ„ํ•˜๋‹ค๋ณด๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋Œ€๋ถ€๋ถ„์ด ์–ธ์–ด ์ž์ฒด์˜ ๋ถ„๋Ÿ‰์€ ๊ทธ๋ฆฌ ๋งŽ์ง€ ์•Š๊ณ , ์ƒ๋Œ€์ ์œผ๋กœ ๋ฐฐ์šฐ๊ธฐ ์‰ฌ์šด ๋ฐ˜๋ฉด, ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๊ทธ ๋ฒ”์œ„๊ฐ€ ์ปค์„œ ์ต์ˆ™ํ•ด์งˆ ๋งŒํผ ๋ฐฐ์šฐ๊ธฐ๊ฐ€ ๋” ์–ด๋ ต๋‹ค.

์˜ค๋Š˜๋‚  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๊ทธ ์–ธ์–ด๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ํ†ต๋‹ฌํ•˜๋Š๋ƒ๋ณด๋‹ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ ์‚ฌ์šฉ๋ฒ•์„ ์•„๋Š๋ƒ๊ฐ€ ๋” ์ค‘์š”ํ•˜๋‹ค. 

 

์ •์ฒด๊ธฐ๋ผ๊ณ  ๋Š๋‚€๋‹ค๋ฉด,

์ง€๊ธˆ ์งœ๊ณ  ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„์”ฉ ์‚ดํŽด๋ณด๋ฉด์„œ ๊ฐ ์ค„๊ณผ ๋ฌธ์žฅ์ด ๊ทธ ์ฝ”๋“œ์—์„œ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•˜๊ธฐ! (์ด์œ ๋ชฐ๋ผ๋„ ์–ด๋–ค ์ž‘์—…์ด ์ง„ํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ์•„๋‚ด๊ธฐ!)

 

๋ฌด์—‡์ด๋“  ๋งŒ๋“ค์–ด๋ณด๊ธฐ

-ํ…์ŠคํŠธ ํŒŒ์ผ์—์„œ ์ž…๋ ฅ์„ ์ฝ๊ณ  ๋‹ค๋ฅธ ํ…์ŠคํŠธ ํŒŒ์ผ์— ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ

-์ธ๊ฐ„์ธ ์ฒ™ ํ•˜๋ฉด์„œ ์‚ฌ์šฉ์ž์˜ ๋ง์— ์žฌ๋ฏธ์žˆ๋Š” ๋‹ต๋ณ€์„ ํ•˜๋Š” ์ฑ—๋ด‡ ๋งŒ๋“ค๊ธฐ

 

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€๊ธฐ

๊พธ์ค€ํžˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ๋„์ „ํ•˜๊ณ , ๋‹ค๋ฅธ ์ด๋“ค์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ๋ฐฉ์‹๋„ ๋ˆ๊ธฐ ์žˆ๊ฒŒ ๋ณด๊ธฐ! ๊ทธ๋Ÿฌ๋ฉด ์ ์  ์‹ค๋ ฅ์ด ๋‚˜์•„์ง„๋‹ค. (top coder, creacking the coding interview, programming pearls, project euler, codility) ๋ชปํ•ด๋„ ๊พธ์ค€ํžˆ ๋„์ „ํ•˜๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ค. ํ’€์ง€ ๋ชปํ•˜๊ณ  ๋™๋™๊ฑฐ๋ฆฌ๊ณ  ์žˆ๋‹ค๋ฉด, ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ณด๊ธฐ!!

 

<์ฝ”๋”ฉ ๋ฌธ์ œ ํ‘ธ๋Š” ๋ฒ•>

๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 

[์ฝ”๋”ฉ ์ธํ„ฐ๋ทฐ ์™„์ „ ๋ถ„์„ by ๊ฒŒ์ผ ๋ผํฌ๋งŒ ๋งฅ๋‹ค์›”] ์ฑ… ์ถ”์ฒœ

 

<์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€>

(topcoder ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŠธ๋ ˆ์ด๋‹)

๋ณดํ†ต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ์‚ฌ์ดํŠธ๋Š” codility ์™€ hackerrank ๋ผ๋Š” ์‚ฌ์ดํŠธ๊ฐ€ ์œ ๋ช…ํ•˜๋‹ค

 

 


<์ธํ„ด์‰ฝ>

๋‚ด๊ฒŒ ๊ฐ€์žฅ ๊ฐ€์น˜ ์žˆ๋Š” ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ณ  ๋‚ด๊ฐ€ ๊ฐ€์žฅ ๊ณตํ—Œํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์€ ํšŒ์‚ฌ ๋ชฉ๋ฃ์„ ๋งŒ๋“ ๋‹ค. 

๊ทธ ํšŒ์‚ฌ ์—ฐ๊ตฌ

๊ทธ๋“ค์ด ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— ๋‚ด๊ฐ€ ๋ฐ”๋กœ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์  ๊ฐ•์กฐ

 

 

<์ด๋ ฅ์„œ ์ž‘์„ฑ ๋ฐฉ๋ฒ•>

  • ๋ชจ๋“  ๊ด€๋ จ ์—…๋ฌด ๊ฒฝ๋ ฅ์˜ ์ •ํ™•ํ•œ ๋‚ ์งœ
  • ๊ฐ ์ผ์ž๋ฆฌ์˜ ์งํ•จ๊ณผ ์ง๋ฌด ๋‚ด์šฉ
  • ๊ฐ ์—…๋ฌด์—์„œ ์„ฑ์ทจํ•œ ์ฃผ์š” ์—…์ 
  • ๋ชจ๋“  ํ•™๋ ฅ
  • ๊ฐ์ข… ์ฆ๋ช…์„œ์™€ ์ˆ˜์ƒ ๊ฒฝ๋ ฅ
  • ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ฑฐ๋‚˜ ๊ฐ€์žฅ ํฐ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ธฐ์ˆ  ๋ชฉ๋ก
  • ์ž์‹ ์ด ํ•˜๊ณ  ์‹ถ์€ ์ง๋ฌด์— ๊ด€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ง๋ฌด ์„ค๋ช… ์ƒ˜ํ”Œ
  • ๊ทธ ์™ธ ๊ด€๋ จ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ

 

<๋งํฌ๋“œ์ธ ์‹œ์ž‘ํ•˜๊ธฐ>

์ด๋ ฅ์„œ์˜ ์ดˆ์ ์„ ์ž์‹ ์ด ๋ฌด์—‡์„ ์›ํ•˜๋Š๋ƒ๊ฐ€ ์•„๋‹ˆ๋ผ ์ž์‹ ์ด ์–ด๋–ค ๊ฐ€์น˜๋ฅผ ์ œ๊ณตํ•˜๋Š๋ƒ์— ๋งž์ถ”๊ธฐ. (์ž์‹ ์ด ๋ฌด์Šจ ์ผ์„ ํ•˜๊ณ  ์‹ถ์€์ง€๋Š” ์ ์„ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ ํšŒ์‚ฌ์— ๋งž๋Š” ํŠน๋ณ„ํ•œ ๊ฐ€์น˜๋ฅผ ์ œ๊ณตํ•  ๋Šฅ๋ ฅ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ•ด๋ผ)

๋ฌด์Šจ ์ผ์„ ์–ด๋–ป๊ฒŒ ํ•ด์„œ ์–ด๋–ค ๊ฒฐ๊ณผ๋ฅผ ๋‚ด์—ˆ๋Š”์ง€ ์“ฐ๊ธฐ (์ž์‹ ์ด ํ•œ ์—…๋ฌด, ๊ทธ ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•œ ๋ฐฉ๋ฒ•, ์ž์‹ ์ด ์–ป์€ ๊ฒฐ๊ณผ)

 

์ดˆ๊ณผ๊ทผ๋ฌด๊ฐ€ ์œ ์ตํ•œ ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๋‹ค. ๊ฒฝ๋ ฅ ๋ฐœ์ „์—๋„ ๋„์›€์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. 


 

<๋‹ค๋ฅธ ๋ถ„์•ผ์—์„œ ์˜จ ์ด๋“ค์˜ ๊ฐ•์ >

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ถ„์•ผ์—์„œ ์ฐพ์•„๋ณด๊ธฐ ์–ด๋ ค์šด ๋Œ€์ธ ๊ด€๊ณ„ ๊ธฐ์ˆ ๊ณผ ์†Œํ”„ํŠธ ์Šคํ‚ฌ์„ ๊ฐ–์ถ”๊ณ  ์žˆ๋‹ค.

๋‹ค๋ฅธ ๋ถ„์•ผ์—์„œ ๋ฐœ์ „์‹œํ‚จ ์†Œํ”„ํŠธ ์Šคํ‚ฌ์„ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ถ„์•ผ์—์„œ๋„ ์ž˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 


<์›น ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผํ•˜๋Š” ๊ฒƒ>

html

css

js

์„œ๋ฒ„ ์ธก ๋ Œ๋”๋ง

ํด๋ผ์ด์–ธํŠธ ์ธก ๋ Œ๋”๋ง

api : ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์— ๋™์ž‘์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ์ „์†กํ•˜๋Š” ๋ช…๋ น์–ด

http์— ์ƒํƒœ๊ฐ€ ์—†๋Š” ์ด์œ 

์บ์‹ฑ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

ํ™•์žฅ์„ฑ

๋ถ„์„

ํŽ˜์ด์ง€ ๋ Œ๋”๋ง

๋ชจ๋ฐ”์ผ ์›น ์•ฑ

 

๋“ฑ๋“ฑ ์›น ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ ๊ฑฐ๋ผ๋ฉด ์ด ๋ชจ๋“  ๊ฒƒ์„ ์•Œ์•„์•ผํ•œ๋‹ค.

 


 

<๋””๋ฒ„๊น…>

์ฝ”๋“œ ์ž‘์„ฑ ๋Šฅ๋ ฅ๊ณผ ์ฝ”๋“œ ๋””๋ฒ„๊น… ๋Šฅ๋ ฅ์€ ์„œ๋กœ ๋ณ„๊ฐœ๋‹ค.

๋””๋ฒ„๊น…์— ์ ‘๊ทผํ•˜๋Š” ํƒœ๋„๊ฐ€ ๋ฌด์—‡๋ณด๋‹ค ์ค‘์š”ํ•˜๋‹ค. 

 

๋””๋ฒ„๊น…์€ ๋””๋ฒ„๊ฑฐ์™€ ์•„๋ฌด ๊ด€๋ จ์ด ์—†๋‹ค. 

 

๋””๋ฒ„๊น…์ด๋ž€ ์ฝ”๋“œ ๋ฒ ์ด์Šค์—์„œ ๋ฌธ์ œ์˜ ๊ทผ์›์„ ์ฐพ์•„์„œ ๊ทธ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ๋งŒํ•œ ์š”์ธ์„ ๊ฐ€๋ ค๋‚ด๊ณ , ์—ฌ๋Ÿฌ ๊ฐ€์„ค์„ ์‹œํ—˜ํ•ด๋ณด๋Š” ๊ณผ์ •์„ ํ†ตํ•ด ๋ฟŒ๋ฆฌ๊ฐ€ ๋˜๋Š” ์ง„์ •ํ•œ ์›์ธ์„ ์ฐพ๊ณ  ๊ทธ ์›์ธ์„ ์ œ๊ฑฐํ•œ ํ›„, ๋‹ค์‹œ๋Š” ๊ทธ ๋ฌธ์ œ๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ.

 


<์ฝ”๋“œ ์œ ์ง€ ๋ณด์ˆ˜>

๊ฐœ๋ฐœ์ž๋Š” ์ƒˆ ์ฝ”๋“œ๋ฅผ ์“ฐ๋Š” ์‹œ๊ฐ„๋ณด๋‹ค ์ฝ”๋“œ๋ฅผ ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๋Š” ์‹œ๊ฐ„์ด ํ›จ์”ฌ ๋” ๊ธธ๋‹ค. 

 

๋ฆฌํŒฉํ† ๋ง ๊ณผ์ •์„ ๊ฑฐ์น˜์ž! (๊ธฐ์กด ์ฝ”๋“œ ์„ค๊ณ„๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๊ณผ์ •)

๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ

์ฃผ์„ ์“ธ๊ฑฐ๋ฉด ์ž˜ ์“ฐ๊ธฐ

 

์œ ์ง€ ๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ž์‹ ์ด ์ž‘์„ฑํ•˜์ง€ ์•Š์€ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๋Š”๋ฐ ๋„์›€์ฃผ๋Š” ์ฑ…

  1. clean code by ๋กœ๋ฒ„ํŠธ ๋งˆํ‹ด
  2. code complete by ์Šคํ‹ฐ๋ธŒ ๋งฅ์ฝ”๋„ฌ
  3. ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ ํ™œ์šฉ ์ „๋žต (working effectively with legacy code) by ๋งˆ์ดํด ํŽ˜๋”์Šค
  4. ๋ฆฌํŒฉํ† ๋ง by ๋งˆํ‹ด ํŒŒ์šธ๋Ÿฌ

 


<๊ฐœ๋ฐœ์ž๊ฐ€ ํ•˜๋Š” ์ผ>

  1. ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ (์ผ๋ฐ˜์ ์œผ๋กœ ํšŒ์‚ฌ๊ฐ€ ์ž‘์„์ˆ˜๋ก ์ฝ”๋”ฉํ•˜๋Š” ์‹œ๊ฐ„์ด ๋” ๊ธธ์–ด์ง„๋‹ค. ํฐ ํšŒ์‚ฌ๋Š” ๋‹ค๋ฅธ ์—…๋ฌด๊ฐ€ ๋งŽ๋‹ค. )
  2. ๋ฒ„๊ทธ ๊ณ ์น˜๊ธฐ (์˜ค๋ž˜๋œ ์ฝ”๋“œ์˜ ๋ฒ„๊ทธ)
  3. ์„ค๊ณ„์™€ ์•„ํ‚คํ…์ฒ˜
  4. ํšŒ์˜
  5. ํ•™์Šต (์ €์ž๋Š” ๋งค์ผ ์•„์นจ 30๋ถ„์”ฉ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐพ์•„๋ณด๊ณ  ์ตœ์‹  ์ง€์‹์„ ์‚ดํŽด๋ดค๋‹ค๊ณ  ํ•œ๋‹ค. )
  6. ์‹คํ—˜๊ณผ ํƒ์ƒ‰
  7. ํ…Œ์ŠคํŠธ (ํ…Œ์ŠคํŠธ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ํ•„์ˆ˜ ์š”์†Œ๋‹ค. ํ›Œ๋ฅญํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ์ž์‹ ์˜ ์ฝ”๋“œ๋ฅผ ์ฒดํฌ์ธํ•˜๊ณ  ๋ฐฐํฌํ•˜๊ธฐ ์ „์— ๋ฐ˜๋“œ์‹œ ํ…Œ์ŠคํŠธ ํ•œ๋‹ค. )
  8. ์ƒ๊ฐํ•˜๊ธฐ (์ฝ”๋”ฉ์— ๋Œ์ž…ํ•˜๊ธฐ ์ „์— ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ• ์ง€ ์ ์–ด๋„ ์„ธ ๋ฒˆ ์ด์ƒ ์ƒ๊ฐํ•ด๋ณด๊ธฐ, ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ๋ฏธ๋ฆฌ ์ž˜ ํ•ด๋‘๋ฉด ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์“ฐ๊ณ  ๋””๋ฒ„๊น…ํ•˜๋Š” ์‹œ๊ฐ„์ด ์ค„์–ด๋“ ๋‹ค. )
  9. ๊ณ ๊ฐ/ ์ดํ•ด๋‹น์‚ฌ์ž์™€ ์†Œํ†ตํ•˜๊ธฐ
  10. ๊ต์œก/ ๋ฉ˜ํ† ๋ง

<์ตœ์‹  ๊ธฐ์ˆ  ๋”ฐ๋ผ์žก๊ธฐ>

  1. ๋ธ”๋กœ๊ทธ ๊ตฌ๋…ํ•˜๊ธฐ
  2. ์ฑ… ์ฝ๊ธฐ
  3. ์ƒˆ๋กœ์šด ๊ธฐ์ˆ  ์„ ํƒํ•˜๊ธฐ
  4. ๋‰ด์Šค ์ฝ๊ธฐ
  5. ํ–‰์‚ฌ ์ฐธ์—ฌํ•˜๊ธฐ
  6. ๋ถ€์ง€๋Ÿฐํžˆ ์ฝ”๋”ฉํ•˜๊ธฐ. ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‰ฌ๋ฉด ์•ˆ๋œ๋‹ค. 

 

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ๊ฐ€์—๊ฒŒ๋Š” ๋ธ”๋กœ๊ทธ๊ฐ€ ์ตœ๊ณ ์˜ ์„ ํƒ์ด๋‹ค. (์œ ํŠญ ์ฑ„๋„ ๊ฐœ์„ค๋„ ์ข‹๋‹ค. )

์ง„์ž…์žฅ๋ฒฝ์ด ๋‚ฎ๊ณ  ํšจ๊ณผ๊ฐ€ ๋Œ€๋‹จํžˆ ์ข‹๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 


<์ข‹์€ ๊ฐœ๋ฐœ์ž๋ž€?>

๋Š์ž„์—†์ด ๊ณต๋ถ€ํ•˜๋Š” ๊ฐœ๋ฐœ์ž

ํ˜‘์—…์„ ์ž˜ํ•˜๋Š” ๊ฐœ๋ฐœ์ž

์†Œํ”„ํŠธ ์Šคํ‚ฌ์„ ๊ฐ–์ถ˜ ๊ฐœ๋ฐœ์ž(์ธ๊ฐ„๊ด€๊ณ„์˜ ๊ธฐ๋ณธ ํƒœ๋„, ์ฆ‰ ์กด์ค‘ํ• ์ค„ ์•„๋Š” ์‚ฌ๋žŒ)

ํ•จ๊ป˜ ์ผํ•˜๊ณ  ์‹ถ์€ ๋™๋ฃŒ

 


 

<์ถ”๊ฐ€๋กœ ๊ผญ ๊ณต๋ถ€ํ•  ๊ฒƒ>

 

๋ฉด์ ‘๋•Œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ & ์ปดํ“จํ„ฐ ๊ณผํ•™์˜ ๊ธฐ์ดˆ ์ง€์‹

git์„ ์“ฐ๋Š” ํšŒ์‚ฌ

git ๊ณต๋ถ€ํ•˜์ž

 

 

 

  • ์‚ถ์—๋Š” ์—ฐ์Šต์ด ์—†๋‹ค. ์‚ถ์€ ์ง€๊ธˆ, ๋ฐ”๋กœ ์ด ์ˆœ๊ฐ„์— ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ‘์‚ถ’ ์„ ๋ฏธ๋ฃจ๋Š” ์Šต๊ด€์„ ๋ฒ„๋ฆฌ๊ณ  ํ˜„์žฌ๋ฅผ ์‚ฌ๋Š” ์Šต๊ด€์„ ๊ธฐ๋ฅด์ž.
  • ์ข‹์•„ํ•˜๋Š” ์ผ์„ ์—…์œผ๋กœ ์‚ผ์œผ๋ฉด ํ‰์ƒ๋„์•ˆ ๋‹จ ํ•˜๋ฃจ๋„ ์ผํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. - ๊ณต์ž

 

 

์ฐธ๊ณ  ์‚ฌ์ดํŠธ)

https://simpleprogrammer.com/

 

https://simpleprogrammer.com/products/careerguide/toolkit/?c=careerguide&utm_source=careerguide&utm_medium=book&utm_campaign=digital-toolkit

https://jojoldu.tistory.com/302