๊ฐ์๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ๊ณต์ ์์์ ์ฌ์ฉํ ๋, ์ฃผ๋ก ์์์ฑ๊ณผ ๊ฐ์์ฑ์ด ์ธ๊ธ๋๋๋ฐ ๊ฐ์์ฑ์ ๋ํด ์์ ๋ณด์! ๊ฐ์์ฑ (Visibility)๊ฐ์์ฑ์ ์ฌ์ ์ ๋ฐ๋ฅด๋ฉด “๋์ ์ฝ๊ฒ ๋ณด์ด๋ ์ ๋”๋ฅผ ๋ปํ๋๋ฐ ์ปดํจํฐ๊ณผํ์์ ๊ฐ์์ฑ์ด๋ ๋ค์๊ณผ ๊ฐ์ ์๋ฏธ๋ฅผ ์ง๋๊ณ ์๋ค.๊ฐ์์ฑ์ด๋ ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ๊ฐ๊ฐ์ ์ค๋ ๋๊ฐ ๊ณต์ ์์์ ๋ํด์ ๋ชจ๋ ๊ฐ์ ์ํ๋ฅผ ๋ฐ๋ผ๋ณด๊ณ ์๋ ๊ฒ์ ์๋ฏธํ๋ค.๐ ํด๋น ์ ์๋ง์ผ๋ก๋ ์ง๊ด์ ์ธ ์ดํด๊ฐ ์ด๋ ค์ธ ์๋ ์๊ธฐ์ ์๋์ ์์ ์ฝ๋๋ฅผ ํตํด ์์ธํ๊ฒ ๋ค๋ค๋ณด์.public class Main { boolean runningFlag = true; public void test() { new Thread(()->{ // ์ฐ๋ ๋ ์์ฑ ..
๐ ์ฐ์ฌ ์๋ฆฌ์ฆ
๋์์ฑ (Concurrency)์ฌ๋ฌ ์์
์ ๋์์ ์คํํ๋ ๊ฒ์ด ์๋๋ผ, CPU๊ฐ ์์
๋ง๋ค ์๊ฐ์ ๋ถํ ํด ์ ์ ํ๊ฒ Context Switching ํจ์ผ๋ก์จ “๋์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ํ๋ ๊ฒ”์ ๋์์ฑ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ปดํจํฐ๋ ๊ต์ฅํ ๋น ๋ฅธ ์๋๋ก ์์
๋ค์ ์ฒ๋ฆฌํ์ฌ ์ฌ๋์ด ๋ณผ ๋๋ ๋์์ ์์
๋ค์ด ์ฒ๋ฆฌ๋๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง์ง๋ง ์ ๋์ ์ธ ์๊ฐ ๊ด์ ์ผ๋ก ๋ดค์ ๋๋ ๋์์ ์ฒ๋ฆฌ๋์ง ์๋๋ค. ๋ณ๋ ฌ์ฑ (Parallelism)๋
๋ฆฝ์ ์ผ๋ก ๋์์ ์ฌ๋ฌ ์์
์ ์คํํ๋ ๊ฒ์ ๋ณ๋ ฌ์ฑ์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ๋์์ฑ๊ณผ๋ ๋ค๋ฅด๊ฒ ์ฌ๋ฌ ์์
์ ๋ค๋ฅธ ์ฝ์ด, ๋ค๋ฅธ ํ๋ก์ธ์ค, ๋ณ๋์ ์ปดํจํฐ ๋ฑ์์ ๋์์ ์คํํ ์ ์๋ค. ๋ง์ ์์
์ ๋ณ๋ ฌ ์ฒ๋ฆฌํจ์ผ๋ก์จ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ง๋ง ์ ์ ํ ์์
๋ถ๋ฐฐ๊ฐ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค๋ ์ ์ ์กฐ๊ฑด์ด ์๋ค. Refer..
์ฝ๋ ์ปจ๋ฒค์
(Code Convention)์ฝ๋ ์ปจ๋ฒค์
์ด๋ ์ฝ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ผ์ข
์ ์ฝ๋ฉ ์คํ์ผ ๊ท์ฝ(ํ๋์ ์์ฑ ํ์ค)์ด๋ค. ์ ์ฐํ ๋ฌธ๋ฒ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ธ์ด์ผ์๋ก ๊ฐ๋ฐ์ ๊ฐ ํต์ผ๋ ๊ท์ฝ์ด ์๋ค๋ฉด ์ฝ๋์ ์๋๋ฅผ ํ์
ํ๊ฑฐ๋ ์ค๋ฅ๋ฅผ ์ฐพ๊ธฐ ์ด๋ ค์ฐ๋ฉฐ ์ ์ง๋ณด์ ๋น์ฉ์ด ๋์ด๋๊ธฐ ๋๋ฌธ์ ์ฝ๋์ ๊ฐ๋์ฑ์ ๋์ด๊ณ ์์ฑํ ์ฝ๋๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ง๋ณด์ํ๊ธฐ ์ํด์๋ ๊ณตํต์ ๊ท์น์ ๊ผญ ์์ฑํ ํ์๊ฐ ์๋ค! ์ฝ๋ฉ ์ปจ๋ฒค์
์ ์์ฑํ๊ฒ ๋๋ฉด ์๋์ ๊ฐ์ ํจ๊ณผ๋ฅผ ๋๋ฆด ์ ์๋ค! ๐ ์ ํด์ง ๊ท์น์ด ์์ด ๋ช
์นญ์ด๋ ๊ตฌ์กฐ๋ฅผ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ํ์
ํ ์ ์๋ค. ๐ ํต์ผ๋ ๊ท์ฝ์ด ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ฌ๋๋ค์ด ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ์ฝ๊ณ ํธ๋ฆฌํ๋ค! ๐ ์ ์ง๋ณด์ ๋น์ฉ์ ์ค์ผ ์ ์๋ค. โ๏ธ ๊ฐ์ธ์ ์ธ ์๊ฐ ์ ์
๊ฐ๋ฐ์๋ผ๋ฉด ์
์ฌ ..
Scale Up์ค์ผ์ผ์
(Scale-up)์ ๊ธฐ์กด์ ํ๋์จ์ด๋ฅผ ๋ณด๋ค ๋์ ์ฌ์์ผ๋ก ์
๊ทธ๋ ์ด๋ ํ๋ ๊ฒ์ ๋งํ๋ค. ์๋ก ๋ค์๋ฉด ์ฑ๋ฅ์ด๋ ์ฉ๋ ์ฆ์ค์ ๋ชฉ์ ์ผ๋ก ํ๋์ ์๋ฒ์ ๋์คํฌ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ CPU๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์
๊ทธ๋ ์ด๋ ํ๋ ๊ฒ์ด๋ค. ์ด์ฒ๋ผ ํ๋์ ์๋ฒ์ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ ํฅ์์ํค๊ธฐ ๋๋ฌธ์ ์์ง ์ค์ผ์ผ๋ง (Vertical Scaling)์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค. Scale Out์ค์ผ์ผ์์ (Scale-out)์ ์๋ฒ ์ฅ๋น๋ฅผ ์ถ๊ฐํ์ฌ ํ์ฅํ๋ ๋ฐฉ์์ผ๋ก ๊ธฐ์กด ์๋ฒ๋ง์ผ๋ก ์ฉ๋์ด๋ ์ฑ๋ฅ์ ํ๊ณ์ ๋๋ฌํ๋ฉด ๋น์ทํ ์ฌ์์ ์๋ฒ๋ฅผ ์ฐ๊ฒฐํด ์ถ๊ฐ๋ ์๋ฒ ๋์๋งํผ ์ฉ๋์ด ์ฆ๊ฐํ ๋ฟ๋ง ์๋๋ผ ์ํฌ๋ก๋๋ฅผ ๋ถ๋ดํด ์ฑ๋ฅ์ ๋์ด๋ ๋ณ๋ ฌ ์ปดํจํ
์ ๊ตฌํํ ์ ์๋ค. ์ด์ฒ๋ผ ์๋ฒ๋ฅผ ์ถ๊ฐ๋ก ํ์ฅํ๊ธฐ ๋๋ฌธ์ ์ํ ์ค์ผ์ผ๋ง (Horizontal Scalin..
๊ตฌ๋ฌธ ์๋ฌ (Syntax Error)ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฌธ๋ฒ์ ์ด๊ธ๋๋ ๋ฌธ์ฅ ๋๋ฌธ์ ๋ฐ์ํ๋ ์ค๋ฅ๋ฅผ “Syntax Error”๋ผ๊ณ ํ๋ค. ์ฃผ๋ก ์ธ๋ฏธ์ฝ๋ก ์ด ์๋ ์ฝ๋ก ์ ์ฌ์ฉํ๋ค๊ฑฐ๋ {} ์ค๊ดํธ๊ฐ ์๋ชป ๋ฃ์ด์ ธ์๋ค๊ฑฐ๋ ๋ฑ ๋ค์ํ ๊ฒฝ์ฐ๊ฐ ์์ง๋ง IDE์์ ์๋์ ์ผ๋ก ํด๋น ๊ตฌ๋ฌธ ์ค๋ฅ๋ฅผ ์ก์์ฃผ๊ธฐ ๋๋ฌธ์ (๋นจ๊ฐ ๋ฐ์ค!!) ํฌ๊ฒ ๋ฌธ์ ๋๋ ๋ถ๋ถ์ ์๋ค. ๋ฌผ๋ก IDE๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ฝ๋ฉ์ ํด๋ ์ปดํ์ผ ๊ณผ์ ์์ ์ ๋ถ ๊ฒ์ถ๋๊ธฐ ๋๋ฌธ์ ๋ฌธ๋ฒ์ด ํ๋๋ผ๋ ํ๋ ธ๋ค๋ฉด ํ๋ก๊ทธ๋จ์ด ์ ์์ ์ผ๋ก ์ปดํ์ผ๋์ง ์๋๋ค. ๋
ผ๋ฆฌ ์๋ฌ (Semantic Error / Logical Error)๋ฌธ๋ฒ์ ์ค๋ฅ๊ฐ ์๋๋ฉฐ ์ปดํ์ผ ๋ฐ ์คํ๋ ์ ์์ ์ผ๋ก ์งํ๋์ง๋ง ๊ฐ๋ฐ์๊ฐ ์๋ํ ๋๋ก ์คํ๋์ง ์๋ ํ๋ก๊ทธ๋จ ๋ก์ง ์์ ๋
ผ๋ฆฌ์ ์ธ ์ค๋ฅ์ด๋ค.int a = 3, b = 9..
1) ๋ผ์ด๋ธ๋ฌ๋ฆฌ (Library) (1) ์ ์๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์ํด ํ์ํ ๊ธฐ๋ฅ์ ๋ชจ์ ๋์ ์ํํธ์จ์ด์ด๋ฉฐ, ๊ฐ๋จํ๊ฒ ๋งํ์๋ฉด ํ๋ก๊ทธ๋๋จธ๊ฐ ๊ฐ๋ฐํ๋๋ฐ ์์ด ์ ์ฉํ ์ปดํฌ๋ํธ๋ค(Components)์ ์งํฉ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค. ์ฌ๊ธฐ์ ์ปดํฌ๋ํธ๋ ํด๋์ค, ํจ์, ๋ณ์ ๋ฑ ๊ทธ ๋ชจ๋ ๊ฒ๋ค์ด ๋ ์ ์๋ค. (2) ํน์ง ์ฌ์ฌ์ฉ์ฑ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ์ฌ์ฉ์ด ํ์ํ ๊ธฐ๋ฅ์ผ๋ก ๋ฐ๋ณต์ ์ธ ์ฝ๋ ์์ฑ์ ์์ ๊ธฐ ์ํด ์ธ์ ๋ ์ง ํ์ํ ๊ณณ์์ ํธ์ถํ์ฌ ์ฌ์ฉํ ์ ์๋๋ก ์ฃผ๋ก Class๋ Function์ผ๋ก ๋ง๋ค์ด์ง๋ค. ๋ํ, ๊ธฐ์กด์ ๋ง๋ค์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌํ์ฉํจ์ผ๋ก์จ ๊ฐ๋ฐ ์๊ฐ๊ณผ ๋
ธ๋ ฅ์ ์ค์ผ ์ ์๋ค. ๋
๋ฆฝ์ฑ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฌ์ฉ ์ฌ๋ถ๋ ๊ฐ๋ฐ์ ์ ํ์ฌํญ์ด๋ฉฐ, ์๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ ์์๋ ์๊ฒฉํ ๊ท์น์ ๋ฐ๋ก ์ธ์ธ ํ์๊ฐ ์๊ธฐ์..
๊ฐ๋ฐ ํ๊ฒฝ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๊ฒฝ์ ์๋์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ผ๋ฉฐ, ๊ผญ ๋ชจ๋ ํ๊ฒฝ์ ๊ฐ์ถ ํ์๋ ์๊ณ ํ๋ก์ ํธ ํ๊ฒฝ์ ๋ฐ๋ผ์ ๊ฐ ํ๊ฒฝ์ ํฉ์น๊ฑฐ๋ ์๋ตํด๋ ๋๋ค. ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ (Local env)๊ฐ๋ฐ์ PC์ ์ค์น๋ ์๋ฒ ํ๊ฒฝ์ “Local env” ๋ผ๊ณ ํ๋ฉฐ ์ด Local ํ๊ฒฝ ๊ตฌ์ถ ์์ ๊ฐ์ฅ ์ฃผ์ํด์ผ ํ ์ ์ ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ๊ฐ์ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒ์ด๋ค. ์๋ก ๋ค๋ฅธ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์์
ํ ์ฝ๋๋ฅผ Merge ํ ๋, Local ํ๊ฒฝ์์ ์ ์๋ํ๋ ์ฝ๋๊ฐ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค. (ex. ๋ค๋ฅธ ๋ฒ์ ์ JVM์ ์ฌ์ฉํ๊ฑฐ๋ ๋ค๋ฅธ ๋ฌธ์ ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ๋๋ฑ) ๊ฐ๋ฐ ํ๊ฒฝ์ ํ์คํ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์๊ฒ ์ง๋ง ์ ์ฒด ๊ฐ๋ฐ ํ๊ฒฝ (ex. JDK, Elipse, Library๋ฑ)์..
์คํ (False Positive), ๋ฏธํ (False Negative) ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ๋๋ ์ฉ์ด์ด์ง๋ง ํ์ง์ ๊ดํ ๋ด์ฉ์ด๋ฏ๋ก IDS (์นจ์
ํ์ง ์๋ฃจ์
) ๊ธฐ์ค์ผ๋ก ์ ์ํ ์์ ์ด๋ค.True Positive์ ์ ํจํท์ ์ ์์ผ๋ก ํ์งํ๊ธฐ์ ๋ฌธ์ ๊ฐ ๋์ง ์์ False Positive์ ์ ํจํท์ ๋น์ ์์ด๋ผ๊ณ ํ์งํ๊ธฐ ๋๋ฌธ์ ๋ก๊ทธ๋ ๊ฒฝ๊ณ ๊ฐ ๋จ์ ์ด๋ฅผ ํ์ธํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๊ธฐ๊ธด ํ์ง๋ง ๊ณต๊ฒฉ์ด ์๋๋ฏ๋ก ์น๋ช
์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ณ์ง๋ ์๋๋ค. True Negative๋น์ ์ ํจํท์ ๋น์ ์์ผ๋ก ํ๋จํ์ฌ ์ฌ๋ฐ๋ฅด๊ฒ ํ๋จํ์๊ณ ์ด์ ๋์ฒ๊ฐ ๊ฐ๋ฅํ๊ฒ ํจ False Negative๋น์ ์ ํจํท์ ์ ์์ผ๋ก ํ๋จํ์ฌ ์๋ฌด๋ฐ ๋ก๊ทธ๋ ๊ฒฝ๊ณ ๋ฅผ ๋จ๊ธฐ์ง ์์ ํธ์คํธ๊ฐ ๊ณต๊ฒฉ์ ๋นํ ์ํ์ด ๋ฐ์ํ๋ฏ๋ก False Negative๋ฅผ ์ค์ด๋ ๊ฒ์ด ๊ฐ์ฅ ..