[Java] Java, Spring ๋ฉด์ ์ค๋น
์ถ์ฒ ํด๋น ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์์ต๋๋ค.
-
JAVA
JAVA๋ ๋คํธ์ํฌ์์์ ์ธ ์ ์๋๋ก ๋ฏธ๊ตญ์ ์ ๋ง์ดํฌ๋ก ์์คํ ์ฆ๊ฐ ๊ฐ๋ฐํ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
JAVA์ ํน์ง
a. ์๋ฐ๊ฐ์๋จธ์ (JVM)๋ง ์ค์นํ๋ฉด ์ปดํจํฐ์ ์ด์์ฒด์ ์ ์๊ด์์ด ์๋ํ๋ค.(์ฆ, ์ด์์ฒด์ ์ ๋ ๋ฆฝ์ ) b. ๊ธฐ๋ณธ ์๋ฃํ์ ์ ์ธํ ๋ชจ๋ ์์๋ค์ด ๊ฐ์ฒด๋ก ํํ c. ๊ฐ์ฒด ์งํฅ ๊ฐ๋ ์ ํน์ง์ธ ์บก์ํ, ์์, ๋คํ์ฑ์ด ์ ์ ์ฉ๋ ์ธ์ด d. Garbage Collector๋ฅผ ํตํ ์๋์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ e. ๋ฉํฐ์ฐ๋ ๋(Multi-thread)๋ฅผ ์ง์
-
OOP(๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ)
OOP๋ Object-Oriented Programming์ ์ฝ์ด๋ก์จ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์๋ฏธ
๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด๋ก ์ทจ๊ธํ์ฌ ํ๋ก๊ทธ๋จ์ ๋ฐ์ํ ๊ฒ์ด๋ฉฐ, ์์ฐจ์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ด ๋์ํ๋ ๊ธฐ์กด์ ๊ฒ๋ค๊ณผ๋
๋ค๋ฅด๊ฒ ๊ฐ์ฒด์ ๊ฐ์ฒด์ ์ํธ์์ฉ์ ํตํด ํ๋ก๊ทธ๋จ์ด ๋์ํ๋ ๊ฒ์ ๋งํ๋ค.
OOP ํน์ง
a. ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ด ๋๋ค. b. ์ฝ๋์ ๋ณ๊ฒฝ์ด ์ฉ์ด c. ์ง๊ด์ ์ธ ์ฝ๋๋ถ์ d. ๊ฐ๋ฐ์๋ ํฅ์ e. ์์์ ํตํ ์ฅ์ ๊ทน๋ํ
-
Object
Object(๊ฐ์ฒด)๋ OOP์์ ๋ฐ์ดํฐ(๋ณ์)์ ๊ทธ ๋ฐ์ดํฐ์ ๊ด๋ จ๋๋ ๋์(ํจ์). ์ฆ ์ ์ฐจ, ๋ฐฉ๋ฒ, ๊ธฐ๋ฅ์ ๋ชจ๋ ํฌํจํ ๊ฐ๋
์)๊ธฐ์ฐจ์ญ์์ ์น์ฐจ๊ถ์ ๋ฐ๋งคํ๋ ๊ฒฝ์ฐ, ์ค์ฒด์ธ โ์๋โ๊ณผ ๋์์ธ โ์น์ฐจ๊ถ ์ฃผ๋ฌธโ์ ํ๋์ ๊ฐ์ฒด์ด๋ฉฐ, ์ค์ฒด์ธ โ์ญ๋ฌด์โ๊ณผ
๋์์ธ โ์น์ฐจ๊ถ ๋ฐ๋งคโ๋ ํ๋์ ๊ฐ์ฒด์ด๋ค.
๊ฐ์ ์ฑ์ง, ๊ฐ์ ๊ตฌ์กฐ์ ํํ๋ฅผ ๊ฐ์ง๋ ๊ฐ์ฒด๋ ๋ฑ๊ธ์ผ๋ก ์ ์ํ๊ณ ๋ฑ๊ธ์ ์ํ๋ ๊ฐ์ฒด๋ ๊ทธ ๋ฑ๊ธ์ ์ธ์คํด์ค๋ผ๊ณ ํ๋ค.
-
Overloading vs Overriding ( ํ๋ฒ๊ณต๋ถํ ๋ ํ์คํ ์ฐจ์ด๋ฅผ ์์๋ ๊ฒ, ํ์์ ์๊ณ ์์ด๋ ํท๊ฐ๋ฆผ)
Overloading(์ค๋ฒ๋ก๋ฉ)
-
๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ฌ๋ฌ๊ฐ ์ ์ํ๋ ๊ฒ
-
๋งค๊ฐ๋ณ์์ ํ์ ์ด ๋ค๋ฅด๊ฑฐ๋ ๊ฐ์๊ฐ ๋ฌ๋ผ์ผ ํ๋ค.
- return type๊ณผ ์ ๊ทผ ์ ์ด์๋ ์ํฅ์ ์ฃผ์ง ์์.
Overriding(์ค๋ฒ๋ผ์ด๋ฉ)
-
์์์์ ๋์จ ๊ฐ๋
-
์์ ํด๋์ค(๋ถ๋ชจ ํด๋์ค)์ ๋ฉ์๋๋ฅผ ํ์ ํด๋์ค(์์ ํด๋์ค)์์ ์ฌ์ ์
-
-
Servlet, JSP
Servlet - Container๊ฐ ์ดํดํ ์ ์๊ฒ ๊ตฌ์ฑ๋ ์์ ์๋ฐ ์ฝ๋๋ก๋ง ์ด๋ฃจ์ด์ง ๊ฒ(Html in JAVA)
JSP(Java Server Page) - html๊ธฐ๋ฐ์ JAVA์ฝ๋๋ฅผ ๋ธ๋กํํ์ฌ ์ฝ์ ํ ๊ฒ(JAVA in Html)
-
JDBC
Java Data Base Connection์ ์ฝ์๋ก JAVA ์ธ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ ๊ทผ ํ ์ ์๋ ํ๋ก๊ทธ๋๋ฐ์ ์๋ฏธ
-
Get๊ณผ Post ๋ฐฉ์
Get ๋ฐฉ์
-
ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋, ์ฃผ์ ๋ค์ โ์ด๋ฆโ๊ณผ โ๊ฐโ์ด ๊ฒฐํฉ๋ ์คํธ๋ง ํํ๋ก ์ ๋ฌ
-
์ฃผ์์ฐฝ์ ์ฟผ๋ฆฌ ์คํธ๋ง์ด ๊ทธ๋๋ก ๋ณด์ฌ์ง๊ธฐ ๋๋ฌธ์ ๋ณด์์ฑ์ด ๋จ์ด์ง๋ค.
-
๊ธธ์ด์ ์ ํ์ด ์๋ค.(=์ ์ก ๋ฐ์ดํฐ์ ํ๊ณ๊ฐ ์๋ค.)
-
Post๋ฐฉ์๋ณด๋ค ์๋์ ์ผ๋ก ์ ์ก ์๋๊ฐ ๋น ๋ฅด๋ค.
Post ๋ฐฉ์
-
์ผ์ ํฌ๊ธฐ ์ด์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด์ผ ํ ๋ ์ฌ์ฉํ๋ค.
-
์๋ฒ๋ก ๋ณด๋ด๊ธฐ ์ ์ ์ธ์ฝ๋ฉํ๊ณ , ์ ์ก ํ ์๋ฒ์์๋ ๋ค์ ๋์ฝ๋ฉ ์์ ์ ํ๋ค.
-
์ฃผ์์ฐฝ์ ์ ์กํ๋ ๋ฐ์ดํฐ์ ์ ๋ณด๊ฐ ๋ ธ์ถ๋์ง ์์ Get๋ฐฉ์์ ๋นํด ๋ณด์์ฑ์ด ๋๋ค.
-
์๋๊ฐ Get๋ฐฉ์๋ณด๋ค ๋๋ฆฌ๋ค.
-
์ฟผ๋ฆฌ์คํธ๋ง(๋ฌธ์์ด) ๋ฐ์ดํฐ ๋ฟ๋ง ์๋๋ผ, ๋ผ๋์ค ๋ฒํผ, ํ ์คํธ ๋ฐ์ค ๊ฐ์ ๊ฐ์ฒด๋ค์ ๊ฐ๋ ์ ์ก๊ฐ๋ฅ.
Get๊ณผ Post ์ฐจ์ด์
-
Get์ ์ฃผ๋ก ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์น ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ ๋ ์ฌ์ฉ
-
Post๋ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์น ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ์ฌ์ฉ.
-
Get์ ์ฌ์ฉํ๋ฉด ์น ๋ธ๋ผ์ฐ์ ์์ ์น ์๋ฒ๋ก ์ ๋ฌ๋๋ ๋ฐ์ดํฐ๊ฐ ์ธ์ฝ๋ฉ๋์ด URL์ ๋ถ๋๋ค.
-
Post๋ฐฉ์์ ์ ๋ฌ๋๋ ๋ฐ์ดํฐ๊ฐ ๋ณด์ด์ง ์๋๋ค.
-
Get๋ฐฉ์์ ์ ๋ฌ๋๋ ๋ฐ์ดํฐ๊ฐ 255๊ฐ์ ๋ฌธ์๋ฅผ ์ด๊ณผํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
-
์น์๋ฒ์ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด์๋ Post ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค.
-
-
Session๊ณผ Cookie
Session๊ณผ Cookie ์ฌ์ฉ ์ด์
- ํ์ฌ ์ฐ๋ฆฌ๊ฐ ์ธํฐ๋ท์์ ์ฌ์ฉํ๊ณ ์๋ HTTPํ๋กํ ์ฝ์ ์ฐ๊ฒฐ ์งํฅ์ ์ธ ์ฑ๊ฒฉ์ ๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ ์๋ก์ด ํ์ด์ง๋ฅผ ์์ฒญํ ๋๋ง๋ค
์๋ก์ด ์ ์์ด ์ด๋ฃจ์ด์ง๋ฉฐ ์ด์ ํ์ด์ง์ ํ์ฌ ํ์ด์ง ๊ฐ์ ๊ด๊ณ๊ฐ ์ง์๋์ง ์๋๋ค. ์ด์ ๋ฐ๋ผ HTTPํ๋กํ ์ฝ์ ์ด์ฉํ๊ฒ ๋๋
์น์ฌ์ดํธ์์๋ ์นํ์ด์ง์ ํน์ ๋ฐฉ๋ฌธ์๊ฐ ๋จธ๋ฌด๋ฅด๊ณ ์๋ ๋์์ ๊ทธ ๋ฐฉ๋ฌธ์์ ์ํ๋ฅผ ์ง์์ํค๊ธฐ ์ํด ์ฟ ํค์ ์ธ์ ์ ์ด์ฉํ๋ค.
Session
-
ํน์ ์น์ฌ์ดํธ์์ ์ฌ์ฉ์๊ฐ ๋จธ๋ฌด๋ฅด๋ ๊ธฐ๊ฐ ๋๋ ํ ๋ช ์ ์ฌ์ฉ์์ ํ๋ฒ์ ๋ฐฉ๋ฌธ์ ์๋ฏธํ๋ค.
-
Session์ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ Server์ ์ ์ฅ๋๋ค.
-
์น ๋ธ๋ผ์ฐ์ ์ ์บ์์ ์ ์ฅ๋์ด ๋ธ๋ผ์ฐ์ ๊ฐ ๋ซํ๊ฑฐ๋ ์๋ฒ์์ ์ญ์ ์ ์ฌ๋ผ์ง๋ค.
-
Cookie์ ๋นํด ๋ณด์์ฑ์ด ์ข๋ค.
Cookie
-
์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์งํ ์ ์๋ค๋ HTTP์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ ์ ์๋ ๋ฐฉ๋ฒ
-
์ธํฐ๋ท ์น ์ฌ์ดํธ์ ๋ฐฉ๋ฌธ ๊ธฐ๋ก์ ๋จ๊ฒจ ์ฌ์ฉ์์ ์น ์ฌ์ดํธ ์ฌ์ด๋ฅผ ๋งค๊ฐํด ์ฃผ๋ ์ ๋ณด์ด๋ค.
-
Cookie๋ ์ธํฐ๋ท ์ฌ์ฉ์๊ฐ ํน์ ์น์๋ฒ์ ์ ์ํ ๋, ์์ฑ๋๋ ๊ฐ์ธ ์์ด๋์ ๋น๋ฐ๋ฒํธ, ๋ฐฉ๋ฌธํ ์ฌ์ดํธ์ ์ ๋ณด๋ฅผ ๋ด์ ์์ ํ์ผ๋ก์จ,
Server๊ฐ ์๋ Client์ ํ ์คํธ ํ์ผ๋ก ์ ์ฅ๋์ด ๋ค์์ ํด๋น ์น์๋ฒ๋ฅผ ์ฐพ์ ๊ฒฝ์ฐ ์น์๋ฒ์์๋ ๊ทธ๊ฐ ๋๊ตฌ์ธ์ง ์ด๋ค ์ ๋ณด๋ฅผ ์ฃผ๋ก ์ฐพ์๋์ง ๋ฑ์ ํ์ ํ ๋ ์ฌ์ฉ๋๋ค.
-
Cookie๋ Client PC์ ์ ์ฅ๋๋ ์ ๋ณด๊ธฐ ๋๋ฌธ์, ๋ค๋ฅธ ์ฌ์ฉ์์ ์ํด์ ์์๋ก ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.(์ ๋ณด ์ ์ถ ๊ฐ๋ฅ, Session๋ณด๋ค ๋ณด์์ฑ์ด ๋ฎ์ ์ด์ )
Q. ๋ณด์์ฑ์ด ๋ฎ์ Cookie ๋์ Session์ ์ฌ์ฉํ๋ฉด ๋๋๋ฐ ์ํ๋ ์ด์ ?
A. ๋ชจ๋ ์ ๋ณด๋ฅผ Session์ ์ ์ฅํ๋ฉด Server์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ๊ฒ ๋์ด Server์ ๋ฌด๋ฆฌ๊ฐ ๊ฐ
-
MVC ํจํด
MVC๋?
-
๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ์์, MVC๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ฑ๊ณต์ ์ด๋ฉฐ ํจ๊ณผ์ ์ผ๋ก ๋ฐ์ดํฐ ๋ชจํ์ ๊ด๋ จ ์ํค๊ธฐ ์ํ ๋ฐฉ๋ฒ๋ก ๋๋ ์ค๊ณ ๋ฐฉ์์ค ํ๋์ด๋ค. MVC๋ฐฉ์์ ์๋ฐ, Smalltalk,
-
MVC ํจํด์ ๋ชฉ์ ์ฝ๋์ ์ฌ์ฌ์ฉ์ ์ ์ฉํ ๊ฒ์ ๋ฌผ๋ก , ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ์์ฉํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์์๋๋ ์๊ฐ์ ํ์ ํ๊ฒ ์ค์ฌ์ฃผ๋ ํ์์ด๋ผ๊ณ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ํ๊ฐํ๊ณ ์๋ค.
MVC ๊ตฌ์ฑ์์
Model - ์ํํธ์จ์ด ์์ฉ๊ณผ ๊ทธ์ ๊ด๋ จ๋ ๊ณ ๊ธ ํด๋์ค ๋ด์ ๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ฅผ ํํ. ์ด ๋ชฉ์ ๋ชจํ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๊ดํ ์ด๋ ํ ์ ๋ณด๋ ๊ฐ์ง๊ณ ์์ง ์๋ค.
View - ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๋ด์ ๊ตฌ์ฑ์์๋ค์ ํํ(์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ํ๋ฉด)
Controller - Model๊ณผ View๋ฅผ ์ฐ๊ฒฐํ๊ณ ์๋ ํด๋์ค๋ฅผ ๋ํ, Model๊ณผ View ๋ด์ ํด๋์ค๋ค ๊ฐ ์ ๋ณด ๊ตํํ๋๋ฐ ์ฌ์ฉ.
-
-
Interface, Abstract
Interface
-
์ผ์ข ์ ์ถ์ ํด๋์ค
-
์ค์ง ์ถ์๋ฉ์๋์ ์์๋ง์ ๋ฉค๋ฒ๋ก ๊ฐ๋๋ค.
-
Implements ํค์๋๋ฅผ ์ฌ์ฉ
-
์์์ ๊ด๊ณ๊ฐ ์๋ ํด๋์ค๊ฐ ์๋ก ๊ณตํต๋๋ ๋ก์ง์ ๊ตฌํํ์ฌ ์ธ ์ ์๋๋กํ๋ค.
-
Extends๋ ํ๋์ ํด๋์ค๋ง ์์ ๊ฐ๋ฅํ๋ Interface๋ ๋ค์ค ์์์ด ๊ฐ๋ฅํ๋ค.
Abstract
-
์ถ์๋ฉ์๋๋ฅผ ํ๋ ์ด์ ๊ฐ์ง ํด๋์ค
-
์์ ์ ์์ฑ์๋ก ๊ฐ์ฒด ์์ฑ ๋ถ๊ฐ๋ฅ
-
ํ์ ํด๋์ค๋ฅผ ์ฐธ์กฐํ์ฌ ์์ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ์์ฑ
-
ํ์ ํด๋์ค๋ฅผ ์ ์ดํ๊ธฐ ์ํด ์ฌ์ฉ
Interface vs Abstract
๊ณตํต์
-
new ์ฐ์ฐ์๋ก ์ธ์คํด์ค ์์ฑ ๋ถ๊ฐ๋ฅ.
-
ํ๋กํ ํ์ ๋ง ์๋ ๋ฉ์๋๋ฅผ ๊ฐ๋๋ค.
-
์ฌ์ฉํ๊ธฐ ์ํด์๋ ํ์ํด๋์ค์์ ํ์ฅ/๊ตฌํ ํด์ผ ํ๋ค.
์ฐจ์ด์
-
์ฌ์ฉํ๋ ํค์๋๊ฐ ๋ค๋ฅด๋ค.
-
Abstract๋ ์ผ๋ฐ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง, Interface๋ ๋ฉ์๋ ์ ์ธ๋ง ๊ฐ๋ฅํ๋ค.
-
-
Call by Reference, Call by Value
Call by Reference - ๋งค๊ฐ ๋ณ์์ ์๋ ์ฃผ์์ ๊ฐ์ ์ ์ฅํ๋ ๋ฐฉ์. ํด๋์ค ๊ฐ์ฒด๋ฅผ ์ธ์๋ก ์ ๋ฌํ ๊ฒฝ์ฐ
Call by Value - ์ธ์๋ก ๊ธฐ๋ณธ ๋ฐ์ดํฐํ์ ์ฌ์ฉ. ์ฃผ์ด์ง ๊ฐ์ ๋ณต์ฌํ์ฌ ์ฒ๋ฆฌํ๋ ๋ฐฉ์. ๋ฉ์๋ ๋ด์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ ๋ฉ์๋ ๋ฐ์ ๋ณ์์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค.
-
Static์ ์๋ฏธ
-
ํด๋์ค๊ฐ ๋ก๋ฉ๋ ๋, ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํ๋๋ฐ ์ฒ์ ์ค์ ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ณํ์ง ์์์ ์๋ฏธ
-
๊ฐ์ฒด๋ฅผ ์๋ฌด๋ฆฌ ๋ง์ด ๋ง๋ค์ด๋ ํด๋น ๋ณ์๋ ํ๋๋ง ์กด์ฌ(๊ฐ์ฒด์ ๋ฌด๊ดํ ํค์๋)
-
-
Framework
- ํน์ ํํ์ ์ํํธ์จ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ํธ ํ๋ ฅํ๋ ํด๋์คํ๋ ์๊ณผ ์ธํฐํ์ด์ค ํ๋ ์์ ์งํฉ
- ํน์ ํ ํ์ ๋ง๋ค์ด๋๊ณ ๊ฑฐ๊ธฐ์ ์ด์ ๋ถ์ฌ ๋์์ผ๋ก์จ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด ์์ ์๊ฐ์ ์ค์ฌ์ฃผ๋ ๊ฒ์ด๋ค.
- ํ๋ ์์ํฌ๋ ํน์ ๊ฐ๋ ๋ค์ ์ถ์ํ๋ฅผ ์ ๊ณตํ๋ ์ฌ๋ฌ ํด๋์ค๋ ์ปดํฌ๋ํธ๋ก ๊ตฌ์ฑ๋๋ค.
- ํ๋ ์์ํฌ๋ ์ด๋ ๊ฒ ์ถ์์ ์ธ ๊ฐ๋ ๋ค์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ์ด ์์ ํ๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ค.
- ํ๋ ์์ํฌ ์ปดํฌ๋ํธ ๋ค์ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- ํ๋ ์์ํฌ๋ ์ข ๋ ๋์ ์์ค์์ ํจํด์ ์กฐ์ํ๋ค.
ํ๋ ์์ํฌ๊ฐ ์ค์ํ ์ด์ ๋ ๊ฐ์ฒด์งํฅ ๊ฐ๋ฐ์ ํ๊ฒ ๋๋ฉด์ ๊ฐ๋ฐ์์ ์ทจํฅ์ ๋ฐ๋ผ ๋ค์ํ ํ๋ก๊ทธ๋จ์ด ๋์ค๊ฒ ๋์๋ค.
ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ํฌ์ ๋๋ ๊ฐ๋ฐ์๋ ์ ์ ๋์ด๋จ์ ๋ฐ๋ผ ์ ์ฒด ์์คํ ์ ํตํฉ์ฑ, ์ผ๊ด์ฑ์ด ๋ถ์กฑํ๊ฒ ๋์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ ๊ฐ๋ฐ์์ ์์ ๋ฅผ ์ ํํ๊ธฐ ์ํด ํ๋ ์์ํฌ๋ฅผ ๋์ ํ๋ค.
ํ๋ ์์ํฌ๊ฐ ๊ฐ์ ธ์ผํ ํน์ง
a. ๊ฐ๋ฐ์๋ค์ด ๋ฐ๋ผ์ผํ ๊ฐ์ด๋๋ผ์ธ์ ๊ฐ์ง๋ค.
b. ๊ฐ๋ฐํ ์ ์๋ ๋ฒ์๊ฐ ์ ํด์ ธ ์๋ค.
c. ๊ฐ๋ฐ์๋ฅผ ์ํ ๋ค์ํ ๋๊ตฌ๋ค์ด ์ง์๋๋ค.
ํ๋ ์์ํฌ์ ์ฅ/๋จ์
์ฅ์ - ๊ฐ๋ฐ ์๊ฐ์ ์ค์ผ ์ ์๊ณ ์ค๋ฅ๋ก๋ถํฐ ์์ ๋ก์ธ ์ ์๋ค.
๋จ์ - ํ๋ ์์ํฌ์ ๋๋ฌด ์์กดํ๋ฉด ๊ฐ๋ฐ ๋ฅ๋ ฅ์ด ๋จ์ด์ ธ์ ํ๋ ์์ํฌ ์์ด ๊ฐ๋ฐํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํด์ง๋ ์ ์ด๋ค.
-
Garbage Collection(๊ฐ๋น์ง ์ปฌ๋ ์ )
์์คํ ์์ ๋์ด์ ์ฌ์ฉํ์ง ์๋ ๋์ ํ ๋น๋ ๋ฉ๋ก๋ฆฌ ๋ธ๋ญ์ ์ฐพ์ ์๋์ผ๋ก ๋ค์ ์ฌ์ฉ ๊ฐ๋ฅํ ์์์ผ๋ก ํ์ํ๋ ๊ฒ์ผ๋ก
์์คํ ์์ ๊ฐ๋น์ง์ปฌ๋ ์ ์ ์ํํ๋ ๋ถ๋ถ์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ผ ๋ถ๋ฅธ๋ค.
-
Primitive type๊ณผ Reference type
Primitive type - ๋ณ์์ ๊ฐ ์์ฒด๋ฅผ ์ ์ฅ
์ ์ํ byte, short, int, long
์ค์ํ float, double
๋ฌธ์ํ char
๋ ผ๋ฆฌํ boolean
- Primitive type์ Wrapper Class๋ฅผ ํตํด ๊ฐ์ฒด๋ก ๋ณํํ ์ ์๋ค.
์) intโInteger, charโCharacter(int์ char๋ฅผ ์ ์ธํ Primitive type์ ๋ค๋ฅธ ์๋ฃํ๋ค์ ๋งจ ์ ์ํ๋ฒณ์ ๋๋ฌธ์๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ค. floatโFloat)
Reference type - ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ฒด๊ฐ ์๋ ์์น๋ฅผ ์ ์ฅ
์ข ๋ฅ - Class, Interface, Array ๋ฑ
-
Wrapper Class
Primitive type์ผ๋ก ํํํ ์ ์๋ ๊ฐ๋จํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด๋ก ๋ง๋ค์ด์ผ ํ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ ๊ทธ๋ฌํ ๊ธฐ๋ฅ์ ์ง์ํ๋ ํด๋์ค
-
Spring Framework(์คํ๋ง ํ๋ ์์ํฌ)
์๋ฐ(JAVA) ํ๋ซํผ์ ์ํ ์คํ์์ค(Open Source) ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ(Framework)
์๋ฐ ์ํฐํ๋ผ์ด์ฆ ๊ฐ๋ฐ์ ํธํ๊ฒ ํด์ฃผ๋ ์คํ ์์ค ๊ฒฝ๋๊ธ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ
์๋ฐ ๊ฐ๋ฐ์ ์ํ ํ๋ ์์ํฌ๋ก ์ข ์ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ฃผ๊ณ , ์กฐ๋ฆฝํด์ฃผ๋ ๋๊ตฌ
์๋ฐ๋ก ๋ ํ๋ ์์ํฌ๋ก ์๋ฐSE๋ก ๋ ์๋ฐ ๊ฐ์ฒด(POJO)๋ฅผ ์๋ฐEE์ ์์กด์ ์ด์ง ์๊ฒ ์ฐ๊ฒฐํด์ฃผ๋ ์ญํ
์คํ๋ง ํน์ง ๊ฐ๋จํ
-
ํฌ๊ธฐ์ ๋ถํ์ ์ธก๋ฉด์์ ๊ฒฝ๋.
-
์ ์ด ์ญํ(IoC)์ด๋ผ๋ ๊ธฐ์ ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์จํ ๊ฒฐํฉ์ ๋๋ชจ
-
๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ(AOP)์ ์ํ ํ๋ถํ ์ง์
-
์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ฒด์ ์๋ช ์ฃผ๊ธฐ์ ์ค์ ์ ํฌํจํ๊ณ ๊ด๋ฆฌํ๋ค๋ ์ ์์ ์ผ์ข ์ ์ปจํ ์ด๋(Container)๋ผ๊ณ ํ ์ ์์
-
๊ฐ๋จํ ์ปดํฌ๋ํธ๋ก ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๊ณ ์ค์ ํ ์ ์์
์คํ๋ง ํน์ง ์์ธํ
a. ๊ฒฝ๋ ์ปจํ ์ด๋๋ก์ ์๋ฐ ๊ฐ์ฒด๋ฅผ ์ง์ ๊ด๋ฆฌ.
๊ฐ๊ฐ์ ๊ฐ์ฒด ์์ฑ, ์๋ฉธ๊ณผ ๊ฐ์ ๋ผ์ดํ ์ฌ์ดํด์ ๊ด๋ฆฌํ๋ฉฐ ์คํ๋ง์ผ๋ก๋ถํฐ ํ์ํ ๊ฐ์ฒด๋ฅผ ์ป์ด์ฌ ์ ์๋ค.
b. ์คํ๋ง์ POJO(Plain Old Java Object) ๋ฐฉ์์ ํ๋ ์์ํฌ.
์ผ๋ฐ์ ์ธ J2EE ํ๋ ์์ํฌ์ ๋นํด ๊ตฌํ์ ์ํด ํน์ ํ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ฑฐ๋ ์์์ ๋ฐ์ ํ์๊ฐ ์์ด ๊ธฐ์กด์
์กด์ฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ ์ง์ํ๊ธฐ์ ์ฉ์ดํ๊ณ ๊ฐ์ฒด๊ฐ ๊ฐ๋ณ๋ค.
c. ์คํ๋ง์ ์ ์ด์ ์ญํ(IoC : Inversion of Control)์ ์ง์.
์ปจํธ๋กค์ ์ ์ด๊ถ์ด ์ฌ์ฉ์๊ฐ ์๋๋ผ ํ๋ ์์ํฌ์ ์์ด์ ํ์์ ๋ฐ๋ผ ์คํ๋ง์์ ์ฌ์ฉ์์ ์ฝ๋๋ฅผ ํธ์ถํ๋ค.
d. ์คํ๋ง์ ์์กด์ฑ ์ฃผ์ (DI : Dependency Injection)์ ์ง์
๊ฐ๊ฐ์ ๊ณ์ธต์ด๋ ์๋น์ค๋ค ๊ฐ์ ์์กด์ฑ์ด ์กด์ฌํ ๊ฒฝ์ฐ ํ๋ ์์ํฌ๊ฐ ์๋ก ์ฐ๊ฒฐ์์ผ์ค๋ค.
e. ์คํ๋ง์ ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ(AOP : Aspect-Oriented Programming)์ ์ง์
๋ฐ๋ผ์ ํธ๋์ญ์ ์ด๋ ๋ก๊น , ๋ณด์๊ณผ ๊ฐ์ด ์ฌ๋ฌ ๋ชจ๋์์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ๊ฒฝ์ฐ ํด๋น ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ์ฌ ๊ด๋ฆฌํ ์ ์๋ค.
f. ์คํ๋ง์ ์์์ฑ๊ณผ ๊ด๋ จ๋ ๋ค์ํ ์๋น์ค๋ฅผ ์ง์
iBatis๋ Hibernate ๋ฑ ์ด๋ฏธ ์์ฑ๋๊ฐ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฒ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐ๊ฒฐํ ์ ์๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ค.
g. ์คํ๋ง์ ํ์ฅ์ฑ์ด ๋์.
์คํ๋ง ํ๋ ์์ํฌ์ ํตํฉํ๊ธฐ ์ํด ๊ฐ๋จํ๊ฒ ๊ธฐ์กด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ธ๋ ์ ๋๋ก ์คํ๋ง์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ
์ด๋ฏธ ์คํ๋ง์์ ์ง์๋๊ณ ์๊ณ ์คํ๋ง์์ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ณ๋๋ก ๋ถ๋ฆฌํ๊ธฐ๋ ์ฉ์ดํ๋ค.
-
-
Thread
Thread(์ฐ๋ ๋) - ํ๋ก์ธ์ค๋ด์์ ๋์์ ์คํ๋๋ ๋ ๋ฆฝ์ ์ธ ์คํ ๋จ์๋ฅผ ๋งํจ, ์ฅ์ ์ผ๋ก๋ ์์์ ๋ง์ด ์ฌ์ฉํ์ง ์๊ณ ๊ตฌํ์ด ์ฌ์ฐ๋ฉฐ ๋ฒ์ฉ์ฑ์ด ๋๋ค
Process(ํ๋ก์ธ์ค) - ์ด์์ฒด์ ์์ ์คํ์ค์ธ ํ๋์ ํ๋ก๊ทธ๋จ(ํ๋ ์ด์์ ์ฐ๋ ๋๋ฅผ ํฌํจํ๋ค.)
Thread ์ฅ์
-
๋น ๋ฅธ ํ๋ก์ธ์ค ์์ฑ
-
์ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ
-
์ฌ์ด ์ ๋ณด ๊ณต์
Thread ๋จ์
-
๊ต์ฐฉ์ํ์ ๋น ์ง ์ ์๋ค.
- ๊ต์ฐฉ์ํ - ๋ค์คํ๋ก๊ทธ๋๋ฐ ์ฒด์ ์์ ํ๋ ๋๋ ๊ทธ ์ด์์ ํ๋ก์ธ์ค๊ฐ ์ํ ํ ์ ์๋ ์ด๋ค ํน์ ์๊ฐ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ์ํ.
Thread์ Process ์ฐจ์ด
์ฌ๋ฌ ๋ถ์ผ์์ โ๊ณผ์ โ ๋๋ โ์ฒ๋ฆฌโ๋ผ๋ ๋ป์ผ๋ก ์ฌ์ฉ๋๋ ์ฉ์ด๋ก ์ปดํจํฐ ๋ถ์ผ์์๋ โ์คํ์ค์ธ ํ๋ก๊ทธ๋จโ์ด๋ผ๋ ๋ป์ผ๋ก ์ฐ์ธ๋ค.
์ด ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ ๊ฐ๊ฐ์ ์ผ์ ์ค๋ ๋๋ผ๊ณ ํ๋ค. ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ ์ธ๋ถ ์์ ๋จ์๋ก ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋๊ฐ ํ๋์ ํ๋ก์ธ์ค๋ฅผ ์ด๋ฃจ๊ฒ ๋๋ ๊ฒ์ด๋ค.
-
-
์ ๊ทผ์ ํ์(public > protected > default > private)
public - ์ ๊ทผ ์ ํ์ด ์๋ค.(๊ฐ์ ํ๋ก์ ํธ ๋ด์ ์ด๋์๋ ์ฌ์ฉ๊ฐ๋ฅ)
protected - ๊ฐ์ ํจํค์ง ๋ด, ๋ค๋ฅธ ํจํค์ง์์ ์์๋ฐ์ ์์ํด๋์ค์์ ์ ๊ทผ ๊ฐ๋ฅ
default - ๊ฐ์ ํจํค์ง ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅ
private - ๊ฐ์ ํด๋์ค ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅ
-
์์ผ ํต์ (TCP/UDP)
TCP(Transmission Control Protocol)
-
์ฐ๊ฒฐํ ์๋น์ค ์ ๊ณต
-
๋์ ์ ๋ขฐ์ฑ ๋ณด์ฅ
-
์ฐ๊ฒฐ์ ์ค์ (3-way handshaking)
-
์ฐ๊ฒฐ์ ํด์ (4-way handshaking)
-
๋ฐ์ดํฐ ํ๋ฆ ์ ์ด, ํผ์ก ์ ์ด
-
์ ์ด์ค, ์ ๋์ ์๋น์ค(์๋ฐฉํฅ ์ก์์ ์๋น์ค)
UDP(User Datagram Protocol)
-
๋น์ฐ๊ฒฐํ ์๋น์ค ์ ๊ณต
-
์ ๋ขฐ์ฑ์ด ๋ฎ์
-
๋ฐ์ดํฐ์ ์ ์ก ์์๊ฐ ๋ฐ๋ ์ ์์
-
๋ฐ์ดํฐ ์์ ์ฌ๋ถ ํ์ธ ์ํจ(3-way handshaking๊ณผ ๊ฐ์ ๊ณผ์ X)
-
TCP๋ณด๋ค ์ ์ก์๋๊ฐ ๋น ๋ฆ
-
-
Stack, Queue
STACK
-
LIFO(Last In First Out)์ ํ์ ์ ์ถ ๊ตฌ์กฐ
-
push();๋ฅผ ์ด์ฉํ ๋ฐ์ดํฐ ์ ๋ ฅ, pop();์ ์ด์ฉํ ๋ฐ์ดํฐ ์ถ๋ ฅ
-
์) ์์คํ ์คํ : ํจ์์ ํธ์ถ๊ณผ ๋ณต๊ท ์์๋ ์คํ์ ๊ตฌ์กฐ๋ฅผ ์์ฉํ์ฌ ๊ด๋ฆฌ
-
์ญ์ ๋ฌธ์์ด ๋ง๋ค๊ธฐ, ์์์ ๊ดํธ ๊ฒ์ฌ, ์์์ ํ์ ํ๊ธฐ๋ฒ ๋ณํ
QUEUE
-
FIFO(First In First Out)์ ์ ์ ์ ์ถ ๊ตฌ์กฐ
-
enQueue();๋ฅผ ์ด์ฉํ ๋ฐ์ดํฐ ์ ๋ ฅ, deQueue();๋ฅผ ์ด์ฉํ ๋ฐ์ดํฐ ์ถ๋ ฅ
-
์) ์ฐ์ ์์๊ฐ ๊ฐ์ ์์ ์์ฝ(์ธ์ ๋๊ธฐ์ด), ์ ์ ์ ์ถ์ด ํ์ํ ๋๊ธฐ์ด(ํฐ์ผ ์นด์ดํฐ)
- Linear Queue(์ ํํ)๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅ ์ด๋ฌํ ๋ฌธ์ ์ ์ ๋ณด์ํ์ฌ Circular Queue(์ํ ํ)๊ฐ ๋์ด
-
-
Singleton Design Patter(์ฑ๊ธํค ๋์์ธ ํจํด, ์ฑ๊ธํค ํจํด)
- ํด๋์ค ์ธ์คํด์ค๊ฐ ํ๋๋ง ๋ง๋ค์ด์ง๋๋ก ํ๊ณ , ๊ทธ ์ธ์คํด์ค์ ๋ํ ์ ์ญ ์ ๊ทผ์ ์ ๊ณตํ๋ค.
-
Database์์ Index๋?
์ธ๋ฑ์ค๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ถ์ผ์ ์์ด์ ํ ์ด๋ธ์ ๋ํ ๋์์ ์๋๋ฅผ ๋์ฌ์ฃผ๋ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ผ์ปซ๋๋ค.
์ธ๋ฑ์ค๋ ํ ์ด๋ธ ๋ด์ 1๊ฐ์ ์ปฌ๋ผ, ํน์ ์ฌ๋ฌ ๊ฐ์ ์ปฌ๋ผ์ ์ด์ฉํ์ฌ ์์ฑ๋ ์ ์๋ค.
๊ณ ์์ ๊ฒ์ ๋์๋ฟ๋ง ์๋๋ผ ๋ ์ฝ๋ ์ ๊ทผ๊ณผ ๊ด๋ จ ํจ์จ์ ์ธ ์์ ๋งค๊น ๋์์ ๋ํ ๊ธฐ์ด๋ฅผ ์ ๊ณตํ๋ค.
์ธ๋ฑ์ค๋ฅผ ์ ์ฅํ๋ ๋ฐ ํ์ํ ๋์คํฌ ๊ณต๊ฐ์ ๋ณดํต ํ ์ด๋ธ์ ์ ์ฅํ๋ ๋ฐ ํ์ํ ๋์คํฌ ๊ณต๊ฐ๋ณด๋ค ์๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ ์ด๋ธ๊ณผ ํด๋ฌ์คํฐ์ ์ฐ๊ด๋์ด ๋ ๋ฆฝ์ ์ธ ์ ์ฅ ๊ณต๊ฐ์ ๋ณด์ ํ๊ณ ์๋ ๊ฐ์ฒด(object)์ด๋ค.
์ฌ์ฉ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ์๋ฃ๋ฅผ ๋์ฑ ๋น ๋ฅด๊ฒ ์กฐํํ๊ธฐ ์ํ์ฌ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๊ณ ์ฌ์ฉํ๋ค.
DB์์ ์๋ฃ๋ฅผ ๊ฒ์ํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ
FTS(Full Table Scan) : ํ ์ด๋ธ์ ์ฒ์ ๋ถํฐ ๋๊น์ง ๊ฒ์ํ๋ ๋ฐฉ๋ฒ
Index Scan : ์ธ๋ฑ์ค๋ฅผ ๊ฒ์ํ์ฌ ํด๋น ์๋ฃ์ ํ ์ด๋ธ์ ์ก์ธ์ค ํ๋ ๋ฐฉ๋ฒ.