Spring Framework/Spring & Spring Boot
Spring Security๋ฅผ ๊ตฌํํ๋ค๋ณด๋ฉด filter์ interceptor๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ํํฐ์ ์ธํฐ์
ํฐ์ ๋ํ ๊ฐ๋
์ ์ดํดํ๋ฉด Spring Security ๊ณผ์ ์ ํ์
ํ๊ธฐ ์ฌ์ธ ๊ฒ์ด๊ธฐ์ ๊ธฐ๋กํ๋ค! โจ ์ฉ๋ - ๊ณตํต๊ด์ฌ์ฌํญ (Cross-cutting concern) ๐ ์น ์๋น์ค์์ ๋ก๊ทธ์ธ์ ํด์ผ ๋ค์ํ ๊ธฐ๋ฅ์ ์ด์ฉํ ์ ์์ผ๋ฉฐ ๋ก๊ทธ์ธ ์ฌ๋ถ์ ๋ฐ๋ผ ์ ๊ทผํ ์ ์๋ ํ์ด์ง๊ฐ ๋ค๋ฅด๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ก๊ทธ์ธ์ด ํ์ํ ๋ชจ๋ ์ปจํธ๋กค๋ฌ ๋ก์ง์ ๋ก๊ทธ์ธ๊ณผ ๊ด๋ จ๋ ์ฝ๋๋ฅผ ์์ฑํด์ผํ ํ
๋ฐ... ์ด๋ ๊ฒ ๋๋ค๋ฉด ์ฝ๋๊ฐ ์ค๋ณต๋ ๊ฒ์ด๊ณ ๋ณต์กํด์ง ๊ฒ์ด๋ค. ๋ง์ ๋ก์ง์์ ๊ณตํต์ผ๋ก ๊ด์ฌ ์๋ ๋ถ๋ถ์ ๊ณตํต ๊ด์ฌ ์ฌํญ์ด๋ผ๊ณ ํ๋ฉฐ ์ด๋ฅผ ์คํ๋ง์ AOP๋ก๋ ํด๊ฒฐํ ์ ์์ง๋ง ์น์์๋ ์๋ธ๋ฆฟ ํํฐ์ ์คํ๋ง ์ธํฐ์
ํฐ๋ก ์ฒ๋ฆฌํ ์ ์..
Spring Framework/JPA
JPA ์ํฐํฐ์์ ์์ฑ์๋ฅผ ์ฌ๋ฌ ๊ฐ ๋ง๋ค์ด ๋์ผ๋ฉด ๊ธฐ๋ณธ์์ฑ์(@NoArgsConstructor๋ฅผ ์ ์ํด์ผํ๋ค๋ ์ปดํ์ผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. + public, protected๋ก ์ ์ธํด์ผํจ ! ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ์ ์ํด์ผํ๋ ์ด์ ๋ฅผ ์ ํํ๊ฒ ์ค๋ช
ํ ์ ์์ด์ ์ ๋ฆฌํ๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด๊ฒ ๋ค. ๐ ๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด Java Reflection API์์ ๊ธฐ๋ณธ์์ฑ์๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ด๋ค. JPA๋ DB ๊ฐ์ ๊ฐ์ฒด ํ๋์ ์ฃผ์
ํ ๋, ๋์ ์ผ๋ก ์ํฐํฐ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ๊ธฐ๋ณธ์์ฑ์๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ Reflection์ ์ฌ์ฉํ๋ค๊ณ ํ๋ค. ์๋ฐ์์๋ Reflection์ด๋ผ๋ API๋ฅผ ์ ๊ณตํ๋๋ฐ, ๊ทธ๋ผ Reflection์ ๋ญ๊น.... Java Reflection ์๋ฐ์์๋ Reflection์ด๋ผ๋ API๋ฅผ ์ ๊ณตํ๋ค. R..
์๊ณ ๋ฆฌ์ฆ/BOJ
โจ DP https://www.acmicpc.net/problem/17485 17485๋ฒ: ์ง์ฐ์ ๋ฌ ์ฌํ (Large) ์ฒซ์ค์ ์ง๊ตฌ์ ๋ฌ ์ฌ์ด ๊ณต๊ฐ์ ๋ํ๋ด๋ ํ๋ ฌ์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ N, M (2 ≤ N, M ≤ 1000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N์ค ๋์ ๊ฐ ํ๋ ฌ์ ์์ ๊ฐ์ด ์ฃผ์ด์ง๋ค. ๊ฐ ํ๋ ฌ์ ์์๊ฐ์ 100 ์ดํ์ ์์ฐ์์ด๋ค. www.acmicpc.net ๐ ๊ณ ๋ คํด์ผํ ์ ์ผ์ชฝ ๋๊ฐ์ , ์๋, ์ค๋ฅธ์ชฝ ๋๊ฐ์ 3๊ฐ์ง ๋ฐฉํฅ์ผ๋ก ์ด๋ํ๋ค. โจโจ ๊ฐ์ ๋ฐฉํฅ์ผ๋ก ๋ ๋ฒ ์ฐ์์ผ๋ก ์์ง์ผ ์ ์๋ค. โจโจ ๐น๏ธ ๋ฌธ์ ํ์ด ํ์ฌ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ทธ ์ ๋จ๊ณ์ ์ฌ์ฉํ๋ ์ฐ๋ฃ์ ์์ ๊ณ์ ์๊ณ ์์ด์ผ ํ๋ค. ๊ทธ ์ ๋จ๊ณ์ ์ฌ์ฉํ๋ ์ฐ๋ฃ์ ์๊ณผ ํ์ฌ ์์น์ ์๋ ์ฐ๋ฃ์ ์์ ํฉ์ ๊ตฌํด์ ์ต์์ ์ฐ๋ฃ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ..
์๊ณ ๋ฆฌ์ฆ/๐๏ธ ์ ๋ฆฌ
์ฝํ
๋ณด๋ค๊ฐ ๋์จ ๊ฒ์ด๊ธฐ์ ์ ๋ฆฌํ๋ค... LCS (Longest Common Subsequence)๋ ์ฃผ์ด์ง ์ฌ๋ฌ ๊ฐ์ ์์ด ์ค์์ ๋ชจ๋์ ๋ถ๋ถ์์ด์ด ๋๋ ์์ด๋ค ์ค ๊ฐ์ฅ ๊ธด ๊ฒ์ ์ฐพ๋ ๊ฒ์ด๋ค. ์์๋ฅผ ๋ณด์๋ฉด, ACAYKP์ ๋ถ๋ถ์์ด์ {A}, {C}, {A}, {Y}, {K}, {P}, {A, C}, {A, A}, {A, Y}, ... {A, C, A, Y, K, P} ์ด๊ณ , CAPCAK์ ๋ถ๋ถ์์ด์ {C}, {A}, {P}, {C}, {A}, {K}, {C, A}, {C, P}, {C, C}, ... {C, A, P, C, A, K}์ด ์๋๋ฐ ๊ฐ๊ฐ์ ๋ถ๋ถ์์ด ์ค์์ ์๋ก ๊ฐ์ ๋ถ๋ถ์์ด์ด ์์ ๊ฒ์ด๋ค. ๊ทธ์ค ๊ฐ์ฅ ๊ธด ๊ฒ์ ์ฐพ์ผ๋ฉด ๋๋๋ฐ ์์ ์์์ ๋ต์ ๊ธธ์ด๊ฐ 4์ธ {A, C, A, K} ์ด๋ค. ๋ํ์ ..
CS/โ๏ธ ์ด์์ฒด์
์ปค๋์ ์ง์ ํ์ โจ IPC์ ๋ชฉ์ = ํ๋ก์ธ์ค ๋๊ธฐํ data transfer sharing data event notification resource sharing and synchronization process control Message Passing ์ปค๋์ ํตํด ์ฃผ๊ณ ๋ฐ์ user ๊ณ์ธต์ ์๋ ํ๋ก์ธ์ค๋ค๋ผ๋ฆฌ ์ง์ ํต์ X ๐ OS์์ ์ ๊ณตํ๋ message passing์ ๊ดํ system call์ ์ด์ฉํด ์ปค๋์ ๊ฑฐ์ณ๊ฐ Messsage queue Pipes Mailboxes Sockets communication link๋ฅผ ๋ง๋ค์ด์ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๐น Direct Communication ํ๋ก์ธ์ค๋ฅผ ์ง์ ์ง๋ช
send(P, message) receive(Q, message) ์๋๋ฐฉ์ I..
CS/โ๏ธ ์ด์์ฒด์
ํ๋ก์ธ์ค ๋๊ธฐํ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ์์์ ์ ๊ทผํ๋ค๋ฉด race condition(๊ฒฝํฉ์กฐ๊ฑด)์ด ๋ฐ์ํ๋ค. ์ด๋ฌํ ์ํฉ์ ๋ง๊ธฐ ์ํด์ ํ์ํ mechanism์ด ์๋ค. ๐น Locking Mechanism ์ด๋ค ์์
์ด ์ํ๋๋ ๊ฒ์ ๋ง๋๋ค ๐ before entering critical section ๐ before accessing shared data critical section(์๊ณ์์ญ)์ ์ต๋ํ ์งง๊ฒ ์ค์ ํด์ผํ๋ค multi-processors์์ interrupt-based locks์ ๊ตฌํํ๊ธฐ ์ด๋ ค์ ๐ read-write instructions ์ผ๋ก ํด๊ฒฐ ๐น Semaphore Synchronization tool Counting semaphore Binary semaphore โ 0 ๋๋ 1 ๊ฐ๋ง..
์๊ณ ๋ฆฌ์ฆ/ํ๋ก๊ทธ๋๋จธ์ค
โจ BFS/DFS https://school.programmers.co.kr/learn/courses/30/lessons/43163# ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๐ ๊ณ ๋ คํด์ผํ ์ ํ ๋ฒ์ ํ ๊ฐ์ ์ํ๋ฒณ๋ง ๋ณ๊ฒฝ ๊ฐ๋ฅ begin์์ target์ผ๋ก ๋ณํํ๋ ๊ฐ์ฅ ์งง์ ๋ณํ ๊ณผ์ ์ฐพ๊ธฐ ๊ตณ์ด ๋ฐฐ์ด์ ์์๋๋ก ์ฐพ์ ํ์ ์์ ๐น๏ธ ํ์ด๊ณผ์ ๐ ์ด ๋ฌธ์ ๊ฐ์ ๊ฒฝ์ฐ DFS์ BFS ๋ชจ๋ ํ์ด ๊ฐ๋ฅํ๋ค. ํ์ง๋ง DFS๋ก ๊ตฌํํ ์์๋ ์๊ฐ๋ณต์ก๋๊ฐ ํฌ๋ค. ๐น DFS words ๋ฐฐ์ด์์ ํ์ฌ ๋จ์ด์ ํ ๊ธ์๋ง ๋ค๋ฅธ ๋จ์ด๋ฅผ ํ์ํ๋ค. ๐ ์ค๋ณต ํ์์ ๋ฐฉ..
CS/โ๏ธ ์ด์์ฒด์
CPU ์ค์ผ์ค๋ง ๐ ์ด๋ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉ๋ ๊ฒ์ธ์ง ๊ฒฐ์ ๐น CPU ์ค์ผ์ค๋ฌ Ready ์ํ์ ํ๋ก์ธ์ค ์ค์์ ์ด๋ฒ์ CPU์ ์ค ํ๋ก์ธ์ค ์ ์ ๐น Dispatcher CPU ์ ์ด๊ถ์ CPU ์ค์ผ์ค๋ฌ์ ์ํด ์ ํ๋ ํ๋ก์ธ์ค์๊ฒ ๋๊น = context switching ๐น ๊ณ ๋ ค์ฌํญ ๋๊ตฌํํ
CPU๋ฅผ ์ค ๊ฒ์ธ์ง ์ค๊ฐ์ CPU๋ฅผ ๋บ์ด์ฌ ์ ์๊ฒ ํ ๊ฒ์ธ์ง ๋๋ ๊ณ์ ์ฐ๊ฒ ํ ๊ฒ์ธ์ง ๐น scheduling criteria CPU utilization โ ์ต๋ํ ์ฌ์ฉ Throughput Turnaround Time (์ด ์์์๊ฐ) Waiting Time Response time (CPU๋ฅผ ์ต์ด ์ป์ ๋๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ) ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ ๐น nonpreemptive (๋น์ ์ ํ) ๐น preemptive (์ ์ ํ) ๐ธ ..