TIL ๐
๊ฐ์, ์ฑ ๋ฑ์ ํตํด ๋ฐฐ์ด ์ด๋ก ๋ค์ ์ ๋ฆฌํ ๊ณต๊ฐ์ ๋๋ค. ๋ชฉ๋ก์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Java
๊ธฐ๋ณธ ๋ฐ ๊ธฐํ
- ๋คํ์ฑ - ๋คํ์ฑ - 1 - ๋คํ์ฑ์ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ๊ณผ ์บ์คํ 
- ๋คํ์ฑ - 2 - ๋คํ์ฑ์ ํ์ฉํ ์ฝ๋ ๋ฆฌํฉํ ๋ง(with ์ธํฐํ์ด์ค) 
 
Interview โจ
์ด์์ฒด์ 
- ์ด์ ์ฒด์ ์ ์ฃผ์ ๋ชฉ์  
- ์ด์ ์ฒด์ ์ ๊ธฐ๋ฅ 
 
- ์ฐ๋ ๋์ ํ๋ก์ธ์ค ์ฐจ์ด - Threading,- Processing
- Thrashing
 
- ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ๊ธฐ ์ํ ์กฐ๊ฑด 
- ๊ต์ฐฝ์ํ ํด๊ฒฐ๋ฒ 
 
- CPU ์ค์ผ์ค๋ง ๋ฐฉ๋ฒ๋ค 
 
- ๋ฉํฐ ํ๋ก์ธ์ค๋? 
- ๋ฉํฐ ํ๋ก์ธ์ค ๋์ ๋ฉํฐ ์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์ด์ 
- ๋ฉํฐ ํ๋ก์ธ์ฑ๊ณผ ๋ฉํฐ ํ๋ก๊ทธ๋๋ฐ์ ์ฐจ์ด 
- ๋ฉํฐ ํ์คํน์ด๋? 
- ๋ฉํฐ ํ์คํน๊ณผ ๋ฉํฐ ์ฐ๋ ๋ฉ ๋น๊ต 
 
๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ธ๋ฑ์ค๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๋ ค๋ฉด 
- ์ธ๋ฑ์ค ์๊ณ ๋ฆฌ์ฆ 
 
- ๋ด๋ถ ์กฐ์ธ๊ณผ ์ธ๋ถ ์กฐ์ธ์ ์ฐจ์ด 
 
- RDB์ ์ฐจ์ด์  
- NoSQL์ด ๋ ๋น ๋ฅธ ์ด์ 
- RDB์ NoSQL์ ์ฌ์ฉํด์ผ ํ ๋ 
 
- ํธ๋์ญ์  4๊ฐ์ง ์์น(ACID) 
- ํธ๋์ญ์  ๊ฒฉ๋ฆฌ ์์ค 
 
์๋ฐ
- ์๋ฐ๋ call by value? call by reference? - call by value์- call by reference์ฐจ์ด ์ฝ๋ ์์
 
- ์ฐ๋ ๋ ์์ ํ๋ค๋ ๊ฒ์? - ์ฐ๋ ๋ ์์ ์ ์ํ 4๊ฐ์ง ๋ฐฉ๋ฒ 
- ์๋ฐ์์ ์ฐ๋ ๋ ์์ ํ๊ฒ ์ค๊ณํ๋ ๋ฐฉ๋ฒ 
- java.util.concurrentํจํค์ง๋?
 
- JVM ๊ตฌ์กฐ 
 
- GC ๋ฑ์ฅ ๋ฐฐ๊ฒฝ 
- Heap ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ 
- GC ๋์ ๋ฐฉ์ 
- GC ์ฌ๋ฌ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ 
 
- ๋ณ์ฑ & ์์ผ๋์นด๋ 
 
- ๋ณ๋ ฌ ์คํธ๋ฆผ 
 
์คํ๋ง
- ์คํ๋ง์ ํน์ง 
 
- ์คํ๋ง์ด - Annotation๊ธฐ๋ฐ์ธ ์ด์ ์ ์ฃผ์- Annotation
 
- MyBatisvs- JPA
 
Spring
์คํ๋ง ํต์ฌ ์๋ฆฌ
๊ธฐ๋ณธ
- ์์ ์๋ฐ ์ค๊ณ(1) - ์คํ๋ง ๊ธฐ์ ์์ด ์๋ฐ๋ง์ผ๋ก ์ค๊ณํ ๋ ๋ฌธ์ ์  
- ์์ ์๋ฐ ์ค๊ณ(2) - ์๋ฐ๋ง์ผ๋ก ์ค๊ณํ์ ๋ ๋ฌธ์ ์ ์ ํด๊ฒฐํด๋ณด๊ณ ์คํ๋ง ๊ธฐ์ ์ ๋ชฉํด๋ณด๊ธฐ 
- ์คํ๋ง ์ปจํ ์ด๋(1) - ์คํ๋ง ์ปจํ ์ด๋ ์์ฑ ๊ณผ์ ๊ณผ ์ปจํ ์ด๋์ ๋ฑ๋ก๋ ๋น ์กฐํํ๋ ๋ฒ 
- ์คํ๋ง ์ปจํ ์ด๋(2) - ์คํ๋ง ๋น์ ์์ฑํ๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ( - BeanFactory์- ApplicationContext)
- ์ฑ๊ธํค ์ปจํ ์ด๋(1) - ์ฑ๊ธํค ํจํด๊ณผ ์ฑ๊ธํค ๋ฐฉ์์ ์ฃผ์์ (๊ณต์ ํ๋) 
- ์ฑ๊ธํค ์ปจํ ์ด๋(2) - - @Configuration์ ๋ํด
- ์ปดํฌ๋ํธ ์ค์บ - ์๋ ๋น ๋ฑ๋ก 
- ์์กด๊ด๊ณ ์๋ ์ฃผ์ (1) - ๋ค์ํ ์์กด๊ด๊ณ ์ฃผ์ ๋ฐฉ๋ฒ 
- ์์กด๊ด๊ณ ์๋ ์ฃผ์ (2) - ์กฐํํ ๋น์ด 2๊ฐ ์ด์์ผ ๋ ๊ตฌ๋ถํ๋ ๋ฐฉ๋ฒ 
- ๋น ์๋ช ์ฃผ๊ธฐ - ์คํ๋ง ๋น์ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ 
- ๋น ์ค์ฝํ(1) - ์คํ๋ง์ ๋ค์ํ ๋น ์ค์ฝํ, ํ๋กํ ํ์ ์ค์ฝํ 
- ๋น ์ค์ฝํ(2) - ์คํ๋ง์ด ๋ค์ํ ๋น ์ค์ฝํ, ์น ์ค์ฝํ 
๊ณ ๊ธ
- ๋์์ฑ ๋ฌธ์  - ๋์์ฑ ๋ฌธ์ ์ ๋ํด 
- ์ฐ๋ ๋ ๋ก์ปฌ - ๋์์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ฐ๋ ๋ ๋ก์ปฌ์ ๋ํด 
- ํ ํ๋ฆฟ ๋ฉ์๋ ํจํด - ํ ํ๋ฆฟ ๋ฉ์๋ ํจํด์ ๋ํด 
- ์ ๋ต ํจํด - ์ ๋ต ํจํด์ ๋ํด 
- ํ๋ก์ ์ ์ฉ - ์ธํฐํ์ด์ค ๊ธฐ๋ฐ ํ๋ก์์ ๊ตฌ์ฒด ํด๋์ค ๊ธฐ๋ฐ ํ๋ก์ - ํ๋ก์ ํจํด - ํ๋ก์ ํจํด์ ๋ํด 
- ๋ฐ์ฝ๋ ์ดํฐ ํจํด - ๋ฐ์ฝ๋ ์ดํฐ ํจํด์ ๋ํด 
 
- JDK ๋์  ํ๋ก์ - JDK ๋์  ํ๋ก์์ ๋ํด 
- CGLIB - - CGLIB๊ณผ ํ๋ก์ ํฉํ ๋ฆฌ์ ๋ํด
- ํฌ์ธํธ์ปท, ์ด๋๋ฐ์ด์ค, ์ด๋๋ฐ์ด์  - ํฌ์ธํธ์ปท, ์ด๋๋ฐ์ด์ค, ์ด๋๋ฐ์ด์ ์ ๋ํด 
- ๋น ํ์ฒ๋ฆฌ๊ธฐ - ํ๋ก์ ํฉํ ๋ฆฌ๋ฅผ ์ ์ฉํ์ ๋ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๋ ๋น ํ์ฒ๋ฆฌ๊ธฐ์ ๋ํด - ์คํ๋ง์ด ์ ๊ณตํ๋ ๋น ํ์ฒ๋ฆฌ๊ธฐ - ์คํ๋ง AOP ๊ธฐ์ ์ ๋ชฉ 
 
- @Aspect AOP - - @Aspect์ ๋ํด
- ์คํ๋ง AOP - ๊ฐ๋  - ์คํ๋ง AOP์ ๋ํด ๊ฐ๋ ์ ์ผ๋ก ์ดํดํ๊ธฐ(์ ์ฉ ๋ฐฉ์, ์ฉ์ด ๋ฑ) 
- ํฌ์ธํธ์ปท - ์ฌ๋ฌ ํฌ์ธํธ์ปท ์ง์์์ ๋ํด - execution - - execution๋ฌธ๋ฒ
- within - - within๋ฌธ๋ฒ
- args - - args๋ฌธ๋ฒ
- @target, @within - - @target,- @within์ ๋ํด
- @annotation - - @annotation์ ๋ํด
- bean - - bean์ ๋ํด
- ๋งค๊ฐ๋ณ์ ์ ๋ฌ - ํฌ์ธํธ์ปท ํํ์์ ์ฌ์ฉํ์ฌ ์ด๋๋ฐ์ด์ค์ ๋งค๊ฐ๋ณ์ ์ ๋ฌ 
- this, target - - this์- target์ ๋ํด
 
- ์์  - ์คํ๋ง AOP๋ฅผ ํ์ฉํ์ฌ ๋ก๊ทธ ์ถ๋ ฅ๊ณผ ์ฌ์๋๋ฅผ ํ๋ AOP ๊ตฌํํด๋ณด๊ธฐ 
- ์ฃผ์์ฌํญ - ์คํ๋ง AOP ์ฃผ์์ฌํญ - ํ๋ก์ ๋ด๋ถ ํธ์ถ - ํ๋ก์ ๋ด๋ถ ํธ์ถ ๋ฌธ์ ์ ์ฌ๋ฌ๊ฐ์ง ๋์ 
- ํ๋ก์ ๊ธฐ์ ๊ณผ ํ๊ณ - ํ๋ก์ ๊ธฐ์ ์ ํ๊ณ(ํ์ ์บ์คํ , ์์กด๊ด๊ณ ์ฃผ์ , CGLIB)์ ์คํ๋ง์ ํด๊ฒฐ์ฑ 
 
 
์คํ๋ง MVC
1ํธ
- ์น ์ ํ๋ฆฌ์ผ์ด์  - ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์ ๋ฐ์ ์ธ ์ดํด 
- ์๋ธ๋ฆฟ - ์๋ธ๋ฆฟ ์ปจํ ์ด๋ ๋์ ๋ฐฉ์๊ณผ - HttpServletRequest,- HttpServletResponse์ ๋ํด
- JSP, MVC ํจํด - ์๋ธ๋ฆฟ๊ณผ JSP, MVC ํจํด์ ๋ํด 
- MVC ํ๋ ์์ํฌ ๋ง๋ค๊ธฐ - ํ๋ก ํธ ์ปจํธ๋กค๋ฌ ํจํด์ผ๋ก ์ง์  MVC ํ๋ ์์ํฌ๋ฅผ ๋ง๋ค์ด๋ณด๋ฉด์ ์ปจํธ๋กค๋ฌ์ ๋ํด ์ดํดํ๊ธฐ 
- ์คํ๋ง MVC ๊ตฌ์กฐ - MVC ํ๋ ์์ํฌ๋ฅผ ์ง์  ๋ง๋ค์ด ๋ณธ ๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก ์คํ๋ง MVC ๊ตฌ์กฐ ์ดํดํ๊ธฐ 
- ์คํ๋ง MVC ๊ธฐ๋ณธ ๊ธฐ๋ฅ - ์คํ๋ง MVC๊ฐ ์ง์ํ๋ ์์ฒญ๊ณผ ์๋ต์ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ 
2ํธ
- ํ์๋ฆฌํ ๊ธฐ๋ณธ ๊ธฐ๋ฅ - ํ์๋ฆฌํ์ ํ์๋ฆฌํ ๊ธฐ๋ณธ ๋ฌธ๋ฒ 
- ํ์๋ฆฌํ์ ์คํ๋ง - ํ์๋ฆฌํ์ ์คํ๋ง ํตํฉ 
- ๋ฉ์์ง, ๊ตญ์ ํ - ์ค์  ํ์ผ( - .properties)์ ํ์ฉํ ๋ฉ์์ง ๊ด๋ฆฌ์ ๊ตญ์ ํ ์๋น์ค
- ๊ฒ์ฆ Validation - ์์ฒญ์ ๋ํ ๊ฒ์ฆ์ ์์ ์ฝ๋๋ถํฐ ์ ๋ ธํ ์ด์  ์ ์ฉ๊น์ง ์ ์ง์ ์ผ๋ก ์์๋ณด๊ธฐ 
- ๋ก๊ทธ์ธ ์ฒ๋ฆฌ(1) - ์ฟ ํค์ ์ธ์ ์ผ๋ก ๋ก๊ทธ์ธ ์ฒ๋ฆฌ๋ฅผ ๊ตฌํํ๋ฉด์ ์ฟ ํค์ ์ธ์  ์์๋ณด๊ธฐ 
- ๋ก๊ทธ์ธ ์ฒ๋ฆฌ(2) - ์๋ธ๋ฆฟ ํํฐ์ ์คํ๋ง ์ธํฐ์ ํฐ๋ก ๊ณตํต ๊ด์ฌ์ฌ ํด๊ฒฐ 
- ์์ธ ์ฒ๋ฆฌ์ ์ค๋ฅ ํ์ด์ง - ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ธ๊ฐ ๋ฐ์ํ์ ๋ ๊ณผ์ ๊ณผ ์ค๋ฅ ํ์ด์ง ๊ด๋ฆฌ 
- API ์์ธ ์ฒ๋ฆฌ - API ์์ธ ์ฒ๋ฆฌ๋ฅผ ์์ ์ฝ๋๋ถํฐ ์ ๋ ธํ ์ด์  ์ ์ฉ๊น์ง ์ ์ง์ ์ผ๋ก ์์๋ณด๊ธฐ 
- ์คํ๋ง ํ์ ์ปจํฐ๋ฒ - ์ปจํฐ๋ฒ์ ํฌ๋งทํฐ์ ๋ํด 
- ํ์ผ ์ ๋ก๋ - ์๋ธ๋ฆฟ๊ณผ ์คํ๋ง์ผ๋ก ํ์ผ ์ ๋ก๋ ํด๋ณด๊ธฐ 
์คํ๋ง DB
1ํธ
- JDBC - JDBC์ ๋ํด 
- ์ปค๋ฅ์  ํ๊ณผ ๋ฐ์ดํฐ ์์ค - ์ปค๋ฅ์  ํ๊ณผ ๋ฐ์ดํฐ ์์ค( - DataSource)์ ๋ํด
- ํธ๋์ญ์  - ํธ๋์ญ์  ๊ฐ๋ ๊ณผ ํธ๋์ญ์  ์ ์ฉ ํด๋ณด๊ธฐ 
- ์คํ๋ง ํธ๋์ญ์  - ํธ๋์ญ์ ์ ์ ์ฉํ์ ๋ ๋ฌธ์ ์ ์ ์คํ๋ง์ผ๋ก ํด๊ฒฐํด๋ณด๊ธฐ 
- ์๋ฐ ์์ธ - ์๋ฐ์ ์์ธ์ ๋ํด(์ฒดํฌ, ์ธ์ฒดํฌ ์์ธ) 
- ์คํ๋ง ์์ธ ์ฒ๋ฆฌ - ์คํ๋ง์์ ์์ธ ์ถ์ํ๋ฅผ ํ๋ ๋ฐฉ๋ฒ 
2ํธ
- JdbcTemplate - - JdbcTemplate๊ตฌํํ๋ฉด์ ์์๋ณด๊ธฐ
- MyBatis - - MyBatis๊ตฌํํ๋ฉด์ ์์๋ณด๊ธฐ
- JPA - - JPA๊ตฌํํ๋ฉด์ ์์๋ณด๊ธฐ
- ์คํ๋ง ๋ฐ์ดํฐ JPA - - ์คํ๋ง ๋ฐ์ดํฐ JPA๊ตฌํํ๋ฉด์ ์์๋ณด๊ธฐ
- Querydsl - - Querydsl๊ตฌํํ๋ฉด์ ์์๋ณด๊ธฐ
- ํ ์คํธ - ํ ์คํธ ์ฝ๋์์ DB ์ ๊ทผ์ ๋ํด 
- ํ์ฉ ๋ฐฉ์ - - ์คํ๋ง ๋ฐ์ดํฐ JPA์- Querydsl์ ๊ฐ์ด ์ฌ์ฉํ ๋ ํธ๋ ์ด๋ ์คํ
- ์คํ๋ง ํธ๋์ญ์  - ์คํ๋ง์ ํธ๋์ญ์ ์ ๋ํด ๋ ์์๋ณด๊ธฐ 
- ํธ๋์ญ์  ์ ํ(1) - ํธ๋์ญ์  ์ ํ์ ๋ํด 
- ํธ๋์ญ์  ์ ํ(2) - ํธ๋์ญ์  ์ ํ ํ์ฉ 
์คํ๋ง ๋ถํธ
- ์น ์๋ฒ์ ์๋ธ๋ฆฟ ์ปจํ ์ด๋ - ์คํ๋ง ๋ถํธ๊ฐ ์๋ ๊ณผ๊ฑฐ ๋ฒ์ ์ผ๋ก ๊ฐ๋ฐํด๋ณด๊ธฐ 
- ๋ด์ฅ ํฐ์บฃ - ๋ด์ฅ ํฐ์บฃ์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ฌธ์ ์ ๋ค์ ํด๊ฒฐํ๊ณ ์คํ๋ง ๋ถํธ ์ ๋ชฉํด๋ณด๊ธฐ 
- ์คํ๋ง ๋ถํธ ์คํํฐ - ์คํ๋ง ๋ถํธ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์  ๊ด๋ฆฌ๋ฅผ ํ๋ ๋ฐฉ๋ฒ 
- ์คํ๋ง ๋ถํธ์ ์๋ ๊ตฌ์ฑ - ์คํ๋ง ๋ถํธ์ ์๋ ๊ตฌ์ฑ์ ๋ํด - ์๋ ๊ตฌ์ฑ(1) - ์๋ ๊ตฌ์ฑ์ ์ง์  ๋ง๋ค์ด๋ณด๊ณ ์๋ ๊ตฌ์ฑ ์ดํดํ๊ธฐ 
- ์๋ ๊ตฌ์ฑ(2) - ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง์  ๋ง๋ค์ด๋ณด๊ณ ์๋ ๊ตฌ์ฑ ์ดํดํ๊ธฐ 
 
- ์ธ๋ถ ์ค์ ๊ณผ ํ๋กํ - ์ธ๋ถ ์ค์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ - OS ํ๊ฒฝ ๋ณ์ - OS ํ๊ฒฝ ๋ณ์ ์ฌ์ฉ๋ฒ 
- ์๋ฐ ์์คํ  ์์ฑ - ์๋ฐ ์์คํ  ์์ฑ ์ฌ์ฉ๋ฒ 
- ์ปค๋งจ๋ ๋ผ์ธ ์ธ์ - ์ปค๋งจ๋ ๋ผ์ธ ์ธ์ ์ฌ์ฉ๋ฒ 
- ์คํ๋ง ํตํฉ - ์ฌ๋ฌ ์ธ๋ถ ์ค์  ๊ฐ์ ๋ฐ๋ผ์ ์คํ๋ง์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋ฐฉ๋ฒ 
- ์ค์  ๋ฐ์ดํฐ - ์ค์  ๋ฐ์ดํฐ( - .properties) ์ธ๋ถ ํ์ผ๊ณผ ๋ด๋ถ ํ์ผ, ์ฐ์ ์์์ ๋ํด
- ์ธ๋ถ ์ค์  ์ฌ์ฉ - - @Value์- @ConfigurationProperties์ ๋ํด
- YAML - - .yml์ ๋ํด
- @Profile - - @Profile์ ๋ํด
 
- ์ก์ธ์์ดํฐ - ์คํ๋ง ๋ถํธ ์ก์ธ์์ดํฐ์ ๋ํด - ์์ - ์ก์ธ์์ดํฐ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ๊ณผ ์๋ํฌ์ธํธ 
- ํฌ์ค ์ ๋ณด - ์ก์ธ์์ดํฐ ํฌ์ค ์ ๋ณด์ ๋ํด 
- ์ ํ๋ฆฌ์ผ์ด์  ์ ๋ณด - ์ก์ธ์์ดํฐ ์ ํ๋ฆฌ์ผ์ด์  ์ ๋ณด์ ๋ํด 
- ๋ก๊ฑฐ - ์ก์ธ์์ด์  ๋ก๊ฑฐ ์ ๋ณด์ ๋ํด 
- HTTP ์์ฒญ ์๋ต ๊ธฐ๋ก - ์ก์ธ์์ดํฐ HTTP ์์ฒญ ์๋ต ๊ธฐ๋ก์ ๋ํด 
- ๋ณด์ - ์ก์ธ์์ดํฐ ๋ณด์ ์ ์์  
 
- ๋ง์ดํฌ๋ก๋ฏธํฐ - ๋ง์ดํฌ๋ก๋ฏธํฐ์ ๋ฉํธ๋ฆญ์ ๋ํด - ํ๋ก๋ฉํ ์ฐ์ค - ํ๋ก๋ฉํ ์ฐ์ค ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ๊ณผ ๊ธฐ๋ณธ ๊ธฐ๋ฅ 
- ๊ทธ๋ผํ๋ - ๊ทธ๋ผํ๋ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ 
 
- ๋ชจ๋ํฐ๋ง ๋ฉํธ๋ฆญ ํ์ฉ - ๋น์ฆ๋์ค ๋ฉํธ๋ฆญ ๋ฑ๋กํด๋ณด๊ธฐ, ์ค๋ฌด ๋ชจ๋ํฐ๋ง ํ 
JPA
๊ธฐ๋ณธ
- ์์์ฑ ์ปจํ ์คํธ - ์์์ฑ ์ปจํ ์คํธ์ ๋ํ ์ฉ์ด ์ดํด 
- ์ํฐํฐ ๋งคํ - ์ํฐํฐ์ ํ ์ด๋ธ ๋งคํ ๊ธฐ๋ณธ 
- ์ฐ๊ด ๊ด๊ณ ๋งคํ - ๋จ๋ฐฉํฅ, ์๋ฐฉํฅ, ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ์ ๋ํด 
- ๋ค์ํ ์ฐ๊ด ๊ด๊ณ ๋งคํ - ์ผ๋์ผ, ๋ค๋์ผ ๋ฑ์ ์ฐ๊ด๊ด๊ณ์ ๋ํด 
- ๊ณ ๊ธ ๋งคํ - ํ ์ด๋ธ ์์ ๊ตฌํํ๊ธฐ 
- ํ๋ก์ - JPA์ ํ๋ก์ ๊ธฐ์ , ์ฆ์ ๋ก๋ฉ๊ณผ ์ง์ฐ ๋ก๋ฉ, ์์์ฑ ์ ์ด์ ๋ํด 
- ๊ฐ ํ์ - ์๋ฒ ๋๋ ํ์ ๊ณผ ๋ถ๋ณ ๊ฐ์ฒด, ๊ฐ ํ์ ์ปฌ๋ ์ ์ ๋ํด 
- JPQL(1) - - JPQL๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
- JPQL(2) - - JPQL์ฌํ ์ฌ์ฉ๋ฒ
JPA๋ฅผ ํ์ฉํ ์น ์ ํ๋ฆฌ์ผ์ด์  ๊ฐ๋ฐ - 1
- ์ํฐํฐ ๊ฐ๋ฐ - ์ํฐํฐ ํด๋์ค ๊ฐ๋ฐ ๋ฐ ์ํฐํฐ ์ค๊ณ ์ ์ฃผ์ํ ์  
- ๋๋ฉ์ธ ๊ฐ๋ฐ - ๋ ํฌ์งํ ๋ฆฌ ๋ฐ ์๋น์ค ๊ณ์ธต ๊ฐ๋ฐ 
- ์น ๊ณ์ธต ๊ฐ๋ฐ - ์น ๊ณ์ธต ๊ฐ๋ฐ ๋ฐ ๋ณ๊ฒฝ ๊ฐ์ง์ ๋ณํฉ์ ๋ํด 
JPA๋ฅผ ํ์ฉํ ์น ์ ํ๋ฆฌ์ผ์ด์  ๊ฐ๋ฐ - 2
- API ์กฐํ ๊ธฐ๋ณธ - ๊ธฐ๋ณธ์ ์ธ ๋ฑ๋ก, ์์ , ์กฐํ API 
- ์ปฌ๋ ์  ์กฐํ ์ฑ๋ฅ ์ต์ ํ - - XToMany์ฐ๊ด๊ด๊ณ ์กฐํ ์ฑ๋ฅ ์ต์ ํ- V1 - ์ํฐํฐ ์ง์  ๋ ธ์ถ 
- V2 - ์ํฐํฐ DTO ๋ณํ 
- V3 - DTO๋ก ๋ณํ ํ ํ์น ์กฐ์ธ ์ ์ฉ(ํ์ด์ง ๋ถ๊ฐ๋ฅ) 
- V3.1 - - V3ํ์ด์ง ๋ถ๊ฐ๋ฅ ๋ฌธ์  ํด๊ฒฐ
- V4 - DTO๋ก ๋ฐ๋ก ์กฐํ( - N + 1๋ฌธ์  ๋ฐ์)
- V5 - DTO๋ก ๋ฐ๋ก ์กฐํ, ์ปฌ๋ ์  ์กฐํ ์ต์ ํ 
- V6 - DTO๋ก ๋ฐ๋ก ์กฐํ, ํ๋ซ ๋ฐ์ดํฐ ์ต์ ํ 
 
- OSIV - - OSIV์ ๋ํด
์คํ๋ง ๋ฐ์ดํฐ JPA
- ๊ณตํต ์ธํฐํ์ด์ค - ์คํ๋ง ๋ฐ์ดํฐ JPA์ ๊ตฌ์กฐ 
- ์ฟผ๋ฆฌ ๋ฉ์๋ ๊ธฐ๋ฅ(1) - ๋ฉ์๋ ์ด๋ฆ์ผ๋ก ์ฟผ๋ฆฌ ์์ฑ, - @Query๋ฑ์ ๋ํด
- ์ฟผ๋ฆฌ ๋ฉ์๋ ๊ธฐ๋ฅ(2) - ํ์ด์ง, - @EntityGraph๋ฑ์ ๋ํด
- ํ์ฅ ๊ธฐ๋ฅ - ์คํ๋ง ๋ฐ์ดํฐ JPA๋ฅผ ํ์ฅํ์ฌ ์ฌ์ฉํ ์ ์๋ ๊ธฐ์ ๋ค( - Auditing,- Webํ์ฅ ๋ฑ)
- ๋ถ์ - ์คํ๋ง ๋ฐ์ดํฐ JPA๊ฐ ์ฌ์ฉํ๋ ๊ตฌํ์ฒด์ ์๋ก์ด ์ํฐํฐ๋ฅผ ๊ตฌ๋ณํ๋ ๋ฐฉ๋ฒ์ ๋ํด 
- ๊ทธ ์ธ ๊ธฐ๋ฅ๋ค - ํ๋ก์ ์ ๊ณผ Native Query 
Querydsl
- ๊ธฐ๋ณธ ๋ฌธ๋ฒ(1) - ๊ฒ์, ๊ฒฐ๊ณผ ์กฐํ, ์ ๋ ฌ, ํ์ด์ง 
- ๊ธฐ๋ณธ ๋ฌธ๋ฒ(2) - ์งํฉ ํจ์, ์กฐ์ธ, ํ์น ์กฐ์ธ 
- ๊ธฐ๋ณธ ๋ฌธ๋ฒ(3) - ์๋ธ ์ฟผ๋ฆฌ, - Case๋ฌธ
- ์ค๊ธ ๋ฌธ๋ฒ(1) - ํ๋ก์ ์  ๊ฒฐ๊ณผ ๋ฐํ์ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ 
- ์ค๊ธ ๋ฌธ๋ฒ(2) - ๋์  ์ฟผ๋ฆฌ, ๋ฒํฌ ์ฐ์ฐ 
CS ๐ป
HTTP
- ์ธํฐ๋ท ๋คํธ์ํฌ - - IP,- TCP์ UDP,- PORT,- DNS์ ๋ํด
- URI - - URI์ ์น ๋ธ๋ผ์ฐ์  ์์ฒญ์ ํ๋ฆ
- Http - - Httpํน์ง์ ๋ํด
- Http ๋ฉ์๋ - - Http๋ฉ์๋์ API ์ค๊ณ ์์
- Http ์ํ์ฝ๋ - ์ฌ๋ฌ๊ฐ์ง - Http์ํ์ฝ๋์ ๋ํด
- Http ์ผ๋ฐํค๋ - - Httpํค๋์ ํํ, ํ์, ์ ์ก ๋ฐฉ์, ์ ๋ณด, ์ธ์ฆ, ์ฟ ํค์ ๋ํด
- Http ํค๋(Cache) - - Httpํค๋์ ์บ์(- Cache)์ ๋ํด
OS
- PCB - - PCB์- ์ปจํ ์คํธ ์ค์์นญ์ ๋ํด
- CPU Scheduling - - CPU ์ค์ผ์ค๋ง์ ๋ํด(- FCFS,- SJF๋ฑ)
- Memory - - Memory์์ญ์ ๋ํด
- OS - ์ด์์ฒด์ ( - OS)์ ๋ํด
- Process - - Process,- Thread,- ๋ฉํฐ ํ์คํน์ ๋ํด
์๋ฃ๊ตฌ์กฐ ๐
์ ํ ์๋ฃ๊ตฌ์กฐ
- ๋ฐฐ์ด - - Array์- ArrayList์ ๋ํด
- ํ - - Queue์ ๋ํด
- ํด์ ํ ์ด๋ธ - - Hash์ ๋ํด
๋น์ ํ ์๋ฃ๊ตฌ์กฐ
- ๊ทธ๋ํ - - Graph์- ํธ๋ฆฌ์ ๋ํด
- ์ด์ง ํ์ ํธ๋ฆฌ - ๊ฐ๋  ๋ฐ ๊ตฌํ 
- AVL ํธ๋ฆฌ - ๊ฐ๋  ๋ฐ ๊ตฌํ 
- Red-Black ํธ๋ฆฌ - ๊ฐ๋  ๋ฐ ๊ตฌํ 
- B-ํธ๋ฆฌ - ๊ฐ๋  ๋ฐ ๊ตฌํ 
GIT
๊ธฐ๋ณธ
- ์ด๋ฐ ์ค์  - - Git์ ์ฌ์ฉํ ๋ ์ต์ด๋ก ํ๋ ์ค์ (- config์- .gitignore)
- ๋ณ๊ฒฝ์ฌํญ ์ ์ฅ - ๋ณ๊ฒฝ์ฌํญ์ ์ปค๋ฐํ๊ธฐ 
Branch
- ๊ธฐ๋ณธ์ ์ธ ๋ธ๋์น ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ - ์์ฑ, ํ์ธ, ์ด๋, ์ญ์  ๋ฑ 
- ๋ธ๋์น ํฉ์น๊ธฐ - - merge์- rebase
- Git์ merge ์ ๋ต - - fast-forward,- 3-way merge, ๋ค์ํ- merge์ต์ ๋ค์ ๋ํด
- ๋ค๋ฅธ ๋ธ๋์น - ๋ค๋ฅธ ๋ธ๋์น์์ ์ํ๋ ์ปค๋ฐ ๊ฐ์ ธ์ค๊ธฐ( - cherry-pick), ํ์๋ ๋ธ๋์น ์ฎ๊ฒจ๋ถ์ด๊ธฐ(- rebase --onto), ์ปค๋ฐ๋ค ํ๋๋ก ๋ฌถ์ด ๊ฐ์ ธ์ค๊ธฐ(- --squash)
- Gitflow - ํ์ ์ ์ํ ๋ธ๋์นญ ์ ๋ต 
๋๋๋ฆฌ๊ธฐ
- ๊ณผ๊ฑฐ๋ก ๊ฐ๊ธฐ - - reset๊ณผ- revert
- ์ทจ์์ ๋๋๋ฆฌ๊ธฐ - - Git์์ ๊ด๋ฆฌ๋์ง ์๋ ํ์ผ๋ค ์ญ์ , ์ปค๋ฐํ์ง ์์ ๋ณ๊ฒฝ์ฌํญ ๋๋๋ฆฌ๊ธฐ,- reset๋ณต๊ตฌํ๊ธฐ
Git ๋ ์์๋ณด๊ธฐ
- Git์ 3๊ฐ์ง ๊ณต๊ฐ - - Git์ด ํ์ผ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด(+- reset์ 3๊ฐ์ง ์ต์ )
- HEAD - - HEAD๋ผ๋ ๊ฐ๋ ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ
- fetch vs pull - - fetch์- pull์ ์ฐจ์ด์ 
- Help - - Git help์ ๋ํด
- Config - ์ค์ ๊ฐ ๋ณด๊ธฐ, ๋จ์ถํค ์ค์  ๋ฑ - Git config๊ด๋ จ ๋ช ๋ น์ด
์๊ฒฉ ์ ์ฅ์
- ์๊ฒฉ ์ ์ฅ์ - - GitHub์ ๋ํด- ๋ก์ปฌ๊ณผ ์๊ฒฉ ์ฐ๊ฒฐ 
- ์๊ฒฉ ์ ์ฅ์์์ ํ๋ก์ ํธ ๊ฐ์ ธ์ค๊ธฐ 
- pull์ ํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ
 
์ปค๋ฐ ๊ด๋ฆฌ
- ์ปค๋ฐ ๊ถ์ฅ์ฌํญ - ์ปค๋ฐ ๊ถ์ฅ์ฌํญ ๋ฐ ์ปจ๋ฒค์  
- ์ธ์ฌํ๊ฒ ์ปค๋ฐ - - hunk๋ณ ์คํ ์ด์ง ์งํ
- ์ปค๋ฐ ์น์๋๊ธฐ - - stash์ ๋ํด
- ์ปค๋ฐ ์์ ํ๊ธฐ - ๊ณผ๊ฑฐ ์ปค๋ฐ ๋ด์ญ์ ์์ ํ๋ ๋ฐฉ๋ฒ 
- ํ๊ทธ - - Git์- Tag์ ๋ํด
๋ถ์๊ณผ ๋๋ฒ๊น
- log - - git log์ ๋ค์ํ ์ต์ ๋ค
- ์ฐจ์ด ์ดํด๋ณด๊ธฐ - ํ์ผ, ์ปค๋ฐ, ๋ธ๋์น์ ์ฐจ์ด๋ฅผ CLI๋ก ์์๋ณด๋ ๋ฐฉ๋ฒ 
- ์ค๋ฅ ๋ฐ์์ง์  ์ฐพ๊ธฐ - - git์ผ๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ปค๋ฐ ์ง์ ์ ์ฐพ๋ ๋ฐฉ๋ฒ
Algorithm ๐ง 
- ์๊ฐ ๋ณต์ก๋ - ์๊ฐ ๋ณต์ก๋ ํ๊ธฐ๋ฒ๊ณผ ํ์ฉ์ ๋ํด 
์๋ฃ๊ตฌ์กฐ
- ๋ฐฐ์ด๊ณผ ๋ฆฌ์คํธ - ๋ฐฐ์ด๊ณผ ๋ฆฌ์คํธ ์๋ฃ๊ตฌ์กฐ 
- ๊ตฌ๊ฐ ํฉ - ํฉ ๋ฐฐ์ด์ ์ด์ฉํ ๊ตฌ๊ฐ ํฉ 
- ํฌ ํฌ์ธํฐ - ๋ ๊ฐ์ ํฌ์ธํฐ๋ก ์๊ฐ ๋ณต์ก๋ ์ต์ ํ 
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ - ํฌ ํฌ์ธํฐ ํ์ฅ ๊ฐ๋  
- ์คํ - ์คํ ์๋ฃ๊ตฌ์กฐ 
- ํ - ํ ์๋ฃ๊ตฌ์กฐ 
์ ๋ ฌ
- ๋ฒ๋ธ ์ ๋ ฌ - - swap,- O(n^2)
- ์ ํ ์ ๋ ฌ - - O(n^2)
- ์ฝ์ ์ ๋ ฌ - - O(N^2)
- ํต ์ ๋ ฌ - - pivot, ํ๊ท :- O(nlogn), ์ต์ :- O(n^2)
- ๋ณํฉ ์ ๋ ฌ - ๋ถํ ์ ๋ณต, - O(nlogn)
- ๊ธฐ์ ์ ๋ ฌ - ๊ณ์ ์ ๋ ฌ( - counting sort),- O(kn)
ํ์
- ๊น์ด ์ฐ์ ํ์ - - O(V+E), ์ฌ๊ท ํจ์
- ๋๋น ์ฐ์ ํ์ - - O(V+E), ํ, ์ต๋จ ๊ฒฝ๋ก ๋ณด์ฅ
- ์ด์ง ํ์ - ์ค์๊ฐ ๋น๊ต, - O(logN)
์ ์๋ก
- ์์ ๊ตฌํ๊ธฐ - ์๋ผํ ์คํ ๋ค์ค์ ์ฒด ์๋ฆฌ๋ก ์์ ๊ตฌํ๊ธฐ 
- ์ค์ผ๋ฌ ํผ ํจ์ - - N์ ์๋ก์ ๊ตฌํ๊ธฐ(1 ์ด์ธ์ ๊ณต์ฝ์๊ฐ ์์)
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ - ๋ ์์ ์ต๋๊ณต์ฝ์ ๊ตฌํ๊ธฐ 
- ํ์ฅ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ - ๋ฐฉ์ ์์ ํด ๊ตฌํ๊ธฐ 
๊ทธ๋ํ
- ๊ทธ๋ํ์ ํํ - ์์ง ๋ฆฌ์คํธ, ์ธ์  ํ๋ ฌ, ์ธ์  ๋ฆฌ์คํธ 
- ์ ๋์จ ํ์ธ๋ - ๊ทธ๋ํ ํ์์ ํจ์จ์ ์ผ๋ก ํ๊ธฐ ์ํ - union๊ณผ- find์ฐ์ฐ
- ์์ ์ ๋ ฌ - ๋ ธ๋ ์์๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ, - O(V+E)
- ๋ค์ต์คํธ๋ผ - ๊ทธ๋ํ์์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ, - O(ElogV)
- ๋ฒจ๋ง-ํฌ๋ - ๊ทธ๋ํ์์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ(์์ ์ฌ์ดํด ์กด์ฌ ์ฌ๋ถ ํ๋จ), - O(VE)
- ํ๋ก์ด๋-์์  - 3์ค for ๋ฌธ์ผ๋ก ๊ทธ๋ํ์์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ, - O(V^3)
- ์ต์ ์ ์ฅ ํธ๋ฆฌ - ๊ทธ๋ํ์์ ์ฌ์ฉ๋ ์์ง๋ค์ ๊ฐ์ค์น์ ํฉ ์ต์๋ก ํ๋ ํธ๋ฆฌ(with ์ ๋์จ ํ์ธ๋) 
ํธ๋ฆฌ
- ํธ๋ฆฌ - ํธ๋ฆฌ์ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋  
- ํธ๋ผ์ด - ๋ฌธ์์ด ๊ฒ์ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ 
- ์ด์ง ํธ๋ฆฌ - ์ด์ง ํธ๋ฆฌ์ ํน์ง์ ํ์ฉํ ์ธ๋ฑ์ค ์ฐ์ฐ ๋ฐฉ์ ๊ธฐ์ด 
- ์ธ๊ทธ๋จผํธ ํธ๋ฆฌ - ์ด์ง ํธ๋ฆฌ์ ํน์ง์ ํ์ฉํ ๊ตฌ๊ฐ ํฉ, ์ต๋๊ฐ ๋๋ ์ต์๊ฐ ๊ตฌํ๊ธฐ์ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ๋ฅผ ๋น ๋ฅด๊ฒ ํ๊ธฐ 
- ์ต์ ๊ณตํต ์กฐ์ - ํธ๋ฆฌ ๊ทธ๋ํ์์ ์ต์ ๊ณตํต ์กฐ์ ์ฐพ๊ธฐ(์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ๊ณผ ๋น ๋ฅด๊ฒ ์ฐพ๋ ๋ฐฉ๋ฒ) 
์กฐํฉ
- ์กฐํฉ - ๋์  ๊ณํ๋ฒ์ ๊ธฐ๋ณธ์ด ๋๋ ์กฐํฉ์ ๋ํด 
Last updated