728x90

TIL, WIL/TIL๐Ÿ“˜ 86

04. 06 TIL : ์ธํ„ฐ๋„ท/ ์ „์†ก ๊ณ„์ธต(IP, TCP, UDP)

IP ํ”„๋กœํ† ์ฝœ- ์ง€์ •ํ•œ IP ์ฃผ์†Œ์— ๋ฐ์ดํ„ฐ๋ฅผ ํŒจํ‚ท ๋‹จ์œ„๋กœ ์ „๋‹ฌํ•œ๋‹ค IP ํ”„๋กœํ† ์ฝœ์˜ ๋‹จ์ - ํŒจํ‚ท์„ ๋ฐ›์„ ๋Œ€์ƒ์ด ์—†๊ฑฐ๋‚˜ ์„œ๋น„์Šค ๋ถˆ๋Šฅ ์ƒํƒœ์—ฌ๋„ ํŒจํ‚ท์„ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค- ํŒจํ‚ท์ด ์ค‘๊ฐ„์— ์‚ฌ๋ผ์ ธ๋„ ์†ก์‹  ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ทธ ์†์‹ค ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ๋ฐฉ๋ฒ•์ด ์—†๋‹ค- ํŒจํ‚ท์„ ๋ณด๋‚ธ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค(๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค)- ๊ฐ™์€ IP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ฒ„ ๋‚ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๊ตฌ๋ถ„์ด ์–ด๋ ต๋‹ค IP ํ”„๋กœํ† ์ฝœ์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•œ ํ”„๋กœํ† ์ฝœ : TCP/UDP*cf) TCP/IP ํ”„๋กœํ† ์ฝœ (OSI 7๊ณ„์ธต๊ณผ ๋น„๊ต ๊ฐ€๋Šฅ)๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ๊ทœ์น™๊ณผ ์ ˆ์ฐจ๋ฅผ ์ •ํฌํ•˜๋ฉฐ, TCP/IP ํ”„๋กœํ† ์ฝœ์„ ์ค‘์‹ฌ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ๋‹ค.1) ์‘์šฉ ๊ณ„์ธต์‚ฌ์šฉ์ž์™€ ์ง์ ‘ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ณ„์ธต์œผ๋กœ ๋ฐ์ดํ„ฐ ํ˜•์‹ ๋ณ€ํ™˜, ์•”ํ˜ธํ™” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ ์ œ๊ณต : HTTP, FTP, ..

03. 07 TIL : ์นดํ”„์นด ์„ธํŒ… ๋ฐ ์‹คํ–‰, ํ…Œ์ŠคํŠธ

์Šคํ”„๋ง ์นดํ”„์นด ์‹คํ–‰ํ•˜๊ธฐ 1. ์•„ํŒŒ์น˜ ์ œ๊ณต ์นดํ”„์นด ๋‹ค์šด๋กœ๋“œ ๋ฐ ์••์ถ•ํ’€๊ธฐ 2. ์••์ถ• ํ‘ผ ํด๋”๋กœ ์ด๋™ํ•ด 2-1) Zookeeper ์‹คํ–‰ ~ ๊ธฐ๋ณธํฌํŠธ : 2181bin>zookeeper-server-start.sh config/zookeeper.properties  2-2) Kafka ์„œ๋ฒ„ ์‹คํ–‰ ~ ๊ธฐ๋ณธํฌํŠธ : 9092bin>zookeeper-server-start.sh config/server.properties (config/server.properties์—์„œ ์„ค์ • ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ (์˜ˆ: listeners=PLAINTEXT://localhost:9092) 3. ํ† ํ”ฝ(๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋‹จ์œ„) ์ƒ์„ฑ ex) ์ฑ„ํŒ…์‹œ์Šคํ…œ์šฉ ํ† ํ”ฝ : bin/kafka-topics.sh --create --topic chat-messages --..

02. 28 TIL : Statc ์ƒํƒœ ๊ฐ’ ์„ ์–ธ(์ง์ ‘ ์ฐธ์กฐ) vs RDB ๋ฐ์ดํ„ฐ ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•œ ์กฐํšŒ

์š”์ฆ˜ ์‹ค๋ฌด ์ค‘ ํ•ด๋‹น ํŠธ๋ ˆ์ด๋“œ ์˜คํ”„์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ๋งŽ์ด ํ•˜๊ฒŒ ๋œ๋‹ค Staic์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ์™€ ์ด๋ฅผ DB์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ์˜ ํŠธ๋ ˆ์ด๋“œ ์˜คํ”„์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์ •๋ฆฌ 1) Static ์žฅ์ - DB ํ˜ธ์ถœ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค- DB ์ ‘๊ทผ ์‹คํŒจํ•  ๊ฒฝ์šฐ์—๋„ ๋กœ์ง์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š๋Š”๋‹ค- ์ฝ”๋“œ ์ง์ ‘ ์ฐธ์กฐ ๋ฐฉ์‹์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ ๊ฐ„ ๋ถˆํŽธํ•จ ๋ฐœ์ƒ ๊ฐ€์žฅ ํ•ต์‹ฌ์ด ์ง์ ‘ ์ฐธ์กฐ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ ์ธ ๋“ฏ ํ•˜๋‹ค.ํ•ด๋‹น ์ฐธ์กฐ ๋ฐฉ์‹์„ ํ†ตํ•ด ์ƒํƒœ ๊ฐ’์— ๋Œ€ํ•ด ์ปดํŒŒ์ผ ์‹œ์ ์—์„œ ๊ฐ’์˜ ํƒ€์ž…์„ ์ ๊ฒ€ํ•  ์ˆ˜ ์žˆ๊ณ ,ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ DB์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ, ๋ฆฌํŒฉํ† ๋ง ์‹œ ๊ฐ’ ์กฐํšŒ๋ฅผ ์œ„ํ•ด IDE๊ฐ€ ์•„๋‹Œ DB ํ”„๋กœ๊ทธ๋žจ(๋ณ„๋„๋กœ ๋‚˜๋ˆ ์„œ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ)์„ ์‹คํ–‰ํ•ด์„œ ์กฐํšŒํ•ด์•ผ ํ•œ๋‹ค 2) DB ๊ด€๋ฆฌ์žฅ์ - ์ƒํƒœ ๊ฐ’์˜ ์ˆ˜์ • ๋ฐœ์ƒ ์‹œ ์„œ๋ฒ„์˜ ์žฌ๊ธฐ๋™ ์—†์ด ๋ฐ”๋กœ ๋ฐ˜์˜ ๊ฐ€๋Šฅ- ๊ฐœ๋ฐœ ..

02. 26 TIL : Collectors.groupingBy() ์™ธ ~ List<Object> list๋ฅผ ํŠน์ • ์š”์†Œ๋กœ mapping

list list ์•ˆ์˜ ์š”์†Œ๋ฅผ ๋ถ„๋ฅ˜ํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ stearm().fileter() ๋ฐฉ๋ฒ•์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค ํ•˜์ง€๋งŒ ์ด ๋ฐฉ๋ฒ•์œผ๋ก  ํ•„ํ„ฐ์— ํ•ด๋‹นํ•˜๋Š” ์š”์†Œ๊ฐ€ ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐœ๋ผ๋‚ด๋Š” ๊ฒƒ๋ฐ–์— ํ•  ์ˆ˜ ์—†๋‹ค. ํŠน์ • ์š”์†Œ์˜ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ „์ฒด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ,strream().collect(Collectors.groupingBy(Object:getField)); ๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค ์ด ๋ฐฉ์‹์„ ํ†ตํ•ด ํ•˜๋‚˜์˜ Field๋กœ ๋ถ„๋ฅ˜๋œ Map> ํƒ€์ž…์ธ map์ด ์ƒ์„ฑ๋œ๋‹ค. ์ด์ œ ๋ฆฌ์ŠคํŠธ ๋ณ„๋กœ ๋ถ„๋ฅ˜๋œ ์ธ์Šคํ„ด์Šค์— ์„œ๋กœ ๋‹ค๋ฅธ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ๋ฐฉ๋ฒ•์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋ฉฐ, GPT๊ฐ€ ์ถ”์ฒœํ•ด์ฃผ๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š”, 1) ๋ฆฌ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋ถ„๋ฅ˜ Map> groupedSetMap = stream() .collect..

02. 24 TIL : RDB ์„ค๊ณ„ ๊ฐ„ ์ธ๋ฑ์Šค๋ฅผ ์œ„ํ•œ PK ์ˆœ์„œ

PK๋ฅผ ์„ค์ •ํ•  ๋•Œ,PK์˜ ์ฒซ๋ฒˆ์งธ ์ˆœ์„œ๋Š” ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ์Šค์บ” ์‹œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ปฌ๋Ÿผ์ด ์˜ค๋Š” ๊ฒƒ์ด ์ข‹๋‹ค ์ด๋Š” ๋งˆ์Šคํ„ฐ - ํŠธ๋žœ์ ์…˜ ํ…Œ์ด๋ธ” ๊ฐ„ ์ข…์† ๊ด€๊ณ„์˜ ์ˆœ์„œ๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ,ํ•ด๋‹น ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€์žฅ ๋จผ์ € ์ฐพ๋Š” PK ์ˆœ์„œ๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ(์‹ค์ œ๋กœ๋„ ์ธ๋ฑ์‹ฑ ๊ณผ์ •์—์„œ ํ•ด๋‹น PK๋ฅผ ๋จผ์ € ์„ค์ •ํ•ด์•ผ ์†๋„์—๋„ ๋„์›€์ด ๋œ๋‹ค)

02. 19 TIL : GPT API ๋„์ž… ๊ฐ„ ์ฐธ๊ณ ํ•  ์  : ์›น ๊ฒ€์ƒ‰์— ๋Œ€ํ•ด

** GPT API ๋„์ž… ์‹œ 2025๋…„ ํ˜„์žฌ, ์–ด๋–ค API ๋ชจ๋ธ๋„ ์›น ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค. ๋”ฐ๋ผ์„œ, ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ,  1) ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์žˆ๋Š” ChatGPT (Pro ์‚ฌ์šฉ์ž์šฉ GPT-4-turbo Browsing ๊ธฐ๋Šฅ)ChatGPT Plus๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด OpenAI์˜ ์›น ๋ธŒ๋ผ์šฐ์ง• ๊ธฐ๋Šฅ์ด ํ™œ์„ฑํ™”๋˜์–ด URL์„ ์ง์ ‘ ์ž…๋ ฅํ•˜๊ณ  ๋‰ด์Šค ๋‚ด์šฉ์„ ์š”์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ทธ๋Ÿฌ๋‚˜ API์—์„œ๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค2) Python/Java ๋“ฑ์˜ ์›น ์Šคํฌ๋ž˜ํ•‘ + GPT API ์กฐํ•ฉ (์ถ”์ฒœ โœ…)๋‰ด์Šค ๊ธฐ์‚ฌ์˜ HTML์„ ํฌ๋กค๋งํ•œ ํ›„, ํ•ด๋‹น ํ…์ŠคํŠธ๋ฅผ GPT API์— ์ „๋‹ฌํ•˜์—ฌ ์š”์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.BeautifulSoup (Python) ๋˜๋Š” Jsoup (Java) ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›น์—์„œ ๊ธฐ์‚ฌ ๋‚ด์šฉ..

01. 06 TIL : YEARWEEK()์˜ ์—ฐ๋ง ์—ฐ์ดˆ ๊ฐ’ ์ด์Šˆ

YEARWEEK() ์ฟผ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ๊ธฐ๊ฐ„ ์‚ฌ์น™ ์—ฐ์‚ฐ์˜ ๊ฒฝ์šฐ, ์—ฐ๋ง ์—ฐ์ดˆ ๊ฐ„ ์—ฐ๋„๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋ฌธ์ œex) YEARWEEK(2024-12-29) + 1 = '202452' + '000001'์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ์ด ๊ฒฐ๊ณผ ๊ฐ’์€ '202453' ~ 2024๋…„์˜ ์ฃผ์ฐจ๋Š” 52์ฃผ์ฐจ๊นŒ์ง€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ•ด๋‹น ์กฐ๊ฑด์ ˆ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋ฌด๊ฒƒ๋„ ๋‚˜์˜ค์ง€ ์•Š๊ฒŒ ๋œ๋‹ค. ํ•ด๊ฒฐYEARWEEK(DATE_ADD(2024-12-29, INTERVAL 1 WEEK)) ๋ฐฉ์‹์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ํ•ด๋‹น ํ•จ์ˆ˜๋Š” ์ •์ƒ์ ์œผ๋กœ '202501'์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋œ๋‹ค. ๋นผ๊ธฐ ๋“ฑ ๋‹ค๋ฅธ ์‚ฌ์น™์—ฐ์‚ฐ์˜ ๊ฒฝ์šฐ์—๋„ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค

12. 24 TIL : DB์˜ ๋Œ€์†Œ๋ฌธ์ž ๋ณ„์นญ ๊ตฌ๋ถ„

๋ฌธ์ œ : ๋กœ์ปฌ์—์„œ๋Š” ์ด์ƒ ์—†์ด ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์œผ๋กœ ์˜ฌ๋ฆฌ๋ฉด ํ˜ธ์ถœ๋˜์ง€ ์•Š์Œ-> ์™œ ๊ทธ๋Ÿฐ์ง€ ์‚ดํŽด๋ณด๋‹ค๊ฐ€ ์ฟผ๋ฆฌ๋ฅผ Dbeaver๋กœ ๋‚ ๋ ค๋ณด๋‹ˆ๊นŒ ๋ณ„์นญ์˜ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค ์‹œ๋„ํ•œ ๊ฒƒ :1) IDE ์ด์Šˆ์ธ์ง€ ๊ตฌ๊ธ€๋ง : ๊ด€๋ จ ๋‚ด์šฉ ์—†์Œ2) ํŒ€์›๋“ค์—๊ฒŒ ๊ณต์œ  : DB ์„ค์ • ๋•Œ๋ฌธ์ด๋ผ๋Š” ์ ์„ ์•Œ๋ ค์ฃผ์…จ๋‹ค ํ•ด๋‹ต :MYSQL์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ…Œ์ด๋ธ” ๋ฐ ๋ณ„์นญ์˜ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์ง€๋งŒ,์ดˆ๊ธฐ ์„ค์ • ๋ฐ ์ดํ›„์— ๋ณ€๊ฒฝ(MYSQL ์žฌ์‹œ์ž‘ ํ•„์š”)์„ ํ†ตํ•ด ๊ตฌ๋ถ„ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค my.cnf์—์„œ lower_case_table_names ์„ค์ • lower_case_table_names์˜ ๊ฐ’์„ 1๋กœ ์„ค์ •์‹œ : ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ X, 0์œผ๋กœ ์„ค์ • ์‹œ : ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ O

12. 06 TIL : ๊ตฌ๋…ํ˜• ๊ฒฐ์ œ ๊ตฌํ˜„ ๊ฐ„ ๋ฐฐ์šด ์ 

ํ† ์Šค ํŽ˜์ด๋จผ์ธ ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒฐ์ œ์— ๋Œ€ํ•ด ํ™•์‹คํ•˜๊ฒŒ ๊ฒฝํ—˜์„ ์Œ“์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด๋ฒˆ ์Šคํ”„๋ฆฐํŠธ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋‹ค๋ฃฌ JSONObject์ธ๋“ฏ ํ•˜๋‹ค ๊ทธ ์ „์—” ๋ณ„ ์ƒ๊ฐ์—†์ด ์‚ฌ์šฉํ•˜๋˜ObjectMapper, JSONObejct, JsonObject์˜ ์ฐจ์ด(์‹ฌ์ง€์–ด JSONObject๋Š” org.json.simple.JSONObject์™€ org.json.JSONObject ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผํ•  ์ง€ ๊ณ ๋ฏผ์ด ํ•„์š”ํ•˜๋‹ค) ๋‹ค์Œ ์ฃผ์— ํ”„๋ก ํŠธ์™€ ์†Œํ†ต ๋ฐ QA๋ฅผ ํ†ตํ•ด, ์ถœ์‹œ ์ „ ์ˆ˜์ •์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•  ์ƒ๊ฐ์— ๊ธฐ๋ถ„์ด ๋“ค๋œฌ๋‹ค

12. 04 TIL : ObjectMapper vs JSONObject

ํŠน์ง• Jackson - ObjectMapper json-simple - JSONObject ๋ณต์žกํ•œ JSON ์ฒ˜๋ฆฌ ๋›ฐ์–ด๋‚จ (์ž๋ฐ” ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ, ์ค‘์ฒฉ ๊ตฌ์กฐ ์ฒ˜๋ฆฌ) ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ์— ์ ํ•ฉ (๋ณต์žกํ•œ ๊ตฌ์กฐ๋Š” ์ฒ˜๋ฆฌํ•˜๊ธฐ ์–ด๋ ค์›€) ์„ฑ๋Šฅ ์šฐ์ˆ˜ (ํฐ JSON์„ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ) ๋งค์šฐ ๋น ๋ฆ„ (๊ฐ„๋‹จํ•œ JSON ํŒŒ์‹ฑ ์‹œ ์„ฑ๋Šฅ ์šฐ์ˆ˜) ํƒ€์ž… ๋งคํ•‘ ๊ฐ•๋ ฅํ•จ (์ž๋ฐ” ๊ฐ์ฒด์™€ JSON ๋งคํ•‘, ์ œ๋„ค๋ฆญ ์ง€์›) ์ œํ•œ์  (JSONObject๋งŒ ์ œ๊ณต, ์ž๋ฐ” ๊ฐ์ฒด์™€์˜ ๋งคํ•‘ ์—†์Œ) ์ปค์Šคํ…€ ์ง๋ ฌํ™”/์—ญ์ง๋ ฌํ™” ์ง€์› (์ปค์Šคํ…€ ์ง๋ ฌํ™” ๋ฐ ์—ญ์ง๋ ฌํ™” ๊ฐ€๋Šฅ) ์ง€์›ํ•˜์ง€ ์•Š์Œ ..

728x90