๋ชจ๋ ํฌ์คํ ์ ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ์์๋ ํ์ธํ์ค ์ ์์ต๋๋ค.
-
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋
- ๋ฐ์ดํฐ ๋ชจ๋ธ๊ณผ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- mac OS์์ ๋์ปค๋ก ์ค๋ผํด EE 12c ์ค์น
- mac OS์์ ๋์ปค๋ก ์ค๋ผํด XE 11g ์ค์น
- SELECT๋ก ๋ฐ์ดํฐ ์กฐํํ๊ธฐ
- ํธ๋์ญ์ ์ ํน์ฑ๊ณผ ๊ฒฉ๋ฆฌ ์์ค
- SQLD SQL ๊ฐ๋ฐ์ ์ํ ํ๊ธฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ธ๋ฑ์ค
- ์ ๋นํ ์ ๋ฆฌ ๋๋ฉด ํ์ผ ๋ถ๋ฆฌํ์ฌ ๋งํฌ ์์
- ๊ฐ์ฒด์งํฅ
์ถ์ํ
: ํ์ค์ธ๊ณ์ ๊ฐ๋ ์ ๋ฐ์ํ๋ ๊ฒ. ๊ฐ์ฒด๋ค์ ๊ณตํต์ ์ธ ํน์ง, ๋ฐ์ดํฐ์ ๊ธฐ๋ฅ์ ๋์ถํ๋ค.์บก์ํ
: ๊ฐ์ฒด์ ์ญํ ์ ์ํํ๊ธฐ ์ํ ํ๋์ ๋ชฉ์ ์ ์ํด ๋ฐ์ดํฐ์ ๊ธฐ๋ฅ๋ค์ ๋ฌถ๋ ๊ฒ์์์ฑ
: ์๋ก์ด ํด๋์ค๊ฐ ๊ธฐ์กด์ ํด๋์ค์ ์๋ฃ์ ์ฐ์ฐ์ ์ด์ฉํ๊ฒ ํด์ฃผ๋ ๊ฒ๋คํ์ฑ
: ํ๋์ ํด๋์ค๋ ๋ฉ์๋๋ฅผ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ด์ฉํ ์ ์๊ฒ ํ๋ค. (์ค๋ฒ๋ผ์ด๋ฉ,์ค๋ฒ๋ก๋ฉ)
- SOLID
- SRP: ๋จ์ผ ์ฑ ์ ์์น(Single Responsibility)
- OCP: ๊ฐ๋ฐฉ/ํ์ ์์น(Open/Closed)
- LSP: ๋ฆฌ์ค์ฝํ ์นํ ์์น(Liskov Substitution)
- ISP ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น(Interface Segregation)
- DIP: ์์กด๊ด๊ณ ์ญ์ ์์น(Dependency Inversion)
- ์๋ฐ ์ฝ๋๋ ์ปดํ์ผ์ ๋ฐ์ดํธ์ฝ๋(.class)๋ก ๋ณํ๋๋ค. ๊ทธ๋ฆฌ๊ณ JVM์ ๋ฐํ์์์ ์ด ๋ฐ์ดํธ์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํ๋ค. ๋๋ถ์ ์๋ฐ๋ ํ๋ซํผ ๋ ๋ฆฝ์ ์ธ ํน์ฑ์ ๊ฐ๋๋ค. ์ฆ ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผ์ ํ๋ฒ๋ง ํ๋ฉด JVM์์ ์ฝ์ ์ ์๊ณ , JVM์ด ์ฌ๋ผ๊ฐ๋ ์ฌ๋ฌ ํ๋ซํผ์์ ๋๊ฐ์ ํ๋ก๊ทธ๋จ์ ์คํ์ํฌ ์ ์๋ค. ๋ฌผ๋ก JVM์ด ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ , ์คํ์๋๊ฐ ๋น ๋ฅด์ง ์๋ค๋ ๋จ์ ์ด ์๋ค. ๋ฐ์ดํธ์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ ์๋๋ ์ผ๋ฐ์ ์ธ ์ปดํ์ผ ์ธ์ด๋ณด๋ค ๋๋ฆฌ๋ค.
-
์๋ฐ์์ ๋ค๋ฃฐ ์ ์๋ ๋ฐ์ดํฐ์ ์ข ๋ฅ๋ฅผ ๋งํ๋ค. ์ข ๋ ์๋ฐํ๊ฒ ์๊ธฐํ๋ฉด, ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ธฐ ์ํด ๊ณต๊ฐ์ ํ ๋นํ ๋ ๊ทธ ๊ณต๊ฐ์ ํน์ฑ์ ์๋ฏธํ๋ค. ๊ธฐ๋ณธ ์๋ฃํ์ ๋ณ์์ ๊ฐ ์์ฒด๊ฐ ์ ์ฅ๋๋ค. ๋ฐ๋ฉด ์ฐธ์กฐ ์๋ฃํ์ ๊ฐ์ฒด์ ์ฃผ์๊ฐ ์ ์ฅ๋๋ค. ๊ฐ์ฒด๋ ํ ์์ญ์ ์์ฑ๋๋ค.
-
๊ธฐ๋ณธ ์๋ฃํ
- ์ ์ํ
byte
: 1byte == 8bit == 2^8short
: 2byte == 16bit == 2^16int
: 4byte == 32bit == 2^32long
: 8byte == 64bit = 2^64
- ๋ฌธ์ํ
char
: 2byte == 16bit == 2^16
- ์ค์ํ
float
: 4byte == 32bit == 2^32double
: 8byte == 64bit == 2^64
- ๋
ผ๋ฆฌํ
boolean
: 1byte == 8bit == 2^8
- ์ ์ํ
-
์ฐธ์กฐ ์๋ฃํ
- ๋ฐฐ์ด(Array)
- ์ด๊ฑฐ(Enumeration)
- ํด๋์ค(Class)
- ์ธํฐํ์ด์ค(Interface)
-
์๋ฃํ๊ณผ ๋ณ์์ ์ฐจ์ด๋?
- ๋ณ์: ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ
- ์๋ฃํ: ๊ทธ ๊ณต๊ฐ์ ํน์ฑ
-
Wrapper Class
- ๋ฐ์ฑ: Primative -> Wrapper Class
- ์ธ๋ฐ์ฑ: Wrapper Class -> Primative
- ์๋ฐ 1.5๋ถํฐ๋ ์คํ ๋ฐ์ฑ๊ณผ ์คํ ์ธ๋ฐ์ฑ์ ์ง์
์๋ฐ์ ๋ฑ๋ก๋์ด ํน์ ๋ชฉ์ ์ ์ํด ์ฌ์ฉ๋๋ ๋จ์ด. ์์ฝ์ด๋ ๋ณ์๋ช , ๋ฉ์๋๋ช ๋ฑ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ๋ช๊ฐ์ง ์ฃผ์ ์์ฝ์ด ํน์ง ์ ๋ฆฌ.
final
: ํ๋ฒ ๊ฐ์ด ํ ๋น์ด ๋๋ฉด ๋ฐ๊ฟ ์ ์๋ค.ํด๋์ค, ๋ฉ์๋, ๋ณ์์ ๋ถ์ ์ ์๋ค.- ํด๋์ค: ์์์ด ๋ถ๊ฐ๋ฅํ๋ค.
- ๋ฉ์๋: ์ค๋ฒ๋ผ์ด๋๊ฐ ๋ถ๊ฐ๋ฅํ๋ค.
- ๋ณ์: ์์ ํ์ ์ ๊ฒฝ์ฐ ์์๊ฐ์ด ๋๋ค. ์ฐธ์กฐ ํ์ ์ ๊ฒฝ์ฐ ํ ๋น๋ ๊ฐ์ฒด๋ฅผ ๋ฐ๊ฟ ์ ์๋ค. ์ธ์คํด์ค๋ฅผ ๋ค๋ฅธ ์ธ์คํด์ค๋ก ๋ฐ๊ฟ ์ ์๋ ๊ฒ์ด์ง, ์ธ์คํด์ค๊ฐ ๊ฐ๊ณ ์๋ ๊ฐ์ ๋ฐ๊ฟ ์ ์๋ค.
static
: static ์์ญ์ ํ ๋น๋์ด ํ๋ก๊ทธ๋จ์ด ๋๋ ๋๊น์ง ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ์ง๋๋ค. ๊ฐ์ฒด๊ฐ ๊ณต์ ํ ์ ์์ด ์ด๋์๋ ์ ๊ทผํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค. ๊ทธ๋ฌ๋ GC์ ์ํด์ ๊ด๋ฆฌ๋์ง ์๊ธฐ ๋๋ฌธ์ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ๋ฉด ์์คํ ์ฑ๋ฅ์ ์ ์ํฅ์ ์ค ์ ์๋ค. Method Area์ ์์์ผ๋ ์๋ฐ8๋ถํฐ Heap์ผ๋ก.synchronized
: ์ฌ๋ฌ ์ฐ๋ ๋๊ฐ ํ๋์ ์์์ ์ ๊ทผํ๋ ค ํ ๋, ๋จ ํ๋์ ์ฐ๋ ๋๋ง์ด ์ ๊ทผ ๊ฐ๋ฅํ๋๋ก ํ๋ค.
๋ณ์, ํจ์, ํด๋์ค ๋ฑ์ผ๋ก์ ์ ๊ทผ ์ ํ์ ์ค์ ํ๋ ์์ฝ์ด. ๋์์ด ๋ณ๊ฒฝ๋์ด์๋ ์ ๋ ๊ณณ์์ ๋ณ๊ฒฝ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
public
: ์ด๋์๋ ์ ๊ทผ ๊ฐ๋ฅprotected
: ๊ฐ์ ํจํค์ง ๋ฐ ์์ ํด๋์ค์์ ์ ๊ทผ ๊ฐ๋ฅdefault
: ๊ฐ์ ํจํค์ง์์๋ง ์ ๊ทผ ๊ฐ๋ฅprivate
: ํด๋์ค ๋ด๋ถ์์๋ง ์ ๊ทผ ๊ฐ๋ฅ
- Set: ์์์์. ์ค๋ณต ํ์ฉํ์ง ์์.
- Map: Hash. ํค ์์ ์์. ํค๋ ์ค๋ณต ํ์ฉํ์ง ์์.
- List: ์์์์. ์ค๋ณต ํ์ฉ.
- ์ ๋ค๋ฆญ์ ์ฌ์ฉํ๋ ์ด์ ?
-
Stack
- ์ ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋๋ค.
Primative
ํ์ ์ ๋ฐ์ดํฐ๊ฐ ๊ฐ๊ณผ ํจ๊ป ํ ๋น๋๋ค.Heap
์ ์์ฑ๋ ์ค๋ธ์ ํธ์ ์ฐธ์กฐ๊ฐ์ด ํ ๋น๋๋ค.Thread
๋ง๋ค ๊ณ ์ ์Stack
์ ๊ฐ์ง๋ค.- ์ง์ญ๋ณ์์ ๋งค๊ฐ๋ณ์๊ฐ ์ ์ฅ๋๋ค.(์ ์ญ๋ณ์, ์ ์ ๋ณ์๋ ๋ฐ์ดํฐ ์์ญ์)
- ๋์ ์ฃผ์์์ ๋ฎ์ ์ฃผ์๋ก.
-
Heap
- ๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋๋ค.
- ์ค๋ธ์ ํธ๊ฐ ์ ์ฅ๋๋ค.
- ๋ฎ์ ์ฃผ์์์ ๋์ ์ฃผ์๋ก.
Stack Overflow
์คํ ํ๋ ์์ด ์คํ ์์ญ์ ๊ฒฝ๊ณ๋ฅผ ๋์ด์์ ํ ์์ญ๊ณผ ๊ฒน์น๊ฒ ๋๋ ์ค๋ฅ
- Stack์ ๋ณ์๋ Heap์ ์ค๋ธ์ ํธ๋ฅผ ์ฐธ์กฐํ๋ค. ๋ณ์์ ์ค๋ธ์ ํธ์ ์ฐ๊ฒฐ์ด ๋์ด์ง ์ํ๋ฅผ Unreachable, JVM GC๋ ์ด ์ํ์ ์ค๋ธ์ ํธ์ ๋ํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ๋ค.
- Heap์ Young๊ณผ Old๋ก ๊ตฌ๋ถ๋๊ณ , Young์ ๋ Eden๊ณผ Survival๋ค๋ก ๊ตฌ๋ถ๋๋ค. ๊ฐ ์์ญ์ด ์ฐฐ ๋ GC๊ฐ ๋ฐ์ํ๊ณ , ์ด์๋จ์ ์ค๋ธ์ ํธ๋ฅผ ๋ค๋ฅธ ์์ญ์ผ๋ก ์ฎ๊ธด๋ค. Young์ Minor GC, Old๋ฅผ Major GC๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ์ค๋ธ์ ํธ๋ ์ฒ์ Eden์ ์์ฑ. Eden์์ ์ด์๋จ์ผ๋ฉด Survival๋ก ์ด๋. Survival์์ ์ด์๋จ์ ๊ฑด ๋ค๋ฅธ Survival๋ก ์ด๋. ์๋ค๊ฐ๋ค ํ๋ค๊ฐ ํน์ age์ ๋๋ฌํ๋ฉด Old๋ก ์ด๋.
- GC ์ ๋ต์๋ ๋ฌด์์ด ์์๊น?
- ๋ฆฌํฐ๋ด๊ณผ new์ ์ฐจ์ด
- String Constant Pool
- hashCode
- ์๋ฐ๋ Call by Value
- ํด๋์ค๋ Call by Reference์ฒ๋ผ ๋ณด์
- Wrapper ํด๋์ค๋ ๋ถ๋ณ์ด๋ผ ์ธ์คํด์ค๋ฅผ ์์ ํ์ง ์๊ณ ๋ณ์์ ์ ์ฅ๋ ์ฃผ์ ๊ฐ์ ๋ฐ๊ฟ
- String
- ๋ถ๋ณ ์์ฑ
- String ๋ณ์๋ฅผ ์์ ํ ๊ฒฝ์ฐ ๊ธฐ์กด ์ธ์คํด์ค๋ ๊ทธ๋๋ก ๋จ์์๊ณ , ์๋ก ์์ฑ๋ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํด
- ๊ธฐ์กด ์ธ์คํด์ค๋ GC ๋์์ด ๋์ด, ๋ฌธ์์ด ์์ ์ด ๋น๋ฒํ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ์ด์ ๋ฐ์ ๊ฐ๋ฅ
- StringBuilder vs StringBuffer
- ๊ฐ๋ณ ์์ฑ
- ๋ฌธ์์ด์ด ๋ฐ๋์ด๋ ๋์ผํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๊ธฐ ๋๋ฌธ์ ์์ ์ด ๋ง์ ๊ฒฝ์ฐ ์ด ๋ ์ค ํ๋๋ฅผ ์ฌ์ฉํด์ผ ํจ
- ์ฐจ์ด์ ์ StringBuidler๋ ๋น๋๊ธฐ์ด๋ StringBuffer๋ ๋๊ธฐ
- ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์๋ ๋๊ธฐ์ ์ธ StringBuffer๋ฅผ ์ฌ์ฉํด์ผ ํจ
- ๋จ์ผ์ค๋ ๋ ํ๊ฒฝ์์๋ ๋น๋๊ธฐ์ ์ธ StringBuilder ์ฑ๋ฅ์ด ์ข์
- ํ ๊ณต๊ฐ ์ ์ฝ
- Thread Safe
- ์ค๋ฒ๋ก๋ฉ
- ์ํ์
- ๋์ผํ ๋ฉ์๋๋ช ์์ ํ๋ผ๋ฏธํฐ ํ์ ๊ณผ ๊ฐ์๋ฅผ ๋ค๋ฅด๊ฒ ์ ์ธํ๋ ๊ฒฝ์ฐ
- ์ค๋ฒ๋ผ์ด๋ฉ
- ์์ง์
- ๋ถ๋ชจ ํด๋์ค์ ๋ฉ์๋๋ฅผ ์ฌ์ ์ ํ๋ ๊ฒฝ์ฐ
Controller
: ์ฌ์ฉ์๋ก๋ถํฐ ์์ฒญ์ ๋ฐ๋ ์์ญModel
: ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์์ญView
: ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ์๋ต์ ํ์ํ๋ ์์ญ
-
Propagation
ํธ๋์ญ์ ์งํ ์ค ํธ๋์ญ์ ๋ฏธ์งํ REQUIRED ํด๋น ํธ๋์ญ์ ์ฌ์ฉ ์๋ก์ด ํธ๋์ญ์ ์์ฑ MANDATORY ํด๋น ํธ๋์ญ์ ์ฌ์ฉ ์์ธ ๋ฐ์ REQUIRES_NEW ํด๋น ํธ๋์ญ์ ๋ณด๋ฅ, ์๋ก์ด ํธ๋์ญ์ ์์ฑ ์๋ก์ด ํธ๋์ญ์ ์์ฑ SUPPORTS ํด๋น ํธ๋์ญ์ ์ฌ์ฉ ํธ๋์ญ์ ์์ด ์งํ NOT_SUPPORTED ํด๋น ํธ๋์ญ์ ๋ณด๋ฅ ํธ๋์ญ์ ์์ด ์งํ NEVER ์์ธ ๋ฐ์ ํธ๋์ญ์ ์์ด ์งํ NESTED ์ค์ฒฉ ํธ๋์ญ์ ์์ฑ ์๋ก์ด ํธ๋์ญ์ ์์ฑ -
isolation
- ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค ์ง์
-
rollbackFor
- ๋กค๋ฐฑํ๋ ์์ธ๋ฅผ ์ง์
-
noRollbackFor
- ๋กค๋ฐฑํ์ง ์๋ ์์ธ๋ฅผ ์ง์
- ์์ฑ์ ์ฃผ์
- ์ํ ์ฐธ์กฐ ๋ฐฉ์ง
- ๊ฐ์ฒด์ ๋ถ๋ณ์ฑ ํ๋ณด
- ์คํ๋ง์ ์ง์ ์ ์ธ ์์กด ๋ฐฉ์ง
- ํ ์คํธ ์ฝ๋ ์์ฑ ํธ์
- final + lombok
- ์์ ์ ์ฃผ์ (Setter)
- ํ๋ ์ฃผ์ (@Autowired)
- sevlet container -> dispatcher servlet -> handler
- ์์์ฑ ์ปจํ ์คํธ๋ฅผ ๋ทฐ๊น์ง ์ด์ด๋๋ ๊ฒ
- ์ํฐํฐ๋ฅผ ์์ ์ํ๋ก ์ ์งํ๊ณ , ๋ทฐ์์๋ ์ง์ฐ ๋ก๋ฉ ์ฌ์ฉ ๊ฐ๋ฅ
- ์์ฒญ๋น ํธ๋์ญ์
- ํํฐ๋ ์ธํฐ์ ํฐ ๋ ๋ฒจ์์ ํธ๋์ญ์ ์์ ๋ฐ ์ข ๋ฃ
- ๋ทฐ๋ ์ปจํธ๋กค๋ฌ์์ ์ ๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅํด์ ธ์ ์ ์ง๋ณด์ ์ด๋ ค์
- ์ฝ๊ธฐ ์ ์ฉ ์ธํฐํ์ด์ค, ์ํฐํฐ ๋ํ, DTO ๋ฑ์ผ๋ก ๋ณด์ ๊ฐ๋ฅํ๋ ๋นํจ์จ์
- ๋น์ฆ๋์ค ๊ณ์ธต ํธ๋์ญ์
(์คํ๋ง OSIV)
- ์์์ฑ ์ปจํ ์คํธ์ ํธ๋์ญ์ ์ ๋ผ์ดํ์ฌ์ดํด์ ๋ถ๋ฆฌ
- ํธ๋์ญ์ ๋ฐ์์ ์ํฐํฐ ์์ ํ ๋ค์ ํธ๋์ญ์ ์์์ ์์์ฑ ์ปจํ ์คํธ์ ๋ณ๊ฒฝ ๋ด์ฉ์ด ๋ฐ์๋๋ ์ ์ฃผ์
- ์ด์จ๋ ์์์ฑ ์ปจํ ์คํธ๊ฐ ์ข ๋ฃ๋ ๋๊น์ง DB ์ปค๋ฅ์ ์ ๊ณ์ ๋ฌผ๊ณ ์๋ค.
- ๊ทธ๋ฅ ๋๋ ๊ฒ ์ข๋ค
- ์ํฐํฐ ์๋ช
์ฃผ๊ธฐ
- ์์, ์ค์์, ๋น์์, ์ญ์
- ์ฅ์
- ๋์ผ์ฑ ๋ณด์ฅ(PK ๋น๊ต)
- 1์ฐจ ์บ์
- ํธ๋์ญ์ ์ฐ๊ธฐ ์ง์ฐ
- ๋ณ๊ฒฝ ๊ฐ์ง(Dirty Checking)
- ์ง์ฐ ๋ก๋ฉ
Physical Layer
: ๋นํธ๋ฅผ ์ ์๊ธฐํ๋ก ๋ฐ๊พธ๋ ์ญํ . PHY์๋? ๋ฌผ๋ฆฌ์ ์ผ๋ก ๊ตฌํ๋์ด ์๋ค.Data Link Layer
: ๋ด์ฉ ์๋ค๋ก ๊ตฌ๋ถ์(?)๋ฅผ ์ถ๊ฐํ๋ ์ญํ . Lan ์นด๋์ธ๊ฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๊ตฌํ๋์ด ์๋ค.Network Layer
: ์ฃผ์ ์ถ๊ฐ.Transport Layer
: ํฌํธ ์ถ๊ฐ.Session Layer
Presentation Layer
Application Layer
-
Link Layer: OSI 7์์ Phsyical ~ Data Link์ ํด๋น
-
Internet Layer: OSI 7์์ Network์ ํด๋น
-
Transport Layer
-
Application Layer: OSI 7์์ Session ~ Presentation์ ํด๋น
Hyper Text Transfer Protocol
- ๊ตฌ์ฑ
- Header
- Body
- ์ํคํ ์ฒ
Representational State Transfer
- HTTP URI(Uniform Resource Identifier)๋ฅผ ํตํด ์์(Resource)์ ๋ช ์.
- HTTP Method์ ํด๋น ์์์ ๋ํ CRUD Operation ๋งคํ
POST
: ๋ฐ์ดํฐ ์์ฑ ์์ฒญ. CreateGET
: ๋ฐ์ดํฐ ์กฐํ ์์ฒญ.ReadPUT
: ๋ฐ์ดํฐ ์์ or ์์ฑ ์์ฒญ. Create or UpdateDELETE
: ๋ฐ์ดํฐ ์ญ์ ์์ฒญ. DeletePATCH
: ๋ฐ์ดํฐ ์์ ์์ฒญ. Update
- ์ฅ์
- ์๋ํ๋ ๋ฐ๋ฅผ ์ฝ๊ฒ ํ์ ํ ์ ์๋ค.
- ๋จ์
- ํ์ค์ด ์๋ค.
- HTTP์ ๋ณด์ ๊ณ์ธต์ ์ถ๊ฐํ์ฌ ํจํท ์ํธํ.
TCP
: ์ํธ์์ฉ. ํ์ผ ์ ์ก ๋ฑ ์ ๋ขฐ์ฑ ์ค์.- 3 way handshake: ๊ฐ์ํ์ ์๋ฆฝ. SYN(n) -> ACK(n+1) + SYN(m) -> ACK(m+1).
- 4 way handshake: ์ฐ๊ฒฐ ํด์ .
UDP
: ๋ณด๋ด๊ณ ๋. ๋น ๋ฆ. ์คํธ๋ฆฌ๋ฐ ๋ฑ ํจ์จ์ฑ ์ค์.
- ์ฟ ํค
- ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์ ์ ์ฅ๋๋ ํค์ ๊ฐ
- ์ ํจ ์๊ฐ ๋ช ์ ๊ฐ๋ฅ
- Response Header์์ ์ฟ ํค ์ธํ ๊ฐ๋ฅ
- ๋ธ๋ผ์ฐ์ ์์ ์์์ Request Header์ ์ธํ ํ์ฌ ์๋ฒ๋ก ์ ์ก
- ์ธ์
- ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์์ ๊ด๋ฆฌ
- ํด๋ผ์ด์ธํธ๋ ์ธ์ ID๋ฅผ ์ฟ ํค์ ์ ์ฅํ์ฌ, ์์ฒญ์๋ง๋ค ์ ๋ฌ
- ๋ณด์๋ฉด์์ ์ฟ ํค๋ณด๋ค ์ฐ์
-
Uniform Resource
- Identifier
- Locator
- Name
-
URI ๊ตฌ์กฐ
-
scheme://[userinfo@]host[:port][/path][?query][#fragment]
-
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ฅ์ ๋ ผ๋ฆฌ์ ์์ ์ผ๋ก์ ํ๋์ ๋จ์๋ก ๋ฌถ์ ์งํฉ.
-
ACID
- Atomicity(์์์ฑ): ์ปค๋ฐ || ๋กค๋ฐฑ -> ์งํฉ์ ๊ฐ ๊ธฐ๋ฅ์ ๋ชจ๋ ๋ฐ์๋๊ฑฐ๋, ์๋ฌด๊ฒ๋ ๋ฐ์๋์ง ์์์ผ ํ๋ค.
- Consistency(์ผ๊ด์ฑ): ์์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ ํญ์ ์ผ๊ด์ ์ด์ด์ผ ํ๋ค.
- Isolation(๋ ๋ฆฝ์ฑ): ์ฌ๋ฌ ํธ๋์ญ์ ์ด ์คํ ์ค์ผ ๋ ๋ค๋ฅธ ํธ๋์ญ์ ์ ๊ฐ์ญํ ์ ์๋ค. -> ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฝ
- Durability(์ง์์ฑ): ํธ๋์ญ์ ์ปค๋ฐ ๊ฒฐ๊ณผ๋ ์๊ตฌ ๋ฐ์๋์ด์ผ ํ๋ค.
-
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฝ
-
ex) 100,000์ ๊ณ์ข์์ 10,000์ ์ถ๊ธ ์์ฒญ A์ 10,000์ ์ถ๊ธ ์์ฒญ B๊ฐ 0.1์ด ๊ฐ๊ฒฉ์ผ๋ก ๋ค์ด์จ๋ค๋ฉด? 1. A๊ฐ ํ์ฌ ์์ก 100,000์ ์กฐํ
2. B๊ฐ ํ์ฌ ์์ก 100,000์ ์กฐํ 3. A๊ฐ 10,000์ ๋บ 90,000์ ์ ๋ฐ์ดํธ 4. B๊ฐ 10,000์ ๋บ 90,000์ ์ ๋ฐ์ดํธ 5. ๋จ์ ์์ก์ 90,000์? -> ์ด๋ผ ์๋๋ค.
-
-
ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค
- Read uncommited: ๊ฒฉ๋ฆฌ ์์ค์ด ์ ์ผ ๋ฎ์. ์ปค๋ฐ๋์ง ์์ ์์
๋ด์ญ๋ ๋ค๋ฅธ ํธ๋์ญ์
์์ ๋ณผ ์ ์์.
- Dirty Read
- Read commited: ์ปค๋ฐ๋ ์์
๋ง ๋ค๋ฅธ ํธ๋์ญ์
์์ ์ฝ์ ์ ์์. ๊ทธ๋ฌ๋ ์ฌ๋ฌ๋ฒ ์กฐํ์ ๊ฐ์ด ๋ฐ๋๋ ๋ฌธ์ ๊ฐ ์๊น.
- Unrepeatable read
- Repeatable read
- Phantom read
- Serializable: ๋ฝ์ด ๊ฑธ๋ฆผ. ์ต๊ณ ์์ค์ ๊ฒฉ๋ฆฌ์ด๋ ์ฑ๋ฅ์ด ๋ง์ด ๋จ์ด์ง.
๋ฐ์ดํฐ ์ ํฉ์ฑ๊ณผ ๋์์ฑ์ trade-off ๋๋ฌธ์ ํ์ค์ ์ผ๋ก๋ ๊ฒฉ๋ฆฌ ์์ค์ ๊ณ ๋ คํ๋ค.
์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ Read Commited - Repetable Read ์ฌ์ด์์ ์ ํ.
- Read uncommited: ๊ฒฉ๋ฆฌ ์์ค์ด ์ ์ผ ๋ฎ์. ์ปค๋ฐ๋์ง ์์ ์์
๋ด์ญ๋ ๋ค๋ฅธ ํธ๋์ญ์
์์ ๋ณผ ์ ์์.
๋ฐ์ดํฐ์ ์ค๋ณต์ ํ์ฉํ์ง ์๋ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค๊ณํ๋ ๊ฒ. ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๊ณ ์ฉ๋์ ์ค์ผ ์ ์๋ค.
-
์ 1์ ๊ทํ: ์ปฌ๋ผ์ด ์์๊ฐ์ ๊ฐ๋๋ก ํ๋ค.
-
์ ๊ทํ ์
์ด๋ฆ ๊ทธ๋ฃน๋ช ๋ฉ๋ชฌ์คํฐ ๋ฐฉํ์๋ ๋จ ํฉ๋ฏผํ ๋ด์ด์คํธ, ์๋์ ์ํฐ ์์คํ -
์ ๊ทํ ํ
์ด๋ฆ ๊ทธ๋ฃน๋ช ๋ฉ๋ชฌ์คํฐ ๋ฐฉํ์๋ ๋จ ํฉ๋ฏผํ ๋ด์ด์คํธ ํฉ๋ฏผํ ์๋์ ์ํฐ ์์คํ
-
-
์ 2์ ๊ทํ: PK์ ์ข ์๋ ์ปฌ๋ผ์ด ํฌํจ๋์ด์ ์ ๋๋ค.
-
์ ๊ทํ ์
์ด๋ฆ(PK) ๊ทธ๋ฃน๋ช (PK) ์์์ฌ ๋ฉ๋ชฌ์คํฐ ๋ฐฉํ์๋ ๋จ ๋น ํํธ ํฉ๋ฏผํ ๋ด์ด์คํธ ํ๋ ๋์ค ํฉ๋ฏผํ ์๋์ YMC ์ํฐ ์์คํ SM -
์ ๊ทํ ํ
์ด๋ฆ(PK) ๊ทธ๋ฃน๋ช (PK) ๋ฉ๋ชฌ์คํฐ ๋ฐฉํ์๋ ๋จ ํฉ๋ฏผํ ๋ด์ด์คํธ ํฉ๋ฏผํ ์๋์ ์ํฐ ์์คํ ๊ทธ๋ฃน๋ช (PK) ์์์ฌ ๋ฐฉํ์๋ ๋จ ๋น ํํธ ๋ด์ด์คํธ ํ๋ ๋์ค ์๋์ YMC ์์คํ SM
-
-
์ 3์ ๊ทํ
- PK๊ฐ ์๋ ์ปฌ๋ผ์ ์ข ์๋ ์ปฌ๋ผ์ด ์๊ฒจ์ ์ ๋จ.
-
BCNF ์ ๊ทํ
- ๋ชจ๋ ๊ฒฐ์ ์๊ฐ ํ๋ณดํค๊ฐ ๋๋๋ก ํ ์ด๋ธ์ ๋ถใ ํดํ๋ค.
-
๋ฐ์ ๊ทํ
- ํจ์จ์ ์ํด์ ์ค๋ณต์ ํ์ฉํ๋ ๊ฒ.
- Join์ ์์ฒญ๋ ์ฐ์ฐ๋์ ํผํ๊ธฐ ์ํด์ ์ฌ์ฉ
- ์ ๊ทํ๋์ง ์์ ๊ฒ๊ณผ๋ ๋ค๋ฆ.
- ํด์ ํ ์ด๋ธ
- B-Tree
- B+Tree
- ํด์ ์์
- ์ตํฐ๋ง์ด์
- ์ค์บ
์์ญ | ์ค๋ช | |
---|---|---|
์ฝ๋(ํ ์คํธ) | ์ฝ๋ | ์คํํ ํ๋ก๊ทธ๋จ์ ์ฝ๋. |
๋ฐ์ดํฐ | ์ ์ญ ๋ณ์, ์ ์ ๋ณ์ | ํ๋ก๊ทธ๋จ์ ์์์ ํ ๋น, ์ข ๋ฃ์ ์๋ฉธ. |
ํ | ์ธ์คํด์ค | ๋ฐํ์์์ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋จ. ๋ฎ์ ์ฃผ์์์ ๋์ ์ฃผ์๋ก ๋ฉ๋ชจ๋ฆฌ ํ ๋น. |
์คํ | ์ง์ญ๋ณ์, ๋งค๊ฐ๋ณ์ | ์ปดํ์ผ์์ ํฌ๊ธฐ ๊ฒฐ์ . ๋์ ์ฃผ์์์ ๋ฎ์ ์ฃผ์๋ก ๋ฉ๋ชจ๋ฆฌ ํ ๋น. |
- Multi Process
- ํ๋์ ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ก ๊ตฌ์ฑ.
- ๊ฐ ํ๋ก์ธ์ค๊ฐ ํ๋์ Task๋ฅผ ์ฒ๋ฆฌ.
- ํ๋ก์ธ์ค ํ๋๊ฐ ์๋ชป ๋์ด๋ ๋์์ ํ๋, Context Switching ๋น์ฉ ๋ฐ์
- Multi Thread
- ํ๋์ ํ๋ก์ธ์ค๋ฅผ ์ฌ๋ฌ ์ฐ๋ ๋๋ก ๊ตฌ์ฑ.
- ๊ฐ ์ฐ๋ ๋๊ฐ Task๋ฅผ ์ฒ๋ฆฌ.
- ์์คํ ์์ ์๋ชจ, ์ฒ๋ฆฌ ๋น์ฉ ๋ฑ์ด ๊ฐ์๋๋ ๋๊ธฐํ ์ด์ ๋ฐ์ ๊ฐ๋ฅ.
- ์ฐ๋ ๋ ํ๋์ ์ค๋ฅ๋ก ์ ์ฒด ํ๋ก์ธ์ค ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ.
- Context Switching
- CPU์์ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋์๊ฐ๋ฉฐ ์์ ์ ์ฒ๋ฆฌํ๋ ๊ณผ์
- Thread Safe
- Multi-Thread ํ๊ฒฝ์์ ์์ ํ๋ค.
- ํจ์๊ฐ ์ ์ญ ๋ณ์๋ฅผ ์ฐธ์กฐํ๊ณ ์๋ค๋ฉด Thread-Safe ํ์ง ์์ ์ ์์
- synchronized ๋ธ๋ก
-
์ธ๋ถ ๋จํธํ
-
๋ฉ๋ชจ๋ฆฌ ์ปดํฉ์
-
ํ์ด์ง
-
๋ด๋ถ ๋จํธํ
-
์ธ๊ทธ๋ฉํ ์ด์
-
๋ฉ๋ชจ๋ฆฌ ํ
-
๋ฉ๋ชจ๋ฆฌ ๋์
- ์ ์
- Round Robin
- ๊ฐ ํ๋ก์ธ์ค์ ๋์ผํ ์๊ฐ ํ ๋น
- ํ ๋น ์๊ฐ์ด ๋๋ฌด ํฌ๋ฉด FCFS์ ์ฐจ์ด ์์
- ํ ๋น ์๊ฐ์ด ๋๋ฌด ์์ผ๋ฉด ์ปจํ ์คํธ ์ค์์นญ ๋น์ฉ ์ฆ๊ฐ
- SRT(Shortest Remain Time)
- Multi Level Queue(๋ค๋จ๊ณ ํ)
- Multi Level Feedback Queue
- Round Robin
- ๋น์ ์
- First Come First Service == FIFO
- ๋จผ์ ์จ ๊ฒ ๋จผ์ ์ฒ๋ฆฌ
- ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง ์ ์์
- Shortest Job First
- ์คํ ์๊ฐ์ด ์งง์ ํ๋ก์ธ์ค ๋จผ์ ์ํ
- ํ๊ท ๋๊ธฐ ์๊ฐ์ด ๊ฐ์ฅ ์งง์
- ์คํ ์๊ฐ ๊ธด ํ๋ก์ธ์ค ์ฐจ๋ก๊ฐ ์ค์ง ์๋ ๊ธฐ์ ํ์ ๋ฐ์
- Highest Respons-ratio Next
- First Come First Service == FIFO
- OPT(Optimal)
- ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ํ์ด์ง ๊ต์ฒด
- ํ๋ก์ธ์ค๊ฐ ์์ผ๋ก ์ฌ์ฉํ ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ์์์ผ ํจ
- ์ด์์ ์ด๋ ์คํ ๋ถ๊ฐ๋ฅ
- ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ๊ณผ์ ์ฑ๋ฅ ๋น๊ต ๋ชฉ์
- LRU(Least Recently Used)
- ๊ฐ์ : ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉํ์ง ์์ ํ์ด์ง๋ผ๋ฉด ์์ผ๋ก๋ ์ฌ์ฉํ ํ๋ฅ ์ด ์ ์ ๊ฒ์ด๋ค.
- FIFO(First In First Outs)
- ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ํ์ด์ง ์์๋๋ก ๋ด๋ณด๋
- ๋จ์ :
- LFU(Least Frequently Used)
- MFU(Most Frequently Used)
- NUR(Not Used Recently)
- ์ค์ผ์ผ์์์ ์๋ฒ์ ๋์๋ฅผ ๋๋ฆฌ๊ณ , ์ค์ผ์ผ์ ์ ์๋ฒ์ ์ฑ๋ฅ์ ๋๋ฆฐ๋ค.
- ํต์ฌ์ ์ ์ด์ ์ฃผ๋๊ถ. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ฐ๋ฐ์๊ฐ ์คํ ํ๋ฆ์ ์ ์ดํ๋ค. ๋ฐ๋ฉด ํ๋ ์์ํฌ๋ ์ ํด์ง ์๋ช ์ฃผ๊ธฐ ๊ฐ์ ๊ฒ์ด ์๊ณ , ๊ทธ ํ๋ฆ ์์์ ๊ฐ๋ฐํ ์ ์๋ค.
- ์ฅ์ : ์ผ๋ถ ์๋น์ค์ ์ฅ์ ๊ฐ ์ ์ฒด ์๋น์ค์ ์ฃผ๋ ์ํฅ์ด ์ ๋ค. ๊ฐ ์๋น์ค์ ํน์ฑ์ ๋ฐ๋ผ ์ ํฉํ ๊ธฐ์ ์คํ์ ์ ํํ ์ ์๋ค.
- ๋จ์ : ํธ๋์ญ์ ์ฒ๋ฆฌ๊ฐ ์ด๋ ต๋ค. ํต์ ๋น์ฉ์ด ๋ฐ์ํ๋ค.
- MSA ํธ๋์ญ์
์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊น?
- SAGA ํจํด
- inStack๊ณผ outStack. outStack์ด ๋น์์ ๋๋ง inStack -> outStack.
- DFS -> Stack
- BFS -> Queue
- ๋ฉ์์ง ์งํฅ ๋ฏธ๋ค์จ์ด๋ฅผ ๊ตฌํํ ์์คํ
- Producer - Queue - Consumer
- ํน์ง
- ๋น๋๊ธฐ
- ๋ฎ์ ๊ฒฐํฉ๋
- ํ์ฅ์ฑ
- ํ๋ ฅ์ฑ
- ๋ณด์ฅ์ฑ
-
AMQP ํ๋กํ ์ฝ ๊ตฌํ
-
Exchange์์ Queue๋ก ๋ผ์ฐํ
-
Manage UI ์ ๊ณต
-
ํ๋ฌ๊ทธ์ธ์ผ๋ก ๋์ ํ์ฅ์ฑ
- https://martianlee.github.io/posts/naver-interview-review/
- https://remover.tistory.com/177
- https://jw910911.tistory.com/8
- https://dongza.tistory.com/m/13
- https://github.com/JaeYeopHan/Interview_Question_for_Beginner
- https://github.com/MaximAbramchuck/awesome-interview-questions
- https://mellowp-dev.tistory.com/4