ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์๊ธฐ๊ณ ,๋ฉ๋ชจ๋ฆฌ์ ์๊ธด ๊ฒ์ ์ฌ์ฉํ๊ณ ,์ฌ์ฉ์ด ๋๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์์ ์ฌ๋ผ์ง๋๋ค.๋ณต์ฌ์ ์๋ฆฌ๋ ๋ฐ์ดํฐ๊ฐ ๊ฐ์์ง๋ ๊ฒ์ด๊ณ ,์ด๋์ ๋ณต์ฌ๋ฅผ ํ๊ณ ๋ ํ์, ์๋ณธ์ ์ง์ฐ๋ ๊ฒ์ ๋๋ค.๋ฉ๋ชจ๋ฆฌ์ ์ง์ ํด ๋์ ์์ญ์ ์๋ฏธํฉ๋๋ค.์คํ์ ๋ฐ์ดํฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๊ฐ ์๊ฒจ
๋ฌผ์ด ๋ด๊ธด ํต์ -> 1๋ฌผ์ด ์๋ ํต์ -> 01 0 1 1 ๊ณผ ๊ฐ์ด ๋ฌผ์ด ๋ด๊ธด ํต 3๊ฐ์ ๋ฌผ์ด ์๋ ํต 1๊ฐ๋ฅผ ํํํ ์ ์๋ค.๊ฐ์ ๋๊ฐ์ด ๋ง๋ค์ด์ ๋ณต์ฌ!!์ ๊ธฐ์ ๋ฌผ์ ๋น์ทํ ์ฑ์ง์ ๊ฐ์ง๋๋ค.๋๋๋ฌ์ง๋ ์ฐจ์ด์ ์ ์ ๊ธฐ๋ ๋ณต์ฌ๊ฐ ๊ฐ๋ฅํ๋ค๋ ์ ์ ๋๋ค.(๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ, ์ ์ฅ๊ณต
PM ์ธํด์ผ๋ก ์์์ผ๋ถํฐ ํ์ ํฉ๋ฅํจ๊ณผ ๋์์, ์ด์ ๋ ์ด์ด ์ข๊ฒ ์ฐ๋กํ์ฌ๋ ๋ค๋ฆ์๋ ํ ํ์์ผ์ ์ด!!๊ทธ๋์ ๊ณต๋ถ๋ฅผ...(ํ๊ณ ใ ...)๊ทธ๋๋ ํ ๋ฌธํ์ ์กฐ๊ธ ๋ ์ ์ํ ์ ์๋ ๊ธฐํ๊ฐ ๋ ๊ฒ ๊ฐ์ ์ข์๋ ํ๋ฃจ์๋ค!!!2์ง๋ฒ : 0๊ณผ 1๋ก ์๋ฅผ ํํ10์ง๋ฒ: 0~9 ๊น
AOP๋, Aspect-Oriented Programming์ ์ฝ์๋ก ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์๋ฏธํฉ๋๋ค.๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํก๋จ ๊ด์ฌ์ฌ(Cross Cutting Concern)์ ๋ถ๋ฆฌ๋ฅผ ํ์ฉํจ์ผ๋ก์จ ๋ชจ๋์ฑ์ ์ฆ๊ฐ์ํค๋ ๊ฒ์ด ๋ชฉ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ๋๋ค.์ด๋ฅผ ํตํด
๊ฐ์๋ฉ๋ชจ๋ฆฌ๋ ์ค์ ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ฐ๋ ๊ณผ ๊ฐ๋ฐ์ ์ ์ฅ์ ๋ ผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ฐ๋ ์ ๋ถ๋ฆฌํ ๊ฒ์ ๋๋ค.
๊ฒฝ์ ์ํ๋ ๋ ์ด์์ ์ ๋ ฅ, ์กฐ์์ ํ์ด๋ฐ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง ์ ์๋ ์ํ๋ฅผ ์๋ฏธํฉ๋๋ค. ๊ฒฝ์ ์ํ์ ํ๋ก๊ทธ๋จ์ ๋น๊ฒฐ์ ์ (Nondeterministic)์ผ๋ก ๋์ํ ์ ์์ผ๋ฏ๋ก, ์ฐ๋ฆฌ์ ์์๊ณผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ผ ์ ์์ต๋๋ค.์ผ๋ฐ์ ์ผ๋ก ์ปดํจํฐ ๊ณผํ์์ ๊ฒฝ์ ์ํ๋ ๊ณต
๋น์ด๋ ์คํ๋ง IoC ์ปจํ ์ด๋๊ฐ ๊ด๋ฆฌํ๋ ์๋ฐ ๊ฐ์ฒด๋ฅผ ์๋ฏธํฉ๋๋ค.์ฌ๊ธฐ์ ๋งํ๋ ์๋ฐ ๊ฐ์ฒด๋ POJO ์๋ฐ ๊ฐ์ฒด๋ฅผ ์๋ฏธํฉ๋๋ค.@Component ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.@Component ์ด๋ ธํ ์ด์ ์ด ๋ถ์ด ์๋ ๊ฒฝ์ฐ ์ปดํฌ๋ํธ ์ค์บ์ ํตํด ๋น์ผ๋ก ๋ฑ๋กํด์ค๋๋ค
์ํฐํ๋ผ์ด์ฆ์ฉ JAVA ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํธํ๊ฒ ํ ์ ์๊ฒ ํด์ฃผ๋ ์คํ์์ค ๊ฒฝ๋๊ธ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ์คํ๋ง์ ๊ฐ์ฅ ํฐ ํน์ง์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ POJO๋, Plain Old Java Object, ์ฆ ์์ Java๋ง์ ํตํด์ ์์ฑํ ๊ฐ์ฒด๋ฅผ ์๋ฏธํฉ๋๋ค.๊ทธ
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด๋ ํ๋ก๊ทธ๋๋ฐ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ถ์ํ์์ผ ์ํ์ ํ์๋ฅผ ๊ฐ์ง ๊ฐ์ฒด๋ก ๋ง๋ค๊ณ , ๊ฐ์ฒด๊ฐ์ ์ํธ์์ฉ์ ํตํด ๋ก์ง์ ๊ตฌ์ฑํ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ์ ๋๋ค.์ฃผ์ํ ํค์๋๋ก๋ ํด๋์ค, ์ธ์คํด์ค, ์ถ์ํ, ์บก์ํ, ์์, ๋คํ
์๊ฐ๋ณต์ก๋ ๊ณต๊ฐ๋ณต์ก๋ Reference
๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ์ด๋ ๋ฌด์(What)์ ํ ๊ฒ์ธ์ง ๋ํ๋ด๊ธฐ๋ณด๋ค ์ด๋ป๊ฒ(How)ํ ๊ฒ์ธ์ง ์ค๋ช ํ๋ ๋ฐฉ์์ ๋๋ค.์๋์ฐจ ๊ณต์ฅ์ ์์๋ก ์ค๋ช ํ์๋ฉด ๊ฐ ๊ณต์ ์ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฌ์๊ณ ํด์ ์ฒด๊ณ์ ์ธ ์ฒด์ ๋ฅผ ์ค๊ณ ํ ์์ ํ์ฌ ์๋์ฐจ๋ฅผ ๋ง๋๋ ์ฌ๊ณ ์ด๋ฉฐ, ์๋์ฐจ๋ฅผ ์ด๋ป๊ฒ ๋ง๋๋์ง์ ์ด์ ์ด ๋ง
ํ๋ก์ ํธ ๋ด๋ถ์ ์๋ ์คํ๋ง ๋น์ ๋ชจ๋ ๋ฑ๋กํฉ๋๋ค.(ํ ์คํธ๊ฐ ๋๋ฆผ)์ค์ ์ด์ ํ๊ฒฝ์์ ์ฌ์ฉ๋๋ ํด๋์ค๋ค์ ํตํฉํด์ ํ ์คํธํ๋ ๋ฐฉ์์ ๋๋ค.๋ฐ๋ผ์ ํ๊ฒฝ๊ณผ ๊ฐ์ฅ ์ ์ฌํ๊ฒ ํ ์คํธ๊ฐ ๊ฐ๋ฅํ๋ฉฐ, Service ๋ฉ์๋์ ์คํ์ด ๋ณ๊ฒฝ๋์ด๋ Mocking ๊ฐ์ ์์ ํ์ง ์์๋ ๋๊ธฐ ๋
์ ์ก๊ณ์ธต์ด๋? ์ก์ ์์ ์์ ์๋ฅผ ์ฐ๊ฒฐํ๋ ํต์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ณ์ธต์ผ๋ก, ์ฝ๊ฒ ๋งํด ๋ฐ์ดํฐ์ ์ ๋ฌ์ ๋ด๋นํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ๋กํ ์ฝ์ด ์๋๋ฐ, TCP์ UDP๊ฐ ์๋ค. OSI 7layer์ TCP/IP 4layer TCP๋? Transmis
์ํ ATM์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ์ ์์คํ ์ ์ฌ์ฉ๋๋ ๋ ์ด์ ์ชผ๊ฐค ์ ์๋ ์ ๋ฌด ์ฒ๋ฆฌ์ ์ต์ ๋จ์์ ๋๋ค.๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํธ๋์ญ์ ์ด๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๊ธฐ ์ํด์ ์ํํ๋ ์์ ์ ๋จ์๋ฅผ ์๋ฏธํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ ๋ณํ๋?SQL(์ง์์ด)๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ
์ฐ๊ฒฐ ๋ฆฌ์คํธ, LinkedList
์น ์๋ฒ(Web Server)๋ ํด๋ผ์ด์ธํธ(์ฌ์ฉ์)๊ฐ ์น ๋ธ๋ผ์ฐ์ ์์ ์ด๋ ํ ํ์ด์ง ์์ฒญ์ ํ๋ฉด ๊ทธ ์์ฒญ์ ๋ฐ์ ์ ์ ์ปจํ ์ธ ๋ฅผ ์ ๊ณตํ๋ ์๋ฒ์ ๋๋ค. ์ ์ ์ปจํ ์ธ ๋?๋จ์ HTML ๋ฌธ์, CSS, JavaScript, ์ด๋ฏธ์ง, ํ์ผ ๋ฑ ์ฆ์ ์๋ต๊ฐ๋ฅํ ์ปจํ ์ธ ๋ฅผ ์ผ์ปซ๋๋ค.๊ทธ
๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ ์ธ์คํด์ค(๋ ๋ฆฝ์ ์ธ ๊ฐ์ฒด)์ด์์ฒด์ ๋ก๋ถํฐ ์์คํ ์์์ ํ ๋น๋ฐ๋ ์์ ๋จ์๋์ ์ธ ๊ฐ๋ ์ผ๋ก๋ ์คํ๋ ํ๋ก๊ทธ๋จ์ ์๋ฏธํ๋ก์ธ์ค๋ ๊ฐ๊ฐ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ ๋น๋ฐ๋๋ค.(code, data, stack, heap์ ๊ตฌ์กฐ)๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก์ธ์ค
ํจ์์ ๋ฉ์๋์์ ์ ๋ ฅ ๋ณ์(Variable)๋ช ๋งค๊ฐ๋ณ์๋ ํจ์ ํน์ ๋ฉ์๋ ์ ์์์ ๋์ด๋๋ ๋ณ์ ๋ช ์ด๋ค.ํจ์์ ๋ฉ์๋์ ์ ๋ ฅํ๋ ๊ฐ(Value)ํจ์ ํน์ ๋ฉ์๋๋ฅผ ํธ์ถํ ๋, ์ ๋ฌ ํน์ ์ ๋ ฅ๋๋ ์ค์ ๊ฐ์ด๋ค.๋งค๊ฐ๋ณ์๋ ๋ฉ์๋๋ฅผ ์ ์ํ ๋, ๋ฐ์ ๊ฐ์ ์ ์ํ ๋ณ์๋ฅผ ๊ฐ
์ ๋ ฅ ์์๋ฅผ ์ ์งํ๋ฉฐ, ๋ฐ์ดํฐ์ ์ค๋ณต์ ํ์ฉ์ธ๋ฑ์ค๋ฅผ ํตํด ์ ์ฅ ๋ฐ์ดํฐ์ ์ ๊ทผ์ด ๊ฐ๋ฅ์ฃผ์ ๊ตฌํ์ฒดArrayListLinkedList์ ๋ ฅ ์์๋ฅผ ์ ์งํ์ง ์์ผ๋ฉฐ, ๋ฐ์ดํฐ์ ์ค๋ณต ํ์ฉํ์ง ์์๋ฐ์ดํฐ์ null ์ ๋ ฅ ๊ฐ๋ฅํ๋, ํ ๋ฒ๋ง ์ ์ฅํ๊ณ ์ค๋ณต ์ ์ฅ์ ํ์ฉํ์ง ์์์ธ๋ฑ์ค๊ฐ
"๋ฐ์ดํฐ์ ํ์์ ์์กดํ์ง ์๊ณ , ํ๋์ ๊ฐ์ด ์ฌ๋ฌ ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ์ง ์ ์๋๋ก ํ๋ ๋ฐฉ๋ฒ"์ด๋ค.๊ธฐ๋ณธ์ ์ผ๋ก ์ปฌ๋ ์ ํด๋์ค๋ฅผ ์ฌ์ฉํ ๋ ์ฐ๋ฆฌ๋์ ๊ฐ์ด <> ๊ดํธ ์์ ๋ค์ด๊ฐ๋ ํ์ ์ ์ง์ ํด์ค๋ค.๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ์ด๋ค ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด ๋ฐฐํฌํ๋ ค ํ ๋, ๋ค์ํ ํ์