๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ์ƒํ™œ/์ˆ˜ํ„ฐ๋””

Spring camp 2025

by cocococo331 2025. 7. 25.

ํšŒ์‚ฌ ์นญ๊ตฌ๋“ค ๋•์— ๊ฐ‘์ž๊ธฐ ์ทจ์†Œํ‘œ๋ฅผ ์žก์•„ ์ฐธ์„ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

์ฃผ๋ง์ด๋ผ ์•„์นจ์— ๋ˆˆ๋–ณ์„ ๋•Œ ์ž ์‹œ ๊ฐ€๊ณ  ์‹ถ์ง€ ์•Š์•˜์—ˆ๋Š”๋ฐ

๋ง‰์ƒ ๊ฐ”๋”๋‹ˆ 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