๊ธฐ์ ๋ฉด์ ์์ ์ง๋ฌธ : ์๋ฐ ํธ
1. Framework ?
Software๋ฅผ ๋ง๋ค ๋ ๋ผ๋๊ฐ ๋๋ ๋ถ๋ถ์ ๋ฏธ๋ฆฌ ๊ตฌํํด์ค ๊ฒ
์ฅ์ : ๋ผ๋๊ฐ ์์ด์ ์์ฐ์ฑ์ด ์ข์์ง, ํ์ง๋ณด์ฅ
๋จ์ : ์ต์ํด์ง๋๋ฐ ์๊ฐ์ด ์ข ๊ฑธ๋ฆผ, ๋ด๋ถ ์ปค์คํฐ๋ง์ด์ง์ด ํ๋ฆ (์ฌ์ฉ์๊ฐ ํ ์ผ์ ์์)
2. MVC ?
Model, View, Controller๋ก ๊ฐ ์์ญ๋ณ๋ก ๊ฒฐํฉ๋๋ฅผ ์ต์ํํ๋ ํจํด
์ฅ์ : ์ ์ง๋ณด์ ์ฉ์ด
3. JAVA์ ํน์ง
1. OOP(๊ฐ์ฒด ์งํฅํ ํ๋ก๊ทธ๋๋ฐ) : ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ์ด๊ฒ๋ค์ ์กฐ๋ฆฝํด์ ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๊ฒ
2. ๋ฉํฐ์ค๋ ๋ ์ง์
3. GC(garbage collector)์ ์ํด ๋ฉ๋ชจ๋ฆฌ ์๋๊ด๋ฆฌ
4. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ OOP(Object-Oriented Programming)?
Object๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฝ๋๋ฅผ ๋๋์ด ๊ตฌํํ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ(Java๋ ๊ตฌ๋ถ๋จ์๊ฐ Class)
์ฅ์ : ์ฌ์ฌ์ฉ์ฑ์ด ์ข๊ณ , ํ์ ํ๊ธฐ ์ข๋ค(์บก์ํ,์ถ์ํ ๋๋ฌธ์ ์ฐ๊ธฐ ์ข์)
- ์บก์ํ : ๋น์ทํ ์ญํ ์ ํ๋ ์์ฑ๊ณผ ๋ฉ์๋๋ค์ ํ๋์ ํด๋์ค๋ก ๋ชจ์๊ฒ
- ์ถ์ํ : ์ด๋ค ์ค์ฒด๋ก๋ถํฐ ๊ณตํต์ ์ธ ๋ถ๋ถ์ด๋ ๊ด์ฌ์๋ ํน์ฑ๋ค๋ง ํ๊ณณ์ ๋ชจ์๊ฒ
(ex. ์ด๋ค ํ์ํด๋์ค๋ค์ ์กด์ฌํ๋ ๊ณตํต์ ์ธ ๋ฉ์๋๋ฅผ ์ธํฐํ์ด์ค๋ก ์ ์ํ๋ ๊ฒ) - ์์ : ํด๋์ค๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฒ, ์์์ด ์๊ธฐ ๋๋ฌธ์ ์ฝ๋๋ฅผ ์ฌํ์ฉ ํ ์ ์๊ณ ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์์ฐ์ฑ์ด ๋๊ณ ์ ์ง๋ณด์ ํ๊ธฐ๊ฐ ์ข์
- ๋คํ์ฑ
5. ๋คํ์ฑ ?
๊ฐ์๋ชจ์์ ์ฝ๋๊ฐ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ํ๋ ๊ฒ
(ex. ํธ๋ํฐ์ ์๋ ํคํจ๋๋ก ๋ค์ด์ผ ๋๋ฅด๊ธฐ๋ํ๊ณ ๋ฌธ์ํ๊ธฐ๋ ํ๊ณ ๊ฒ์์ ํ๋ ๊ฒ๊น์ง ๊ฐ๋ฅํ ๊ฒ์ฒ๋ผ ๋ชจ์์ ๊ฐ์๋ฐ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ์ํํ๋ ๊ฒ์ด ๋๋ฐ์ด์ค ๊ธฐ๋ฐ์ ๋คํ์ฑ)
์์์ ํตํด ๊ธฐ๋ฅ์ ํ์ฅํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๊ณ , ๊ฐ์ ํด๋์ค ๋ด์ ์ฝ๋์ ๊ธธ์ด๋ฅผ ์ค์ฌ์ฃผ๋ ๊ฒ๊น์ง ๋์์ค
6. Overriding ?
๋ถ๋ชจ ํด๋์ค์๊ฒ ์์๋ฐ์ ๋ฉ์๋๋ฅผ ์์ ํด๋์ค์์ ์ฌ์ ์ ํ๋ ๊ฒ
ํ๋์ ์ํผํด๋์ค๋ฅผ ์์๋ฐ๋ ์ฌ๋ฌ ์๋ธ ํด๋์ค๋ค์ด ๊ฐ์ ์ด๋ฆ์ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ํ๋ ๋ฉ์๋๋ฅผ ์ ์ํ๊ณ ์ฌ์ฉํ๊ฒ๋ ํ ์ ์์
(์ค๋ฒ๋ผ์ด๋ฉ์ ์ด์ฉํด์ ๊ฐ์ ์ด๋ฆ์ด์ง๋ง ๊ตฌํํ๋ ํด๋์ค๋ง๋ค ๋ค๋ฅธ ์ญํ ์ ํ๋ ๋ฉ์๋๋ฅผ ์ ์ => ํคํจ๋๋ผ๋ ๋ชจ์์ ๊ฐ์ก์ง๋ง ๊ฒ์์ ํ๊ณ ๋ฌธ์๋ฅผ ๋ณด๋ด๋ ๊ฒ์ฒ๋ผ)
7. Overloading ?
ํ๋์ Class ๋ด์์ ์ด๋ฆ์ด ๊ฐ์ ์ฌ๋ฌ๊ฐ์ ๋ฉ์๋๋ฅผ ์ ์ํ๋ ๊ฒ.
parameter, return type ๋ฑ์ด ๋ค๋ฆ=>์ธ์๋ค์ ํ์ ์ด๋ ๊ฐ์๊ฐ ๋ค๋ฅด๋ฉด ๋ฉ์๋ ์ด๋ฆ์ด ๊ฐ๋๋ผ๋ ์ด๋ค ๋ฉ์๋๋ฅผ ํธ์ถํ ์ง ์ปดํ์ผ๋ฌ๊ฐ ์ ์ ์๊ธฐ ๋๋ฌธ
์ํ ๋ด์ฉ์ด ๋ณธ์ง์ ์ผ๋ก ๋์ผํ ๋ ์ฌ์ฉ(์ ์ฌํ ์ผ์ ์ํํ๋ฉด์ ์ธ์๋ง ๋ค๋ฅธ ๋ฉ์๋๋ค์๊ฒ ๊ฐ๊ฐ ๋ค๋ฅธ์ด๋ฆ์ ์ค๋ค๋ฉด ์ฌ์ฉํ๊ธฐ ๋งค์ฐ ๋ถํธํ ๊ฒ, ํค๋ณด๋์ ๋ฌธ์์ฉ ํคํจ๋๋ฅผ ๋ง๋ค๊ณ , ๊ฒ์์ฉ ํคํจ๋๋ฅผ ๋ฐ๋ก ๋ง๋๋ ๊ฒ์ฒ๋ผ)
8. ์ธํฐํ์ด์ค Interface ?
๋ชจ๋ ๋ฉ์๋๊ฐ ์ถ์๋ฉ์๋์ธ ๊ฒฝ์ฐ
ํ์ ํด๋์ค์ ํน์ ํ ๋ฉ์๋๊ฐ ๋ฐ๋์ ์กด์ฌํ๋๋ก ๊ฐ์ ํจ( ๊ณตํต์ฒ๋ฆฌ๋ฅผ ์ํด )
9. ์์ abstract ?
์์ ํด๋์ค์ ๊ธฐ๋ฅ์ ํ์ ํด๋์ค๊ฐ ๋ฌผ๋ ค๋ฐ๋๊ฒ (extends์ฌ์ฉ)
๋ณต์กํ ๋ถ๋ถ์ ๊ณตํต์ผ๋ก ์ฒ๋ฆฌํด์ฃผ๊ธฐ ์ํด, ๊ทธ๋๋ก ๊ฐ๋ค ์ฐ๊ธฐ ๋๋ฌธ์ ์ฝ๋์ ์ค๋ณต์ด ์ค์ด๋ฆ
10. abstract ์ถ์ํด๋์ค vs interface ์ธํฐํ์ด์ค
์ถ์ํด๋์ค๋ ์์์ ํตํด ๊ธฐ๋ฅ์ ํ์ฅํ๋๊ฒ ๋ชฉ์ ์ด๊ณ
์ธํฐํ์ด์ค๋ ๋์ผํ ๋์์ ๊ตฌํํ๊ธฐ ์ํจ์ด ๋ชฉ์
*ํด๋์ค์๋ ์ผ๋ฐํด๋์ค์ ์ถ์ํด๋์ค๊ฐ ์์
์ถ์๋ฉ์๋๋ฅผ ํ๋๋ผ๋ ๊ฐ์ง๊ณ ์๊ฑฐ๋ abstract๋ก ์ ์๋๋ฉด ์ถ์ํด๋์ค์
์ธํฐํ์ด์ค๋ ๋ชจ๋ ๋ฉ์๋๊ฐ ์ถ์๋ฉ์๋์ธ ๊ฒฝ์ฐ๋ฅผ ๋งํจ
๋๋ค ๊ณตํต์ ์ผ๋ก ์์๋ฐ๋ ํด๋์คor ๊ตฌํํ๋ ์ธํฐํ์ด์ค ์์์๋ ์ถ์๋ฉ์๋๋ฅผ ๊ตฌํํ๋๋ก ๊ฐ์
but!
์ถ์ํด๋์ค : ์์์ ํตํด ๊ธฐ๋ฅ์ ํ์ฅํ๋๊ฒ์ด ๋ชฉ์
์ธํฐํ์ด์ค : ๋์ผํ ๋์์ ๊ตฌํํ๋ ๊ฒ์ด ๋ชฉ์
11. ๊ฐ์ฒด vs class
Class : ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋์ง ์์ ์ํ
๊ฐ์ฒด(object) : ํ๋ก๊ทธ๋จ์ ์์ฑ์ํค๊ธฐ ์ํ ์กฐ๋ฆฝํ ( ํ์ค์ ๋ชจ๋ ๊ฒ์ด ๊ฐ์ฒด์ )
12. java์ ๋ฉ๋ชจ๋ฆฌ ์์ญ
Stack : ์ง์ญ๋ณ์, method๋ฑ์ด ํ ๋น๋๋ LIFO ๋ฉ๋ชจ๋ฆฌ
Heap : new ์ฐ์ฐ์๋ฅผ ํตํด ํ ๋น๋ ๊ฐ์ฒด๊ฐ ์ ์ฅ๋๋ฉฐ GC์ ์ํด ๊ด๋ฆฌ๋จ
13. thread, process ?
thread๋ process ๋ด์์ ๋์ํจ
stack memory๋ฅผ ๊ฐ๊ณ ๊ทธ ์ธ memory๋ process ๋ด์ ๊ณต์ ํจ
process๋ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ OS๋ก ๋ถํฐ ํ ๋น๋ฐ์
๊ทธ๋ ๋ค๋ฉด process์ thread์ ์ฐจ์ด๋?
Process๋ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ memory ์์ญ์ ๊ณต์ ํ์ง ์์ง๋ง, thread๋ Stack์ ์ ์ธํ ์์ญ์ ๊ณต์ ํจ
14. CollectionFramework ?
๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ํ์คํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ํด๋์ค์ ์งํฉ
- list<E> : ์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ๋ฉฐ, ์์๊ฐ ์กด์ฌํจ
ArrayList : ๋ฐ์ดํฐ ์กฐํ์ ๋น ๋ฅด์ง๋ง ๋น๋ฒํ ์ถ๊ฐ,์ญ์ ์ LinkedList๋ณด๋ค ๋๋ฆผ
LinkedList :์ถ๊ฐ, ์ญ์ ๋ ๋น ๋ฅด์ง๋ง ArrayList๋ณด๋ค ๋๋ฆผ - set<E> : ์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ง ์์ผ๋ฉฐ, ์์๊ฐ ์์ (HashSet, TreeSet)
- map<K,V> : KEY์ VALUE์ ํ ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ์์๊ฐ ์์ (HashMap, TreeMap)
15. ์ ๋ค๋ฆญ์ด๋? <>
ํด๋์ค ๋ด๋ถ์์ ์ฌ์ฉํ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ์ฒด ์์ฑ์์ ๊ฒฐ์ ํ๋ ๋ฐฉ์
1. ํด๋์ค๋ ๋ฉ์๋ ๋ด๋ถ์์ ์ฌ์ฉ๋๋ ๊ฐ์ฒด์ ํ์ ์์ ์ฑ์ ๋์ผ ์ ์์,
2. ๋ฐํ๊ฐ์ ๋ํ ํ์ ๋ณํ ๋ฐ ํ์ ๊ฒ์ฌ์ ๋ค์ด๊ฐ๋ ๋ ธ๋ ฅ์ ์ค์ผ ์ ์์
16. cookie์ Session์ ์ฐจ์ด์ ?
๋ ๋ค ์ฌ์ฉ์์ data๋ฅผ ์ ์ฅํ์ง๋ง,
Cookie : ๋คํธ์ํฌ๋ฅผ ํ๊ณ ์๋ฒ๋ก ์ ๋ฌํ๊ธฐ ๋๋ฌธ์ ๋ณด์์ ์ทจ์ฝํจ
Session : ์๋ฒ์ ์ ์ฅ๋๊ณ ์ฟ ํค์ ๋นํด ๋ณด์์ด ์ข์, ํ์ง๋ง ์ฟ ํค๋ณด๋ค ๋๋ฆฌ๊ณ ์๋ฒ์ ๊ณผ๋ถํ๊ฐ ์๊ธธ ์ ์์
(๊ณผ๋ถํ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ํ ํฐ๊ธฐ๋ฐ์ ์ธ์ฆ๋ฐฉ์์ ์ฌ์ฉ JWT)
17. Request ์ ์ก ๋ฐฉ์ ์ข ๋ฅ ?
(HTTPํ๋กํ ์ฝ์ ์ด์ฉํด์ ์๋ฒ์ ๋ฌด์ธ๊ฐ๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉํ๋ ๋ฐฉ์)
Get : URL์ ์ฟผ๋ฆฌ์คํธ๋ง์ผ๋ก data๋ฅผ ์ ๋ฌํจ, ๊ทธ๋ ๊ธฐ์ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ๊ฐ ์ด๋ ค์, ์ฃผ๋ก ์กฐํ๋ฅผ ํ ๋์ ์ฌ์ฉ
(์ฟผ๋ฆฌ์คํธ๋ง : GET๋ฐฉ์, ?๋ค์์ ๋ณ์=๊ฐ&๋ณ์=๊ฐ..์ ํ์์ผ๋ก URL์์ฑ)
Post : Get๋ณด๋ค ๋๋ฆฌ์ง๋ง ๋ณด์์ด ๋ ์ข์, ์๋ฒ์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝ์ํฌ ๋ ์ฌ์ฉ
18. Restful(Representational State Transfer) ์ด๋ ?
URL๋ง ๋ณด๋๋ผ๋ ์ด๋ค ์์ ์ธ์ง ์ ์ ์๊ณ , One data One URL์ ์์ ๋ฐฉ์
19. Spring์์์ DI (Dependency Injection) ์์กด์ฑ์ฃผ์ ์ด๋ ?
๊ฐ์ฒด(object)๊ฐ์ ์์กด์ฑ์ ์ค์ด๊ธฐ ์ํด ์ฌ์ฉ๋๋ Spring IOC์ ๊ตฌํ๋ฐฉ์
๊ตฌ์ฑ์์๊ฐ์ ์์กด ๊ด๊ณ๊ฐ ์์ค์ฝ๋ ๋ด๋ถ๊ฐ ์๋ ์ธ๋ถ์ ์ค์ ํ์ผ ๋ฑ์ ํตํด ์ ์๋๊ฒ ํ๋ ๋์์ธํจํด
20. Spring์ AOP(Aspect Oriented Programming) ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ?
์ด๋ค ๋ก์ง์ ๊ธฐ์ค์ผ๋ก ํต์ฌ์ ์ธ ๊ด์ , ๋ถ๊ฐ์ ์ธ ๊ด์ ์ผ๋ก ๋๋์ด์ ๋ณด๊ณ
๊ทธ ๊ด์ ์ ๊ธฐ์ค์ผ๋ก ๊ฐ๊ฐ ๋ชจ๋ํ(์ด๋ค ๊ณตํต๋ ๋ก์ง์ด๋ ๊ธฐ๋ฅ์ ํ๋์ ๋จ์๋ก ๋ฌถ์)ํ๊ฒ ๋ค๋ ๊ฒ
=> ๋น์ฆ๋์ค ๋ก์ง์ ์ํ๋ ์ง์ ์ ๊ณตํต ๊ด์ฌ์ฌ๋ฅผ ์ํํจ์ผ๋ก์ ์ค๋ณต์ฝ๋๋ฅผ ์ค์
21. JVM(JAVA Virtual Machine) ์๋ฐ ๊ฐ์๋จธ์ ์ ์ญํ
Java๊ฐ OS์ ์๊ด์์ด ๋์ํ ์ ์๋๋ก ํด์ค, GC(๋ฉ๋ชจ๋ฆฌ๊ด๋ฆฌ(Garbage Collection)) ์ ๊ณต
ํ์ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ์ฌ ์ต๊ณ ์ ์ฑ๋ฅ์ ๋ด๊ธฐ ์ํด์ ์ฌ์ฉ