์ฑ : ์๋ฐ ์ฑ๋ฅ ํ๋ ์ด์ผ๊ธฐ (์ด์๋ฏผ)๊ธฐ๊ฐ : 2022.03.15 ~ 2022.05.31 (์ด 12์ฃผ)View - ์ด๋ฒคํธ ๋ฐ์ + ์ด๋ฒคํธ ๊ฒฐ๊ณผ ๋ณด์ฌ์คController - view์ model์ ์ฐ๊ฒฐ์Model - ์ด๋ฒคํธ์ ์ค์ง์ ์ธ ์ผ์ ์ฒ๋ฆฌJSP ๋ชจ๋ธ1๋ธ๋ผ์ฐ์ โ
\+, -, \*, /, %์ ์(์์์ ๋ฌด์)์ค์(์ ๋ฐ๋๊น์ง ์์์ ๊ณ์ฐ)0์ผ๋ก ๋๋๊ธฐ ์๋จํ์ ์บ์คํ ๊ณผ ํ๋ก๋ชจ์ ์ด ๋ฐ์ โ ์ด๋ก์ธํ ๊ฐ์์ค์ ์ฃผ์int๋ณด๋ค ์์ ํ์ ์ int๋ก ๋ณํ byte, char, short โ intํผ์ฐ์ฐ์ ์ค ํํ๋ฒ์๊ฐ ํฐ ํ์ ์ผ๋ก ํ๋ณํ ch
โถ๏ธ ์ ๋์ฝ๋์๋ฐ๋ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ ๋์ฝ๋๋ก ์ฒ๋ฆฌํ๋ค.์ด๋ ๊ตญ์ ํ์ค๊ท์ฝ์ผ๋ก ์ธ๊ณ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ฝ๋๊ฐ์ผ๋ก ๋งคํํ ๊ฒ์ด๋ค.2byte = 16bit = 88bit = 256256 = 65,536๊ฐ โ ์ ์ ์์ ๋ฌธ์๋ค์ด ๋งคํ๋จ\*UTF-8 ์ ์ ๋์ฝ๋์ ๋ํ์ ์ธ ์ธ์ฝ๋ฉ๋ฐฉ๋ฒ์ด๋ค
์๋ฐํ๋ก๊ทธ๋จ ์คํ + ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ(Garbage Collection)๋ฐ์ดํธ์ฝ๋๋ฅผ ์ฝ๊ณ ,๊ฒ์ฆ,์คํOS์ข ์์ ์ด๋ค. ๋จ, ๋ฐ์ดํธ์ฝ๋(.class)๋ OS๋ ๋ฆฝ์ ์ด๋ค.๋ฐ์ดํธ์ฝ๋ VS ๋ฐ์ด๋๋ฆฌ์ฝ๋๋ฐ์ดํธ์ฝ๋๋ ๊ฐ์๋จธ์ ์ด ์ดํดํ๋ ์ฝ๋ (OS๋ ๋ฆฝ์ ์ด๋ค.)๋ฐ์ด๋๋ฆฌ์ฝ๋๋ ์ปดํจํฐ๊ฐ ์ดํดํ
: ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ฅ ํ์ง ์์ง๋ง, ๊ณ์ํด์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ ํ๊ฒฝ์์ ๊ท ํ์ด ์์กํ๋ค๋ ์ฅ์ ์ด ์๋ค.๋ฆฌํ๋ ธ๋์๋ง ํค๊ฐ์ ์ ์ฅB- tree์ ์์ ๋ฒ์ , ๋ณด๋ค ๊ฒ์์ ํจ์จ์ ๋ฃจํธ์ ๋ฆฌํ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ๋ฅํ ์ผ์ ํ๊ฒ ์ ์ง์ ๋ ฌ์ํ ์ ์ง โ ์ด๋ถํ์ ๊ฐ๋ฅ์ฌ์ค์ ๋๊ฒ์ RDB์์ ์ฌ
Isolation Level? : ์ฌ๋ฌ ํธ๋์ญ์ ์ ๋์์ ์ฒ๋ฆฌ์, ํธ๋์ญ์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฅธ ํธ๋์ญ์ ์๊ฒ ์ด๋ป๊ฒ ๋ ธ์ถ ํ ์ง ๊ฒฐ์ ํ๋๊ฒ `๋์์ฑ๊ณผ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ`์ ์ ์ ํ๊ฒ ์ค์ ํด์ผํ๋ค. (๋์์ฑ์ด ์ฌ๋ผ๊ฐ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.) ๋ ๋ฒจ์ด ๋์์๋ก ๋น์ฉ
DeadLock? ์์คํ ์ ์๋ชป๋ ์์ ๊ด๋ฆฌ๋ก ๋ฉํฐํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์์ ๋ฉ์ถฐ ๋ฒ๋ฆฌ๋ ํ์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ ์ ํ๊ณ ์๋ ์์์ ๊ธฐ๋ค๋ฆฌ๋ฉด์ ๋ ์ด์์ ํ๋ก์ธ์ค๊ฐ ๋ฌดํ๋๊ธฐ์ ๋น ์ง๋ ์ํ ๊ต์ฐฉ์ํ ํ์์กฐ๊ฑด `์ํธ๋ฐฐ์ (Mutual exclusion)` : ์์์ ํ ํ๋ก์ธ์ค์
user threadJava๋ VM์ด๋ค. OS์์ VM์์ thread๋ฅผ ์ ๊ณตํด์ฃผ๋๊ฒ์ด๋ OS์ ์๋ CPU์ core๋ฅผ ๋๋๋ค ์ ์๋ค.Java thread ๋ณํ๊ธฐ์กด : green thread (user thread)์ต์ : native thread (kernel t
ํ๋์ ํ๋ก์ธ์ค๋ ์ฌ๋ฌ๊ฐ์ ์ฐ๋ ๋๋ฅผ ๊ฐ์ง ์ ์๋ค.a lightweight processCPU๋ฅผ ์ ์ ํ๋ ๊ธฐ๋ณธ ๋จ์program counter, register set, stack ๋ ์ฐ๋ ๋ ๋จ์๋ก ๊ฐ์ง๋ค. (code, data, files๋ ๊ณต์ ํ๋ค.)Responsi
์ถ์ฒ โฃ ๋ ์๋ฐ Java 8, ๋ฐฑ๊ธฐ์ / ์ธํ๋ฐOptional = ๋น์ด์์ ์๋ ์๊ณ , ์ด๋ ํ ๊ฐ ํ๋๋ง ๋ด๊ณ ์์์๋ ์๋ ์ธ์คํด์ค์ ํ์ โ Optional์ด ๊ฐ์ฒด๋ฅผ ๊ฐ์ธ๋ ๊ตฌ์กฐ์ด๋ค.Map ์ธํฐํ์ด์ค์ ์ค์ ํน์ง = key๋ null์ผ์๊ฐ ์๋ค.๊ทผ๋ฐ Optional
์ถ์ฒ โฃ ๋ ์๋ฐ Java 8, ๋ฐฑ๊ธฐ์ / ์ธํ๋ฐ์ฐ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ํจ์. ํ์ดํ๋ผ์ธ.lazyํ๋ค = ์ข ๋ฃ(terminal) ์คํผ๋ ์ด์ ์ด ์ฌ๋ ๊น์ง ์คํํ์ง ์์๋ค๋ฅธ ์ฐ๋ ๋์์ ๋์๊ฐ๋ณ๋ ฌ์ด๋ผ๊ณ ์ข์ง๋ง์ ์์. ์ฐ๋ ๋ ๋ง๋ค๊ณ ์์ง ๋น์ฉ. ์ปจํ ์คํธ ์ค์์นญ ๋น์ฉ.๋จ,
์ถ์ฒ โฃ ๋ ์๋ฐ Java 8, ๋ฐฑ๊ธฐ์ / ์ธํ๋ฐ๊ตฌํ์ฒด์ ๋ณ๊ฒฝ์์ด ์ ๊ธฐ๋ฅ ์ถ๊ฐ โ ์ถ์๋ฉ์๋๋ฅผ ์ถ๊ฐํ๋ฉด, ์ฌ์ ์ ํด๋น ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค๋ค์ ์ปดํ์ผ ์๋ฌ ๋ฐ์ (ํด๋น ๋ฉ์๋๋ฅผ ๊ตฌํํ์ง ์์์ผ๋ฏ๋ก)๊ตฌํ์ฒด๊ฐ ๋ชจ๋ฅด๊ฒ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ผ๋ก ์ํ์ฑ์ด ์์๋ฐํ์ ์๋ฌ ๋ฐ์ ๊ฐ
๐ ๋ฌธ์ ๋งํฌ 1. ์๊ฐ๋ณต์ก๋ 2 โค N(์ ์ ) โค 300,000, 1 โค M(๊ฐ์ ) โค 1,000,000 ๋ฒ์ ์ด๋ฏ๋ก BFS๋ก ํ์ด๋ ์๊ฐ๋ณต์ก๋๋ ์ถฉ๋ถํ๋ค. $$ O(V+E) = O(N+M) = 3*10^{5}+10^{6} โ 0.013sec $$ ๊ทธ๋๋ ์๊ณ ๋ฆฌ์ฆ
2 โค N(์ ์ ) โค 300,000, 1 โค M(๊ฐ์ ) โค 1,000,000 ๋ฒ์ ์ด๋ฏ๋ก BFS๋ก ํ์ด๋ ์๊ฐ๋ณต์ก๋๋ ์ถฉ๋ถํ๋ค.$$O(V+E) = O(N+M) = 310^{5}+10^{6} โ 0.013sec$$ ๊ทธ๋๋ ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ๊ฐ ๋ค์ต์คํธ๋ผ๋ก ๋์ด์์ผ๋ฏ๋ก ์ด๋ฅผ ๊ณ
๋์ปค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจ๋ค์ด๋ ๊ธฐ์ ์ ํตํด ๋ณด๋ค ํธ๋ฆฌํ๊ฒ ๋ฐฐํฌ ํ ์ ์๋ ๊ธฐ์ ์ด๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฏธ์ง(์ปจํ ์ด๋ ์คํ์ ํ์ํ ๋ช ์ธ)ํํ์ฌ ์ด๋ ํ๊ฒฝ์์๋ ๋์ผํ๊ฒ ์คํํ ์ ์๋ ๊ธฐ์ ์ด๋ค. ๋์ปค ์ด๋ฏธ์ง๋ ๋์ปคํ๋ธ ์ ํธ์คํ ๋์ด ๊ด๋ฆฌ ๋๋ฉฐ, ๋๊ตฌ๋ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๊ด
intellij gradle ํ๋ก์ ํธ ์์ฑ์ build failed ๋ฐ์gradle JVM ๊ณผ ํ๋ก์ ํธ jdk๋ฒ์ ์ด ๋ง์ง ์์a. ํ๋ก์ ํธ jdk (Project Structure)b. gradle JVM์์๋ฅผ ๋ง์ท๋๋ฐ๋ ๋น๋๊ฐ ์๋จ. ์บ์๋ฅผ ๋ ๋ ค์ค์ผํจ.File > I
๐ ๋ฌธ์ ๋งํฌ 1. ์๊ฐ๋ณต์ก๋ 2. ํ์ด 3. ์ ์ฌ๋ฌธ์ 4. ์ฝ๋
๋์ ์ฝ๋์ ์ฃผ์์ ๋ฌ์ง ๋ง๋ผ. ์๋ก ์ง๋ผ. - ๋ธ๋ผ์ด์ธ W. ์ปค๋ํธ, P.J. ํ๋ผ์ฐ๊ฑฐ์ ๋ฌ๋ฆฐ ์ฃผ์์ ๊ทธ ์ด๋ค ์ ๋ณด๋ณด๋ค ์ ์ฉํ๋ค.๊ฒฝ์ํ๊ณ ๊ทผ๊ฑฐ ์๋ ์ฃผ์์ ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ ๋ค.์ค๋๋๊ณ ์กฐ์กํ ์ฃผ์์ ๊ฑฐ์ง๊ณผ ์๋ชป๋ ์ ๋ณด๋ฅผ ํผ๋จ๋ฆฐ๋ค.์ฌ์ค ์ฃผ์์ ํ์์ ์ด๋ค.
ํด๋ฌ์คํฐ ์ ์ฒด์ ์ ์ฉ๋๋ ์ค์ . ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ ๊ฐ ๋ ธ๋์ ๊ฐ์ ํด๋ฌ์คํฐ ์ด๋ฆ์ ์ฌ์ฉ.ํด๋ฌ์คํฐ ์ด๋ฆ ๋ณ๊ฒฝ์, ํด๋ฌ์คํฐ ๋ด ๋ชจ๋ ๋ ธ๋๋ฅผ ์ฌ์์cluster.nameํด๋ฌ์คํฐ ์ด๋ฆ (๊ธฐ๋ณธ๊ฐ : elasticsearch)ํด๋น ๋ ธ๋์๋ง ์ ์ฉ๋๋ ์ค์ .node.name๋ ธ๋ ์ด๋ฆ
ElasticSearch ํด๋ฌ์คํฐ : ์ฌ๋ฌ๊ฐ์ ElasticSearchํ๋ก์ธ์ค(=๋ ธ๋)๋ค์ ํ๋์ ElasticSearchํ๋ก์ธ์ค ์ฒ๋ผ ์ฌ์ฉ.์ด๋ ๋ ธ๋์ API๋ฅผ ์์ฒญํด๋ ๋์ผํ ์๋ต๊ณผ ๋์์ ๋ณด์ฅ.ํ๋์ ๋ ธ๋๋ฅผ ์ด์ฉํด๋, ๋จ์ผ ๋ ธ๋๋ก ๊ตฌ์ฑ๊ดธ ํด๋ฌ์คํฐ๋ก ๋์.์ฌ์ฉ์์