๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

    ํŒŒ์ด์ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ๋ฐฑ์ค€ 11000๋ฒˆ - ๊ฐ•์˜์‹ค ๋ฐฐ์ •

    ์ด๋ฒˆ ํ’€์ด์˜ ํ•ต์‹ฌ ํžŒํŠธ๋Š” ์šฐ์„ ์ˆœ์œ„ ํ ์ž…๋‹ˆ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ด์šฉํ•ด ๋ฐฑ์ค€ 11000๋ฒˆ (๊ฐ•์˜์‹ค ๋ฐฐ์ •) ๋ฌธ์ œ๋ฅผ ํŒŒ์ด์ฌ์œผ๋กœ ํ’€์–ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ž˜ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ฌธ์ œ๊ฐ€ ์‰ฌ์›Œ์ง€๋Š” ๊ฒƒ์„ ๋Š๋ผ์‹ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ ์•Œ์•„๋ณผ ๋‚ด์šฉ ๋ฌธ์ œ ์„ค๋ช… ๋ฌธ์ œ์˜ ํ•ต์‹ฌ ์•„์ด๋””์–ด ๋ฌธ์ œ ํ’€์ด ๋ฌธ์ œ ์„ค๋ช… 11000๋ฒˆ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ฌธ์ œ ์„ค๋ช… ์ž์ฒด์— ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๊ฐ•์‹ ์ฒญ์˜ ๋งˆ์Šคํ„ฐ ๊น€์ข…ํ˜œ ์„ ์ƒ๋‹˜์ด ์•„๋‹ˆ๋ผ ์ˆ˜๊ฐ•์‹ ์ฒญ ๊ด€๋ฆฌ์ž ๊น€์ข…ํ˜œ ์„ ์ƒ๋‹˜์ด ๋” ์•Œ๋งž๋Š” ํ‘œํ˜„ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฆ‰ ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์ˆ˜๊ฐ•์‹ ์ฒญ์„ ๊ด€๋ฆฌํ•ด์„œ ๊ฐ•์˜์‹ค์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•์˜์˜ ์‹œ๊ฐ„์ด ์ฃผ์–ด์ง€๋ฉด ํ•ด๋‹น ๊ฐ•์˜์— ํ•„์š”ํ•œ ๊ฐ•์˜์‹ค์„ ๋ฐฐ์น˜ํ•ด์ฃผ๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ์ด๋•Œ ๊ฐ€์žฅ ์ ๊ฒŒ ๊ฐ•์˜์‹ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฌป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ํ•ต์‹ฌ ์•„์ด๋””์–ด..

    ์œ ๋‹› ํ…Œ์ŠคํŠธ : Effective Unit Testing

    ์ด๋ฒˆ ๊ธ€์€ Eliotte Rusty Harold ์˜ Effective Unit Testing ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์œ ๋‹› ํ…Œ์ŠคํŠธ๋ž€ ๋ฌด์—‡์ธ์ง€ ์™œ ํ•„์š”ํ•œ์ง€ ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํšจ๊ณผ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ  ์ž๋ฃŒ Effective Unit Testing by Eliotte Rusty Harold ์ œ ๊ธ€์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ์œผ๋กœ ์›๋ณธ์˜์ƒ์„ ๋ฐ˜๋“œ์‹œ ์‹œ์ฒญํ•˜์‹œ๊ธธ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ ์•Œ์•„๋ณผ ๋‚ด์šฉ ์šฐ๋ฆฌ๋Š” ์™œ Unit Test๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”๊ฐ€? Unit Test๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๋งŒ์•ฝ ์ •ํ™•ํ•œ output์„ ๋ชจ๋ฅธ๋‹ค๋ฉด? Input๊ณผ output์„ ์„ ๋ช…ํ•˜์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ๋“ค์„ ์ œ๊ฑฐํ•ด๋ผ Test ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•ด๋ผ! ์™œ ์œ ๋‹› ํ…Œ์ŠคํŠธ์ธ๊ฐ€? Unit์€ ๋˜ํ•œ ๋…๋ฆฝ์ ์ž„์„ ์˜๋ฏธํ•œ๋‹ค. ..

    ๊ธฐ์ถ• ํ†ตํ™”์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž

    ์ตœ๊ทผ์— ์ด์žฌ๋ช… ํ›„๋ณด๊ฐ€ ์šฐ๋ฆฌ๋‚˜๋ผ ์›ํ™”๊ฐ€ ๊ธฐ์ถ•ํ†ตํ™”๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฐœ์–ธ์„ ํ•ด์„œ ๋งŽ์€ ๊ด€์‹ฌ์„ ๋ฐ›๊ณ  ์žˆ๋Š”๋ฐ์š”. ๊ณผ์—ฐ ๊ธฐ์ถ•ํ†ตํ™”๊ฐ€ ๋ฌด์—‡์ด๊ธธ๋ž˜ ์ด์žฌ๋ช… ํ›„๋ณด๊ฐ€ ๊ทธ๋Ÿฐ ๋ฐœ์–ธ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”์ง€ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  ์ž๋ฃŒ ๊ธˆ๋ณด์œ ๊ณ  ๋‚˜๋ฌด์œ„ํ‚ค ๊ธฐ์ถ• ํ†ตํ™” ๋‚˜๋ฌด์œ„ํ‚ค [ํŒฉํŠธ์ฒดํฌ] ์ด์žฌ๋ช… ‘๊ธฐ์ถ•ํ†ตํ™”’ ๋ฐœ์–ธ…‘IMF SDR’๊ณผ ํ˜ผ๋ˆํ•ด์„œ ์˜ค๋Š˜ ์•Œ์•„๋ณผ ๊ฒƒ ๊ธฐ์ถ•ํ†ตํ™”์˜ ๊ฐœ๋… ๊ธฐ์ถ•ํ†ตํ™”์˜ ์—ญ์„ค ๊ธฐ์ถ•ํ†ตํ™”์˜ ์—ญ์‚ฌ ๊ธฐ์ถ• ํ†ตํ™”์˜ ๊ฐœ๋… ๊ธฐ์ถ•ํ†ตํ™”์˜ ๊ฐœ๋…์€ ๊ตญ์ œ ๋‹จ์œ„์˜ ๊ฒฐ์ œ๋‚˜ ๊ธˆ์œต๊ฑฐ๋ž˜์˜ ๊ธฐ๋ณธ์ด ๋˜๋Š” ํ™”ํ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์ถ•ํ†ตํ™”๋Š” ๋‹ฌ๋Ÿฌ๊ฐ€ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ์ธ์ •๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์ถ•ํ†ตํ™”๋Š” ๋‹จ์ˆœํžˆ ๋ฌด์—ญ์— ์‚ฌ์šฉ๋˜๋Š” ํ†ตํ™”์ธ ๋ฌด์—ญํ†ตํ™”์™€๋Š” ๋‹ค๋ฅธ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๊ธฐ์ถ•ํ†ตํ™”๋Š” ์„ธ๊ณ„์ ์ธ ํ†ตํ™” ์‹ ๋ขฐ๋„๋ฅผ ๊ฐ€์ ธ์•ผ ํ•˜๊ณ  ์ถฉ๋ถ„ํ•œ ์œ ํ†ต๋Ÿ‰์„ ํ™•๋ณดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ธˆ๋ณธ์œ„์ œ๋„์—์„œ ๋ฏธ๊ตญ ๋‹ฌ๋Ÿฌ๋กœ ์ค‘์‹ฌ ..

    Daily Python #3 : ์ปดํ”„๋ฆฌํ—จ์…˜ ๊ทœ์น™

    ์ด๋ฒˆ ๊ธ€์€ Python ์ปดํ”„๋ฆฌํ—จ์…˜์˜ ๊ทœ์น™์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ทœ์น™์„ ์ดํ•ดํ•˜๋ฉด List, Dictionary, Set ๋ชจ๋‘์—์„œ ์ปดํ”„๋ฆฌํ—จ์…˜์„ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰ ํŒŒ์ด์ฌ์Šค๋Ÿฌ์šด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์‹ค ์ˆ˜ ์žˆ๋Š”๊ฑฐ์ฃ . ๊ทธ๋Ÿผ ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ ์•Œ์•„๋ณผ ๋‚ด์šฉ for ๋ฌธ ๋‹ค์ค‘ for ๋ฌธ ์กฐ๊ฑด๋ฌธ for ๋ฌธ comp_list = [x for x in range(10] # ๊ฒฐ๊ณผ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] for๋ฌธ์€ ์ปดํ”„๋ฆฌํ—จ์…˜์˜ ๋ชจ๋“  ๊ฒƒ ์ž…๋‹ˆ๋‹ค. for ๋ฌธ์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” for ๋ฌธ ์•ž์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  for ๋ฌธ ์•ž์— ์žˆ๋Š” ๋ถ€๋ถ„์€ List, Dictionary, Set ์˜ Value ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด ์‚ฌ์‹ค์„ ์ด์šฉํ•˜๋ฉด ๊ต‰์žฅํžˆ ํŒŒ์ด์ฌ์Šค๋Ÿฝ๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ..