TIL ๐
๊ฐ์, ์ฑ ๋ฑ์ ํตํด ๋ฐฐ์ด ์ด๋ก ๋ค์ ์ ๋ฆฌํ ๊ณต๊ฐ์ ๋๋ค. ๋ชฉ๋ก์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Java
๊ธฐ๋ณธ ๋ฐ ๊ธฐํ
๋คํ์ฑ
๋คํ์ฑ - 1 - ๋คํ์ฑ์ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ๊ณผ ์บ์คํ
๋คํ์ฑ - 2 - ๋คํ์ฑ์ ํ์ฉํ ์ฝ๋ ๋ฆฌํฉํ ๋ง(with ์ธํฐํ์ด์ค)
Interview โจ
์ด์์ฒด์
์ด์ ์ฒด์ ์ ์ฃผ์ ๋ชฉ์
์ด์ ์ฒด์ ์ ๊ธฐ๋ฅ
์ฐ๋ ๋์ ํ๋ก์ธ์ค ์ฐจ์ด
Threading,ProcessingThrashing
๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ๊ธฐ ์ํ ์กฐ๊ฑด
๊ต์ฐฝ์ํ ํด๊ฒฐ๋ฒ
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
MyBatisvsJPA
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์rebaseGit์ 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