ํ์ฌ ์นญ๊ตฌ๋ค ๋์ ๊ฐ์๊ธฐ ์ทจ์ํ๋ฅผ ์ก์ ์ฐธ์ํ๊ฒ ๋์๋ค.
์ฃผ๋ง์ด๋ผ ์์นจ์ ๋๋ณ์ ๋ ์ ์ ๊ฐ๊ณ ์ถ์ง ์์์๋๋ฐ
๋ง์ ๊ฐ๋๋ Spring conference๋ผ ๊ทธ๋ฐ์ง ์ ๋ฌด์ ๊ฒน์น๋๊ฒ๋ ๋ง๊ณ ์์๋ค์ ์ ์๋ ๊ฒ๋ ๋ง์ ์ฌ๋ฏธ์์๋ค.
๊ผญ ๋ช๊ฐ์ง ๋ฐ๋ผํด๋ด์ผ์ง ์ผ์ผ์ผ
์ต์ข ํ๊ธฐ
- ์ฌ๋ฐ์๋ค.
- ์ด๋ฐ๋ฐ์ ๊ฐ๋ ์์ฃผ๋ณด๋ค๋ ์ ํ์ฌ์์ ์ด๋ป๊ฒ ์ฐ๋ ์ง ์ ๊ทธ๋ ๊ฒ ์ผ๋์ง ๊ทธ๋ฐ ์ธ์ฌ์ดํธ ์ป์ด์ค๋๊ฒ ๋ ์ข์ ๊ฒ ๊ฐ๋ค
- ์์นจ์ ์กธ๋ ค์ ์ค๊ธฐ์ซ์๋๋ฐ ๊ฝค๋ ์ฌ๋ฐ์๋ค. ํนํ๋ ํ์ฌ์ ๊ฒฝํ ๊ณต์ ์ธ์ ๋ค์ด
- ๋ชจ๋ํฐ๋ง + ๋ถ์ฐ ํธ๋ ์ด์ฑ ๋ฐ๋ณต์ ์ผ๋ก ๋์ด ๋ด์ผํ ๊ฒ!
์ด๋ฒ์ ๊ผญ ํด๋ด์ผ ํ ๊ฒ ํด๋ณด๊ณ ์ํผ๊ฑฐ
(ํ๊ณ ์๋๊ฑฐ~~)
- ๋ถ์ฐํธ๋ ์ด์ฑ + ๋ชจ๋ํฐ๋ง
- ์๋ง์กด Q Developler
- ์ด๋ ธํ ์ด์ (๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์์ด์)
- ๋ก์ปฌ ์บ์๋ ๋ ๋์ค๊น์ง ์จ๋ณด๊ธฐ
- ์ฑ ์์ฐ์ ์ ์ฉ
- jvm ํ์
- ๋๋ฉ์ธ ๋ถ์์ ํธ๋ฆฌ๊ตฌ์กฐ๋ก ๋ถ์ํด๋ณด๊ธฐ
- ํธ๋ฆฌ๊ตฌ์กฐ ์์ฑ ํด์ด ๋ญ๊ฐ ์์ง
- ๋ฉํฐ๋ชจ๋ ํ์ ํด์ ์ด๋ป๊ฒ ์ด๋ป๊ฒ ํ๊ณ ๋ฒ์ ๊ด๋ฆฌ ์ด๋ป๊ฒ ํ๋ค ํ์คํ๊ฒ ์ธ์งํด๋๊ธฐ
- ์ฌ๋ฏธ์๊ฒ ๊ฐ๋ฐํ๊ณ ์๋ค๊ณ ๋งํ๊ธฐ
- ๋ฐํ๋ฅผ ์งํํ๋ ์น๊ตฌ๊ฐ ์ฌ๋ฏธ์๊ฒ ๊ฐ๋ฐ์ ํ๊ณ ์๋ค๋๋ฐ ์ข ๋ถ๋ฝ๊ธฐ๋ ํ์๊ณ ์ ๊ธฐํ๊ธฐ๋ ํ์๊ณ ๋๋ ๊ณผ์ฐ ์ด๋๊ฐ์ ์ด๋ ๊ฒ ๋ง์ ํ ์ ์๋๊ฐ ์๊ฐ์ด ๋ค์ด์ ๋ฃ์๋ค. ์ด๋ ๊ฒ ๋ง์ ๋ชปํ๋ค๋ฉด ๊ทธ๊ฒ์ ๋์ ๋ฌธ์ ์ธ๊ฐ ์ธ๋ถ์ ๋ฌธ์ ์ธ๊ฐ ํ๋ฉฐ ์๊ฐ์ด ๋ง์์ ธ์ ๋ฃ์ด๋ดค๋ค. ์ด์ฐจํผ ๋ ธ๋น์ธ๊ฑฐ ์ฆ๊ฒ๊ฒ ์ผํ๊ณ ์ถ๋ค~~
๊ฐ์ ๋ด์ฉ ์ ๋ฆฌ
1. Spring ML Serving -> JVM ML ์๋น
๊ธฐ์กด์ ml์ด๋
- ml == python == ml
- but production์์ ํ์ด์ฌ ์ ์ฝ ๋ง์
- ml์ถ๋ก ์๋ฒ ์์ง ์ฌ์ฉ aws oci nvidia .. etc ๋ ๋ง์ง๋ง ์ด๋ ต
jvm ml ์๋นํ๊ธฐ ์ํ ์ฌ๋ฌ ๋ฐฉ๋ฒ๋ค
- onnx, djl, tansorflow lib ์ฌ์ฉ
djl ํน์ง
- djl ์๋์ ์ผ๋ก ๊ณ ์์ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ์ถ์ํ ์ ๋์ด์์ -> ์ผ๋จ ์๋ก ใฑ
- ๋ค์ํ ๋ชจ๋ธ ์ง์
- ๋ชฐ๋ผ๋ djl๋ก ์๋น์ค ํ ์ ์๊ฒ ํ๋๊ฒ ์๋ค ์ฒ ํ์ ๋ฉ์ง๋ค
- ์๋ฐ๊ฐ๋ฐ์์ ํ๋ค -> python ๋ชจ๋ธ ์ํคํ
์ฒ ์ดํด๋ ์๋น์ค ์ถ๋ก gpu ํ๊ฒฝ ๋ฑ์ ๋ํ ์ดํด
- ๋ทํ๋ฆญ์ค์์ ํ์ฉ ์ค
djl ํ์ฉ ์์
- ์ปค๋จธ์ค : ๊ฒ์ ์ถ์ฒ ๋ฆฌ๋ทฐ ๋ฐ์ดํฐ ๋ถ์ ๋ฑ
- ๋ฆฌ๋ทฐ ๋
ธ์ถ, ํ๋งค์ ํจ๋ํฐ
- ๋ฆฌ๋ทฐ -> ๋ฆฌ๋ทฐ๋ถ์ ๋ชจ๋ธ ์ ๋ฃ์ผ๋ฉด -> ๊ธ์ ์ธ์ง ๋ถ์ ์ธ์ง
Spring AI
- spring์์ ml serving ํ ๋ spring ai ๋์๋จ
- ํ์ง๋ง ์ง์์ ๋ง์ด ๋๋ฆผ
-> jvm์์๋ง ์๋นํ๋๊ฒ ๋ต์ ์๋ ํด๋ผ์ฐ๋ ์๋น์ค ์์ง ํ์ด์ ๋ญ ๋ฑ๋ฑ ์ฌ๋ฌ๊ฐ์ง ํตํด์(or ์กฐํฉํด์) ์ ์๋นํ์ธ์ฉ ..
ใ ใ ์ฃผ๋ก ํ๋ ๋ถ์ผ๊ฐ ์๋๋ผ ์ด๋ ค์ ๋ค.
2. Amazon Q developer ์์ฑํ ai
ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ํจ๋ฌ๋ค์
- ai ๋ฑ์ฅ ์ ์ ์ผ ํฐ ํ๋ : ์ปจํ
์ด๋ (์ฟ ๋ฒ๋คํฐ์ค eks)
- ai ์๋ ๋์
์์ฑํ AI ํฌ๋ฌ์ฑ
- ์ฝ๋ ์์ฑ (code assistant)
- ์ง์ ์ฑ๋ด (์ด์ ์ ๋ง์ ์ง๊ธ์ ์กฐ๊ธ ๋จ์ด์ง)
-> ์ฝ๋ ์์ฑ์ผ๋ก ๋ง์ด ์ด์ ์ด ๋ง์ถฐ์ง๊ณ ์์
Amazon Q Developer
- ์ํํธ์จ์ด ๊ฐ๋ฐ ์ฌ์ดํด ์ ๋ฐ(SDLC)์ ๊ฑธ์ณ์ ๋์์ ์ฃผ๋ aws ์๋น์ค์.
- ์ฌ์ฉ ํจํด
- ์ธํ๋ผ(terraform) / ์ผ๋ฐ ๊ฐ๋ฐ์ ๋ ์ข
๋ฅ๋ก ๋๋จ
-> ์ผ์ํ๋ ๋ด ๋น์ ๋๊ฐ ์ผํด๋ผ ๋๋๊ฒ ์ฒ๋ผ ์ฌ์ฉ
sw ๊ฐ๋ฐ ๊ด์ ์์ Q
- ์๋
์ RAG (llm์ด ํ์ตํ์ง ๋ชปํ ์ฐ๋ฆฌํ์ฌ์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฃผ์
์ํค์ง)
- ์ฌํด๋ Agent AI (์ฌ๊ธฐ์ค์ ํ๊ฐ์ง ๋ค์ด๊ฐ๋๊ฒ rag)
- ๊ฐ๊ฐ ๋จ๊ณ์ agent๊ฐ ์์
- ๊ฐ๋ฐ, ๋ถ์, ํ
์คํธ, ๋ฆฌ๋ทฐ
์ด๋ค๊ธฐ๋ฅ๋ค์ด ์๋์?
- /dev ์ฐ๊ณ ์์ฐ์ด๋ฅผ ์ถ๊ฐํ์ํ๋ค๋๊ฑฐ ๊ต์ฅํ ์์ธํ๊ณ ๊ธธ๊ฒ .. -> ๊ทธ๋ผ ์๊ฐ ๊ณํ์ธ์์ ๋์
- /test ์ ๋ํ
์คํธ ์์ฑ ์์ด์ ํธ
- ํ์ผ์ด ์์ผ๋ฉด ์ด๋ค์ด๋ค ํ
์คํธ ์ฝ๋ ๋ง๋ค์ด์ผ๊ฒ ๋ค ์๊ฐ ์๊ฐ์ ํจ
- /review ์ฝ๋ ๋ฆฌ๋ทฐ ๋ณด์๊ด์ ์ธ๋ฏ
- /doc ๋ฌธ์ํ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฆฌ๋๋ฏธ๋ฅผ ๋ง๋ค์ด์ค ์ฃผ์์ด๋ javadoc, ์ฝ๋ ์ ๋ฐ์ ์ค๋ช
๋ค ๋จ
- /transform java version transform๋ ์ง์ํจ
- cobol to java
- vmware to ec2
- .net to linux
- java version 1.8 to 17 or 21
- spring boot ๊ธฐ๋ฐ์ผ๋ก ์ง์์ ํจ
- boot version up ๋ ์ง์..
cli tool
- gemini cli..
- ์ด์ ide์์ฐ๊ฒ ๋ ๊ฑฐ์ผ!๋ผ๋ ...
- cli๊ฐ ide๋ณด๋ค ์ง์์ด ๋น ๋ฅด๊ธดํจ
- ์ด๊ธฐ ํ๋ก์ ํธ ์์ฑ๋ถํฐ ํ
์คํธ, ๋ฌธ์ ๋ค ์๋ง๋ฆ
mcp
- llm ๋ชจ๋ธ์๊ฒ ๋ฌด๊ธฐ๋ฅผ ์ฅ์ด์ค ์ ์๋ ํ๋กํ ์ฝ
- ๋ฉ์ง๋ค
- ์ ์ฐ๋ฉด ์๊ฐ ๋ง์ด ์ค์ฌ์ค ํ์ต ์์ผ์ ์๊ฐ ๋์ ์ผํ๊ฒ ํด์ฃผ๋ ๊ฒ
๋ช
์ฌ์ฌํญ
- data sharing ํด์ ํ๊ณ ์ฐ๊ธฐ!
- ๋น๋id != aws account id ๊ณ์ ํ์ ์๊ณ ๋น๋id ๋ง๋ค์ด์ฐ๋ฉด๋จ -> ํ์์ ํ ์ธ์ ํฐ ๋ค๋ฅธ๊ฒ ์์ด์ free tier์จ๋ ์ถฉ๋ถํ ์ธ ์ ์๋ค
- ์ง์๋ฅผ ๋ช
ํํ๊ฒ ์ ํด์ผํ๋ค (ํ๋กฌํํธ์์ง๋์ด๋ง์ ์ ํด์ผํ๋ค)
3. ์ฌ๋ฆฌ๋ธ์ ๋ฌผ๋ฅ์์คํ ๊ฐ์ ๊ธฐ
์ํ ์๊ธ / ์ฌ๊ณผ ๊ด๋ฆฌ / ๋ฐ์ฃผ - ์
๊ณ - ์ฌ๊ณ ๋ฐ์ ๊น์ง์ ์ฃผ๋ฌธ ๊ด๋ฆฌ ์์คํ
(OMS)
as-is ์ issue
- as-is ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ณ์ ์ฒดํฌํด์ ์ฌ๊ธฐ์ ๊ธฐ ์ฎ๊น -> ๋ฐ์ดํฐ ์ง์ฐ
- enterpase
- ์์ฐจ ์ฒ๋ฆฌํด์ผํจ
- ์ค์๊ฐ ๋ณด์ฅ ๋ชปํจ
to-be
- ๋ฉ์์ง ๊ธฐ๋ฐ์ kafka ์ค์ค์๊ฐ ๋ฐ์ดํฐ ์ฐ๋์ผ๋ก ๋ณ๊ฒฝ
- ํน์ ์ด๋ฒคํธ ๊ธฐ๋ฐ (lambda + event bridge)
- ์๋ฌ ํธ๋ค๋ฌ dlq (์๋ + ๋ฐฑ์
for ์ฌ์ฒ๋ฆฌ)
๊ณ ๋ฏผ๊ณผ ํด๊ฒฐ
- ์ด์ ์ด๋ ค์. ๋ฐฐ์น ์์คํ
์ด๋ผ ์ฒจ๋ถํฐ ๋๊น์ง ์ํคํ
์ฒ๋ฅผ ๋ค ๋ณ๊ฒฝํด์ผํจ. ์นดํ์นด ์๋ ์ฌ๋ ์ ์
์ด -> aws msk ์ฌ์ฉ + ์ธํ๋ผํ์ ์ง์
- ํํฐ์
์์ ๋ณด์ฅ์ ํด์ผํจ(๊ธฐ์กด ์์คํ
์ฐ๊ฐ ๋ถ๋ด) -> ๋จ๊ณ์ ์ ํ. ๋ฌผ๋ฅ์ผํฐ์ ์ ๋ชฉ๋ ๋ฐ์ดํฐ ์ฐ๋ ํ๋ก์ธ์ค์ ํํด ์ด๋ฒคํธ ๊ตฌ์กฐ๋ก ์ด์
- ์์ ๋ณด์ฅ ๊ผญ ํ์ -> ํค ๊ธฐ๋ฐ
- ๊ฐ๋ฐ์ ๋ฐ ์ด์์ ํ์ต ๊ณก์ -> poc ๋ง์ดํจ
๋ชจ๋ํฐ๋ง
as-is
- ๋ฐ์ดํฐ ์ง์ฐ์ ์ํด์ ๋ฐฐ์น๊ฐ ์๊ฒ๋ ์ฒ๋ฆฌ ์ํ๊ณ ๋๋๋ฒ๋ฆผ. ๋ฏธ๋ฆฌ ์ธ์ง ์์ด ์ค์ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ ๋ณด๊ณ ์ด์ํด์ ์๋ ค์ค
- ์ค๋ฅ๊ฐ ๋ฌ์ผ๋ฉด ์ ์ค๋ฅ๊ฐ ๋ฌ๋์ง -> as-is idc ์ง์
to-be
- eventbrdge + lambda -> ์ถ๊ณ ์ฒ๋ฆฌ ๋ชจ๋ํฐ๋ง 99%๊น์ง ์๊ฐ๋ฉด -> On call (voice call ๊ฐ์๊ฑฐ)
- datadog dashboard ์ฌ์ฉ
- ์ค์๊ฐ์ฑ๊ณผ ํ์ ์ฑ์ ์ํ RDB ์ค์ฌ ๊ตฌ์กฐ ํํผ
์จ์คํ๋ผ์ธ ์ฌ๊ณ ๋๋ฉ์ธ
- ์จ๋ผ์ธ๋ชฐ์์ ๊ตฌ๋งคํ์ง๋ง ํน์ ์๋น์ค ์ฌ์ฉ ์ ์คํ๋ผ์ธ ์กฐํ API ์ฌ์ฉ.
- ์ฅ์
- ์๊ณ์น ๋๋ฌ ์คํ๋ผ์ธ ๋๋น -> read ์ฝ๊ธฐ ๋ถ์ฐ ๋๋น ๋ถ๋ฆฌ (redis)
oracle to redis ์ค์๊ฐ ์ฑ ์ป๊ณ ์ ๋ง์ฃผํ ์ธ๊ฐ์ง ์ด์
1. ๋์์ฑ ์ ์ด (batch - stock service - redis)
- oracle : ์ฌ๋ฌ ํด๋ผ์ด์ธํธ ๋์ผ ์ฌ๊ณ ์
๋ฐ์ดํธ ์ row-level lock์ผ๋ก ๋์์ฑ ์ ์ด ๊ฐ๋ฅ (์ด๋์ ๋ ๋ณด์ฅ)
- ๋ ๋์ค : ๋จ์ผ ์ค๋ ๋๋ก ๋์ํด ๋จ์ผ ๋ช
๋ น์ ์ถฉ๋ ์์ผ๋, ์ฌ๊ณ ์กฐํ ํ๊ณ ์ฆ๊ฐ ์ฒ๋ฆฌํ๊ณ ์ ์ฅํ๊ณ ๋ค์ ์กฐํํ๋ ์ด๋ฐ ๋ณตํฉ ๋ช
๋ น์ด ์ฌ์ฉ์ ๋์์ฑ ์ด์ ์์
-> ๋ ๋์ค ๋ถ์ฐ ๋ฝ ์ฌ์ฉ (redis + redisson + reactive ๋ฐฉ์ ์ง์)
- aop๋ด @Lockable ์ด๋
ธํ
์ด์
์ฌ์ฉ
2. ์กฐํ ์ฑ๋ฅ ์ด์
- ๋จ๊ฑด ์กฐํ ์ผ์ด์ค๋ ๋ ๋น ๋ฆ ๋ ๋์ค๋ ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ์ด๋
- ๋ณต์๊ฑด ์กฐํ -> oracle : ์ธ๋ฑ์ค ์ฌ์ฉ / redis : ์ปค์๋งํผ ๋ฐ๋ณต ์กฐํ ํด์ผํ๋ ์์ด์ ๋ฌํ๋ ๋ฐ๋ณต์๊ฐ์ด ํ์ํจ
-> ์กฐํ์ฉ๋๋ณ๋ก ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํด redis ๋ฐ์ดํฐ ์
์ 3๊ฐ์ง๋ก ๊ตฌ์ฑ
- Stock HashKey ํน์ ๋งค์ฅ ์ฝ๋ + ์ํ์ฝ๋ ๋ช
ํํ ๋จ๊ฑด (์ํ ์์ธ, ์ฅ๋ฐ๊ตฌ๋ ๋ฑ)
- Store HashKey ํน์ ๋งค์ฅ ์ฝ๋ ๊ธฐ์ค์ผ๋ก ๋ชจ๋ ์ํ ์ฌ๊ณ ์กฐํ (๋งค์ฅ ํด์์ฝ๋ ๊ธฐ์ค์ผ๋ก ํ๋ hscan) (์ ์ ๋ผ๋ฒจ ๋ฑ)
- Product HashKey ํน์ ์ํ์ฝ๋ ๊ธฐ์ค์ผ๋ก ์ํ์ฝ๋ ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ ๋งค์ฅ ์กฐํ (๊ฒ์์์ง ๋ฑ)
-> ์ฝ 10๋ฐฐ ์ฑ๋ฅ ํฅ์
3. ์์ ์ฑ ์ด์
- ๋์คํฌ ๊ธฐ๋ฐ(oracle) vs ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ (ํ๋ฐ์ฑ, ๋ ๋์ค)
- aws์์ ํ๊ณ ์์
- ์ํท ๋ธ๋ ์ด์ปค ํจํด ์ฌ์ฉ : ์์คํ
์ฅ์ ๊ฐ์ง ํธ์ถ ์ ๊ธฐ์กด ํธ์ถ ์ฐจ๋จํ๊ณ ๋์ฒด ๊ฒฝ๋ก๋ก ํ๋ ค๋ณด๋ด๋๋ก
- ์ฅ์ ๋๋ฉด oracle ๋ณด๋๋ก ์ํท๋ธ๋ ์ด์ปค ์ฌ์ฉ์ค
cdc (event)
- ๋ฐฐ์น ์ด๋ ๊ฒ ๊ฐ์ ์งํ ์ค์ด๋ค
๊ฒฐ๋ก
- ๋จ์ผ๊ฐ์ง์์๋ฐ ์ ํ์ฌ๋ ๋ณํ๋ค ์ฐ๋ฆฌ๋ ๋ณํ๋ ค๋ ใ
ใ
๋ ํํ ์ดํ์ด๋ฐ์ ๋ฌธ์๋์ด ๊ฑฐ์ฐธ ใ
ใ
- ์ ์๋ผ๋ฒจ. ์ ์์์. ๋งค์ฅ์ ์๋ ๊ฒ ๋ค์ด
- ๋ ๋์ค ์ ์จ๋ณด๋ฉด ์ข๊ฒ ๋ค. ๋ฐ์ดํฐ ์
์ ์ค๊ณ ํ๋๊ฒ ๊ด๊ฑด ๊ฐ๊ณ ๋ ๋์ค๋ ๋์์ ์ค ๋ฟ์ด์ง ๊ฒฐ๊ตญ์ ์ ๋๋น๋ ์ฌ์ฉ
- ๋์ rdb์ค์ฌ๋ณด๋ค๋ redis ๋์ ๋ฐ์ผ๋ฉฐ rdb์ ํจ๊ป ์ ์ฐ๋๊ฑฐ๊ฒ ๋ค
4. Virtual Thread
Overview
- jdk21 ๊ณต์ ์ถ๊ฐ ์ดํ๋ฆฌ์ผ์ด์
๋ ๋ฒจ ์ฐ๋ ๋
- ๋ชฉํ -> ๋์ ๋์ ์ฒ๋ฆฌ๋ ํ์ํ ์๋ฒ๋ฅผ ์ฝ๊ณ ํจ์จ์ ์ผ๋ก ๋ง๋๋ ๊ฒ ๋์
- ๋์ Blokcing I/O ์ฒ๋ฆฌ๋
Virtual Thread Scheduling
- ๊ธฐ์กด ์ฝ๋ ๋ณ๊ฒฝ ์์ด ๋ธ๋กํน io ํ๊ฒฝ์์ ์ด๋ป๊ฒ ๋์ ์ฒ๋ฆฌ๋ ๊ฐ๋ฅํ์ง
- ์ค๋จ ์คํ์ ์ํด ๋๊ฐ์ ์์ ํ์
- scheduling, conetxt switching
-> ๋น ๋ฅธ ์คํ๊ณผ ์ค๋จ
Function & Coroutine
- Function : ์ค๊ฐ ์ํ ์ ์ฅ์ํจ
- Coroutine : ์ฌ๋ฌ์ง์ ์์ ๋ฉ์ท๋ค๊ฐ ๋ค์ ์์ ์คํ ์ค๋จ ์ฌ๊ฐ ๊ฐ๋ฅ -> Runnable ์คํ ์ค๋จ ์ฌ๊ฐ ํ๋ ค๋ฉด ํ์ ์ด๋ฐ ๊ธฐ๋ฅ
kernel๊ณผ virtual thread
-> continuation๊ณผ ์คํํ runnable์ ๊ฐ์ง ์ธ์คํด์ค์ด๋ค
Socket I/O
- virtual thread๋ contiunonatoin์ ํตํด Platform Thread์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์กฐ์ํ์ฌ ์์ ์ ๋ฌ๋๋ธ์ ์คํ & ์ค๋จ๋ค๊ฒ ํ๋ค. -> Context Switching
- pinning issue๋ jdk 24์์ ํด๊ฒฐ์ด ๋์๋ค ์!
์ค ์ ๋ง ์ด๋ ต๋ค. virtual thread... ๋ฐํ ์ฃผ์ ๋ ํค ์ด๋ฐ๊ฑฐ ๋ค ๋๋ฌด ์ข์๋๋ฐ ์ง์ง ๋ง ๊ทธ๋๋ก ๋๋ฌด ์ด๋ ค์ด ์์ญ์ด๋ผ ์ ๋ชป๋ฐ์์ ๋๋ฌด ์์ฌ์ ๋ค.
๊ณต๋ถ ์ด์ฌํ ํด์ ๋ค์ ์ดํดํด๋ด์ผ๊ฒ ๋ค.
'ํ๊ธฐ์ค์ ๊ฐ๋ฐ์ ๋ถ๋ถ๋ผ๋ ๋ถ๋ฝ๋ค ๋๋ฌด ์ด๋ ค์์ ์์ฌ์ ๋ค'๋ผ๋ ํ๊ธฐ๊ฐ ์์๋๋ฐ ์ ๋ง ๋๊ฐ์ ํ๋ฆ๋๋ก ์๊ฐ์ ํด์ ์๊ฒผ๋ค ใ ใ
5. ์ฌ๋ด Spring Boot Starter๋ฅผ ํ์ฉํด ๊ณตํต ๊ธฐ๋ฅ ์ถ์ํ์ ๊ฐ๋ฐ ์์ฐ์ฑ ํฅ์
์คํ์์ค Spring ์ผ๋ก ๊ฐ๋ฐํ ํ๋ ์์คํ
- ์ํ ๊ณตํต ๊ธฐ๋ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌํ
- ์ด๋ค ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ์ถ์ํ ํ๋์ง
๋ชจ๋๋ฆฌ์ ๋จ์ผ ์์คํ
์ ๋ฌธ์ ๋ค
- ์ฒ์์ ๋จ์ํ๊ณ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ์ง๋ง ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด..? ๋ง์ ์ด์ ์กด์ฌ
- ํด๋ผ์ฐ๋ ํ๊ฒฝ์์ ์คํ์์ค ์คํ๋ง์ผ๋ก ์๋ฒ ๊ตฌ์ถ -> ๋น์ฐํ๋ฐ ๋น์ฐํ์ง ์์
์ ํต์ ์ธ ๊ธ์ต fw
- ์๋ฐ๊ธฐ๋ฐ
- ์คํ์์ค๊ฐ ์๋ ์์ฉ ํ๋ ์ ์ (๋น ๋ฅด๊ฒ ๊ตฌ์ฑ ๊ฐ๋ฅ, ์ ๋ขฐ์ฑ ๋์)
- ๊ธฐ์ ์ด ํ๋ ์์ํฌ ์ ๊ณตํ๋ ๋ฒค๋์ฌ์ ์ข
์๋์ด์์
- ์ปค์คํฐ๋ง์ด์ง ์ ์ง๋ณด์ ์ด๋ ค์
๊ฐ ํ๋ก์ ํธ์ ํต์ฌ ๊ด์ฌ์ฌ / ๊ณตํต ๊ด์ฌ์ฌ
- ๊ณตํต
- ๋ฐ์ดํฐ ์ง๋ ฌํ / ์ญ์ง๋ ฌํ
- ํธ๋ ์ด์ฑ
- ํต์ ์ค์ ๋ฑ
-> ์
๋ง์ ๋ง๊ฒ ๊ตฌํํด๋ ๋์ง๋ง ๊ณตํต๊ธฐ๋ฅ์ธ๋ฐ ๊ฐ๊ฐ ๊ตฌํ ์ ์ด์๊ฐ ๋ง์
-> ๊ณตํต ๊ธฐ๋ฅ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌํ + ๊ฐ ํ๋ก์ ํธ๋ ๊ฐ์์ ๊ด์ฌํ
starter ๊ตฌ์กฐ
- starter : ์ฌ๋ฌ ์์กด์ฑ ๋ฌถ์ด๋์ ํธ์์ฉ ์์กด์ฑ ๋ชจ์
- context : ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํต์ฌ ๊ธฐ๋ฅ
- auto-configure : contextx์ ์์ฑ๋๊ฑฐ ๋น์ผ๋ก ๋ฑ๋กํ์ฌ ์คํ๋ง ์ํ๊ฒ์์ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ
๊ณตํต์ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง
1. @FixedLengthCaharacter(10) ์ด๋
ธํ
์ด์
์์ฑ ์ญ์ง๋ ฌํ/์ง๋ ฌํ ์ ์
๋ฌด ํน์ฑ ์ ์ปค์คํ
ํ๊ฒ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ด๋
ธํ
์ด์
๋ง๋ค์ด ์ญ์จ ๋ชจ๋ธ ํ์ฉํด์ ์ฌ์ฉ
2. ์ฌ๋ด http client api ํต์ ์ถ์ํ ์ ๊ณต
- ์ฑ
์ ์ฐ์ ํจํด์ ์ฌ์ฉํด ๊ตฌํ์ ํ์ค ์ ๊ณต (ClientHandler(interface) : handle๋ฉ์๋..๋ฑ - ์ง์๊ฒ์ฆClientHandler / ๋ถ์๊ฒ์ฆ_ClientHandler)
- ์๊ธฐ ์ญํ ์ ์๋ฃํ๊ณ ๋ค์ ํธ๋ค๋ฌ ํธ์ถ
- handler Chain ํ์ํ ์ผ์ ํ๊ฐ์ง ์ผ๋งํ๊ณ ์ฒด์ธ์ฒ๋ผ ๋ค์์ผ๋ก ์ญํ
-> ํ์ฅ์ฑ, ์ฑ
์ ๋ถ๋ฆฌ ๊ตฟ
3. ๋ถ์ฐ ํธ๋ ์ด์ฑ ๋จ์ ์์คํ
๊ฐ์ ์ถ์
- ๋ก๊ทธ๋ง์ผ๋ก ์๋น์ค ์ธ๊ณผ๊ด๊ณ ์ฐพ๊ธฐ ์ด๋ ค์
- ์ด๋ฏธ ์ ๊ตฌํํด๋ ์์ค ๋ถ์ฐํธ๋ ์ด์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ง์ -> ํ์ฉํ๋ฉด ์ข์ง (๋ฐ์ดํ ๋
๋ฑ) + ์๊ฐํ **
- ํธ๋ ์ด์ฑ ๋ฟ ์๋๋ผ ์๋น์ค์์๋ ์ถ์ ํด์ ํ์ธ ํ ์ ์๊ฒ ๋ญ๊ฐ ๋ ์ฒ๋ฆฌํด์ ๋ด **
- Baggage ๋ผ๋๊ฑธ ์? ์ ์ฅํด๋๊ณ ํ๋ก๊ทธ๋จ ์ด๋์๋ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค
- ๋ง์คํน ๊ท์น, ์๋ํฌ์ค๋ ์ํธํ๋ฑ ๋ง์
-> ๋๋ฉ์ธ์ ์ง์คํ ์ ์๋ ๊ฐ๋ฐ ํ๊ฒฝ ์์ฑ (๊ฐ๋ฐํด์ผํ ๊ธฐ๋ฅ ํ์
์ ์ง์ค)
๋๋ฉ์ธ์ด ๊ฒน์ณ์ ๊ทธ๋ฐ๊ฐ ์ ๋ง ์ฌ๋ฐ๊ฒ ๋ค์๋ค. ์ด๋ฏธ ์ฐ๋ฆฌ๋ ํ๊ณ ์๋ ๊ฒ๋ ์๊ณ ๋ฐฐ์๊ฐ ๊ฒ๋ ๋ง์๋ค.
- ์ด๋ค๊ฑธ ์ด๋ป๊ฒ ๋๋์ด ์ค์ผํ ๊น?
- ์ฐ๋ฆฌ๋ ๊ทธ๋ฅ ์งค๋ผ๋ฒ๋ฆด๊ฒ ์๋๋ผ (์์
์ด๋ csv๊ฐ์๊ฑฐ ์ด๋
ธํ
์ด์
๋ง๋ค์ด์ ์ข ์ง์ ์ํด๋ณด๊ธฐ)
- ์ฑ
์์ฐ์ํจํด ์ ์ฉํด๋ณด๊ธฐ
6. ๋น ๋ฑ ๋ฐฉ์์ผ๋ก ์ต์ ์ ๊ฐ๋ฐํ๊ธฐ
์ ์
- ๋น
๋ฑ
๋ฐฉ์ : ์ฒ์๋ถํฐ ๋๊น์ง ํ๋ฒ์ ๊ฐ๋ฐ
- ์ดํฐ๋ ์ด์
๋ฐฉ์ : ๋จ์๋ณ๋ก ๊ธฐ๋ฅ์ ์ชผ๊ฐ์ด ๊ฐ๋ฐ
์ ์ด๋ ต๋ ๋น
๋ฑ
- ๊ธฐ๊ฐ์งฆ์ ์์ด๋ง์ ํด๋ผ์ด์ธํธ ๋ฉ์ฒญํจ ๊ฑ๋ค๋ ๋ชจ๋ฆ
- ํ๋ก์ ํธ ๋๋ฉ์ธ ๊ตฌ์กฐ ๋ชฉ์ ํ์
์ด๋ ค์
- ์ธ์ ๋์ด๋ ์๋ก ๋ฌธ์ ์ ์ฆ๊ฐ
๊ฐ๋ฐ ํ๋ก์ธ์ค ๊ฐ์
ํธ๋ฆฌ๊ตฌ์กฐ ์ ๋ฆฌ(๋๋ฉ์ธ๋ถ์)
- ํธ๋ฆฌ๊ตฌ์กฐ๋ก ํ๋ก์ ํธ ์ ๋ฆฌ ํด๋ณด๊ธฐ
- ์ผ์ชฝ์์ ์์ํด์ ์ค๋ฅธ์ชฝ ๋ฐฉํฅ์ผ๋ก๋ง ์งํ
- ๋ช
์์ ์ธ ์ด๋ฏธ์ง ํตํด์ ๊ตฌ์กฐ ํ์
์ฌ์์ง
๋๋ฉ์ธ ๋ถ์
- ์ต์์ ๊ฐ๋
์ค์
- ์ด๋ค ๊ฐ๋
์ด ์์ ๊ฐ๋
์ธ์ง ํ์
ํ๋๊ฒ ๊ฐ์ฅ ์ค์! **
- ์๋ชป๋ ์์์ ์๋ชป๋ ์ค๊ณ๋ฅผ ๋ง๋ ๋ค
- ํ๋ฒ์ ์ ํํ๊ฒ ํ์
ํ๋ค๋ ํ์์ ๋ฒ๋ ค๋ผ
- ๋
ผ๋ฆฌ์ ์ค๋ฅ๊ฐ ๋ฐ๊ฒฌ๋์ง ์์ ๋๊น์ง ์ ๊ฒ ์์
- ๊ฐ๋
์ ๋ํ ๋ช
ํํ ์ ์
- ํ์๊ฐ๋
๋ถ๋ฅ or ์กฐ๊ฑด or ํน์ฑ
- depth
API ์คํ ์์ฑ
- httpMethod ๊ธฐ์ค ๋ชจ๋ API
- ํผ๊ทธ๋ง์ ๋ชจ๋ request, response ์คํ์ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ์์ฑํด๋ณด๊ธฐ
- ํ์ฌ๋ ํจํด ํ๋๋ก ํ์ํ ๊ธฐ๋ฅ ์กฐ๋ฆฝ
๋ผ์ดํ์ฌ์ดํด ์ค๊ณ
- ์์ฑ,์กฐํ, ์์ , ์ญ์ ๋ฑ
- ๋ณต์กํ ๋ก์ง์ ๊ด๊ณ์ฑ ํ์
ํ๊ธฐ ์ฌ์
- ๋ช
ํํ ํธ๋์ญ์
์ ๋ฒ์ ์ง์ ๊ฐ๋ฅ
๋ฉํฐ๋ชจ๋
- ๊ตฌ์ฑ : ๋๋ฉ์ธ, ์ดํ๋ฆฌ์ผ์ด์
, ์ปจํผํฌ, ์ธํ๋ผ
-> ์ด๋ฐ์์ผ๋ก ๋๋์ด์ฌ์ฉ
- ๊ท์น
- ์๋ก ์ฐธ์กฐํ์ง ์๋๋ค.
- ์์ ํ ๊ฒฉ๋ฆฌ์ฑ ํ๋ณด
- ์ฐ๊ด๊ด๊ณ ๊ธ์ง
- ๋๋ฉ์ธ ๋ถ์์ ๊ทผ๊ฑฐํ ๋ชจ๋ ์ค๊ณ
- ์ํฐํฐ ์ด๋ ์์
- ๊ฒฉ๋ฆฌ์ฑ ์ต๋ํ / ๋๋ ์ ์์
๊ฐ๋ฅ ๋ฑ ์ฅ์
- ํผ๋ธ๋ฆญ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๊ฐ๋ ฅํ ์บก์ํ ๊ตฌํ
์ฅ์
- ๋ถ์ ์์ฒด๊ฐ ํ๋์ ๋ฌธ์
- ์ต์ํ์ ๋๋ฉ์ธ ์ดํด๋ ๋ณด์ฅ
๋๋ฉ์ธ ๋ถ์ ์ดํ
- erd ์์ฑ
- ๋ชจ๋ ๋ฐ ํจํค์ง ์์ฑ
- ์ํฐํฐ ์ด๋ ์ฝ๋ ์์ ์์ฑ
- ์ฐ๋ฆฐ ๋น
๋ฑ
์ธ๊ฐ ์ดํฐ๋ ์ด์
์ธ๊ฐ . ๋๊ธดํ๋๋ฐ ์ด๊ฒ ๋๋๊ฑฐ๋ผ๊ณ ๋ณผ ์ ์๋๊ฐ
- ๋ด ๋๋ฉ์ธ๋ค์ (์์ง ๋ชปํด๋ณธ๊ฑฐ) ํธ๋ฆฌ๊ตฌ์กฐ๋ก ๋ถ์ํด๋ณด์ ๋๋ฉ์ธ๋ถ์
- ์
๋ฌด๋ฅผ ์งํํ๋๋ฐ ์์ด ์ฒ์๋ถํฐ ๋๊น์ง ๋ถ์์ ์ด๋ ๊ฒ ์ด์ฌํ ํ์ ์ด ์๋๊ฐ ๋ฐ์ฑํ์. ์ด๋ฒ์ ๊ผญ ์ ๋๋ก ๋ค ํ๋ณด์ ์ผ์ผ์ผ
'๊ฐ๋ฐ์ํ > ์ํฐ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ค๊ณ ๊ต์ค (0) | 2024.04.02 |
---|---|
[์ธ๋ฏธ๋] chat GPT ํ์ฉ (1) | 2023.05.25 |
Effective Java Study (0) | 2022.12.01 |