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

๐Ÿ—‚๏ธ ์Šคํ„ฐ๋”” ํ™œ๋™/๐Ÿ“— ๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ9

[๋งˆ๋ฌด๋ฆฌ] ํ”„๋ก ํŠธ์—”๋“œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๐Ÿ—‚๏ธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์†Œํ”„ํŠธ์›จ์–ด์˜ ํŠน์ • ๋ชจ๋“ˆ์ด๋‚˜ ๊ธฐ๋Šฅ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ๋กœ, ์ฝ”๋“œ์˜ ์ผ๋ถ€๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ ํ”„๋ก ํŠธ์—”๋“œ ํ…Œ์ŠคํŠธ ์ข…๋ฅ˜๋‹จ์œ„ ํ…Œ์ŠคํŠธ (Unit Test) : ์ฝ”๋“œ์˜ ์ž‘์€ ๋‹จ์œ„๋‚˜ ๊ฐœ๋ณ„ ํ•จ์ˆ˜๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๋ฉฐ, ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ด๋‹ค.์Šค๋ƒ…์ƒท ํ…Œ์ŠคํŠธ (Snapshot Test) : ์ฃผ๋กœ UI์˜ ๋ณ€๊ฒฝ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์—ฌ, ์˜ˆ์ƒ๋œ UI ์ƒํƒœ์™€ ํ˜„์žฌ UI ์ƒํƒœ๊ฐ€ ์ผ์น˜ํ•˜๋Š”์ง€ ๋น„๊ตํ•œ๋‹ค.์ข…๋‹จ ๊ฐ„(e2e) ํ…Œ์ŠคํŠธ (End-to-End Test) : ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ๋ฆ„์„ ํ…Œ์ŠคํŠธํ•˜์—ฌ ์‹œ์Šคํ…œ์ด ํ†ตํ•ฉ๋œ ์ƒํƒœ์—์„œ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.๋‹จ์œ„ ํ…Œ์ŠคํŠธ์˜ ์žฅ์  : ๋ฒ„๊ทธ๋ฅผ ์ดˆ๊ธฐ์— ์žก์•„๋‚ด๊ณ , ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‹œ ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€, ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•˜๋ฉฐ, ์ฝ”๋“œ์˜ ์•ˆ์ •์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค. ๐Ÿฅ‡ F.. 2024. 10. 30.
[๋งˆ๋ฌด๋ฆฌ] ํด๋ฆฐ์ฝ”๋“œ์™€ ๋‹Œ์ž์ฝ”๋“œ ๐Ÿฅท ๋‹Œ์ž์ฝ”๋“œ๋‹Œ์ž๋ผ ๋ถˆ๋ฆฌ๋˜ ์ „์„ค ์† ๊ฐœ๋ฐœ์ž๋“ค์€ ์œ ์ง€๋ณด์ˆ˜ ๋‹ด๋‹น ๊ฐœ๋ฐœ์ž๋ฅผ ํ˜น๋…ํ•˜๊ฒŒ ํ›ˆ๋ จํ•˜๊ธฐ์œ„ํ•ด ๋‹ค์–‘ํ•œ ํŽธ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ๋‹ค.์ฝ”๋“œ ์งง๊ฒŒ ์“ฐ๊ธฐ๊ธ€์ž ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ์•ฝ์–ด ์‚ฌ์šฉํ•˜๊ธฐํฌ๊ด„์ ์ธ ๋ช…์‚ฌ ์‚ฌ์šฉํ•˜๊ธฐ์ฒ ์ž๊ฐ€ ์œ ์‚ฌํ•œ ๋‹จ์–ด ์‚ฌ์šฉํ•˜๊ธฐ๋™์˜์–ด ์‚ฌ์šฉํ•˜๊ธฐ์ด๋ฆ„ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ์žฌ๋ฏธ๋กœ ์–ธ๋”์Šค์ฝ”์–ด ์‚ฌ์šฉํ•˜๊ธฐ๊ณผ์žฅ ํ˜•์šฉ์‚ฌ ์‚ฌ์šฉํ•˜๊ธฐ์™ธ๋ถ€ ๋ณ€์ˆ˜ ๋ฎ์–ด์“ฐ๊ธฐ๋ถ€์ž‘์šฉ์ด ์žˆ๋Š” ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐํ•จ์ˆ˜์— ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ๋„ฃ๊ธฐ// ์ถœ์ฒ˜: ์•„์ฃผ ์œ ๋ช…ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌi = i ? i  ๐Ÿ“Œ ํด๋ฆฐ์ฝ”๋“œ์™€ ๋‹Œ์ž์ฝ”๋“œ ๋น„๊ต๊ฐ€๋…์„ฑ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์ดํ•ด ๊ฐ€๋Šฅ์ž‘์„ฑ์ž ๋ณธ์ธ๋งŒ ์ดํ•ด ๊ฐ€๋Šฅ์œ ์ง€๋ณด์ˆ˜์„ฑ์ˆ˜์ • ๋ฐ ํ™•์žฅ์ด ์šฉ์ด์ˆ˜์ • ์‹œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ ๋†’์Œ์ฝ”๋“œ ์Šคํƒ€์ผ๋ช…ํ™•ํ•œ ๋„ค์ด๋ฐ, ์ค‘๋ณต ์ตœ์†Œํ™”, ๊ฐ„๊ฒฐํ•œ ๊ตฌ์กฐ์งง๊ณ  ์ถ•์•ฝ๋œ ์ฝ”๋“œ, ๊ฐ€๋…์„ฑ ๋‚ฎ์Œ์—๋Ÿฌ ์ฒ˜๋ฆฌ์ ์ ˆํ•œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ œ๊ณต๋ถˆ๋ช…ํ™•ํ•œ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ ๐Ÿ’ป ๋‹Œ์ž์ฝ”๋“œ ์˜ˆ์‹œclass L.. 2024. 10. 17.
[๋งˆ๋ฌด๋ฆฌ] ํด๋ฆฐ์ฝ”๋“œ ๐Ÿ‘ฉ‍๐Ÿ’ป ํด๋ฆฐ์ฝ”๋“œ# ์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๊ฐ€ ํด๋ฆฐ์ฝ”๋“œ์ด๋‹ค.๋”๋ณด๊ธฐ"I like my code to be elegant and efficient. The logic should be straightforward and make it hard for bugs to hide, the dependencies minimal to ease maintenance, error handling complete according to an articulated strategy, and performance close to optimal so as not to tempt people to make the code messy with unprincipled optimizations. Clean code does one thing w.. 2024. 10. 16.
[๋งˆ๋ฌด๋ฆฌ] ์›น ์ƒํƒœ๊ด€๋ฆฌ์™€ ์ธ์ฆ 1. ์ธ์ฆ vs ์ƒํƒœ ๊ด€๋ฆฌ์ธ์ฆ(Authentication)์‚ฌ์šฉ์ž๊ฐ€ ์‹œ์Šคํ…œ์— ์ ‘๊ทผํ•  ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ๊ณผ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์€ ์ธ์ฆ ๋ฐฉ์‹์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ƒํƒœ ๊ด€๋ฆฌ(Session Management)์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ• ex. ์ฟ ํ‚ค, ์„ธ์…˜2. ์ฟ ํ‚ค์™€ ์„ธ์…˜์ฟ ํ‚ค(Cookie) : ํด๋ผ์ด์–ธํŠธ ์ชฝ์— ์ €์žฅ๋˜๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ์ธ์ฆ๊ณผ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ฟ ํ‚ค๋Š” ์ธ์ฆ ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ „์†กํ•˜๋Š” ์ˆ˜๋‹จ์ž…๋‹ˆ๋‹ค. ์„ธ์…˜ ID๋‚˜ ํ† ํฐ์„ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์„ธ์…˜(Session) : ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์™€์˜ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์„ธ์…˜ ID๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์— ์ €์žฅ๋œ ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์ธ์ฆ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.3. .. 2024. 10. 10.
[๋งˆ๋ฌด๋ฆฌ] ์›น ํ†ต์‹  ๊ธฐ์ดˆ 1. HTTP์˜ ํŠน์ง•HTTP(HyperText Transfer Protocol)๋Š” ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ์‘์šฉ ๊ณ„์ธต์˜ ํ”„๋กœํ† ์ฝœ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋น„์—ฐ๊ฒฐ(connectionless) ๋ฐ ์ƒํƒœ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”(stateless) ๋ฐฉ์‹์œผ๋กœ ํ†ต์‹ HTTP(Hyper Text Transfer Protocol)๋ฐ์ดํ„ฐ ์ „์†ก์„ ์œ„ํ•œ ์‘์šฉ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์„œ๋ฒ„/ํด๋ผ์ด์–ธํŠธ ๋ชจ๋ธ ๊ธฐ๋ฐ˜Stateless ํ”„๋กœํ† ์ฝœ: ํ†ต์‹ ์ด ๋๋‚˜๋ฉด ์ƒํƒœ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š์ŒConnectionless ํ”„๋กœํ† ์ฝœ: ์š”์ฒญ-์‘๋‹ต ํ›„ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง์žฅ์ ์„œ๋ฒ„ ๋””์ž์ธ์ด ๊ฐ„๋‹จํ•จ๋…๋ฆฝ์ ์ธ ์š”์ฒญ-์‘๋‹ต ์ฒ˜๋ฆฌ๋‹จ์ ์ƒํƒœ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜์ง€ ์•Š์Œ → ๋งค๋ฒˆ ์ธ์ฆ ํ•„์š”์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session)์œผ๋กœ ํ•ด๊ฒฐ2. HTTP์™€ HTTPS์˜ ์ฐจ์ด์ HTTP: ํ‰.. 2024. 10. 9.
[์šด์˜์ฒด์ œ] ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ 1. ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์‹ฑ (Multiprocessing)ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ (IPC) ๊ธฐ๋ฒ•๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์ •์˜: ๋‘ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ณต์œ ํ•˜์—ฌ ํ†ต์‹ ํ†ต์‹  ๋ฐฉ์‹: ์™ธ๋ถ€ ํ†ต์‹  ๋ถˆ๊ฐ€, ์–‘๋ฐฉํ–ฅํŒŒ์ผ์ •์˜: ํ”„๋กœ์„ธ์Šค๋“ค์ด ํŒŒ์ผ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๊ตํ™˜ํ†ต์‹  ๋ฐฉ์‹: ์™ธ๋ถ€ ํ†ต์‹  ๊ฐ€๋Šฅ, ์–‘๋ฐฉํ–ฅ์†Œ์ผ“์ •์˜: ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ ํ†ต์‹  ๋ฐฉ์‹ํ†ต์‹  ๋ฐฉ์‹: ์™ธ๋ถ€ ํ†ต์‹  ๊ฐ€๋Šฅ, ์–‘๋ฐฉํ–ฅ์ต๋ช… ํŒŒ์ดํ”„์ •์˜: ๋ถ€๋ชจ-์ž์‹ ํ”„๋กœ์„ธ์Šค ๊ฐ„์—๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ†ต์‹  ๋ฐฉ์‹: ์™ธ๋ถ€ ํ†ต์‹  ๋ถˆ๊ฐ€, ๋‹จ๋ฐฉํ–ฅ๋ช…๋ช…๋œ ํŒŒ์ดํ”„์ •์˜: ๋ช…๋ช…๋œ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ํ†ต์‹  ๋ฐฉ์‹: ์™ธ๋ถ€ ํ†ต์‹  ๊ฐ€๋Šฅ, ์–‘๋ฐฉํ–ฅ๋ฉ”์„ธ์ง€ํ์ •์˜ : ํ”„๋กœ์„ธ์Šค ๊ฐ„์— ๋ฉ”์„ธ์ง€๋ฅผ ์ „์†กํ•˜๊ณ  ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ํ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ†ต์‹  ๋ฐฉ์‹ํ†ต์‹  ๋ฐฉ์‹ : ์™ธ๋ถ€ ํ†ต์‹  ๊ฐ€๋Šฅ, ์–‘๋ฐฉํ–ฅ์žฅ์  : ๋น„๋™๊ธฐ์‹ ํ†ต์‹  ์ง€์›: ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”์„ธ์ง€๋ฅผ ์ „์†กํ•˜๊ณ , ์ˆ˜.. 2024. 9. 18.
728x90