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. ์ด์ 1 2 ๋ค์ 728x90