220221 - TIL

Suntoryยท2022๋…„ 2์›” 21์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
33/57
post-thumbnail

โœ… ํ•œ ์ผ

๐Ÿ’ป ์ˆ˜ํ–‰ํ•œ ๊ฒƒ๋“ค

  • 2์ฃผ์ฐจ ๋ฏธ์…˜: ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ with Shine
    2์ฃผ์ฐจ ๋ฏธ์…˜์€ ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ข€ ์–ด์ƒ‰ํ–ˆ์ง€๋งŒ TDD ๊ณผ์ œ๋ฅผ ํ•˜๋ฉด์„œ ํ•œ๊ฒฐ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Shine์ด ์šฐ์—ฐ์ฐฎ๊ฒŒ TDD ๋ฐฉ์‹์œผ๋กœ ํ•ด๋ณด์ž๊ณ  ํ•˜์…”์„œ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ, ๋ฏธ์…˜ ์™ธ ํ•™์Šต ๊ฑฐ๋ฆฌ์—๋„ TDD ๊ณผ์ œ๊ฐ€ ์žˆ์–ด์„œ ์‹ ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.
    ์ฒ˜์Œ์œผ๋กœ TDD์— ์ž…๋ฌธํ–ˆ๋Š”๋ฐ, ์ฒ˜์Œ์—๋Š” ๋ญ”๊ฐ€ ์˜๋ฏธ์—†๋Š” ํ–‰๋™์„ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ๊ณผ์ œ๋ฅผ ํ•ด๋ณด๋ฉด์„œ ์ ์  ์ฝ”๋“œ์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋‹ˆ๊นŒ ํ…Œ์ŠคํŠธ ํ†ต๊ณผํ•˜๊ธฐ๊ฐ€ ์ ์  ์–ด๋ ค์›Œ์ง€๋ฉด์„œ ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ์ƒ๊ฐํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ฆฌํŒฉํ† ๋ง์„ ํ•œ ์‚ฌ์ดํด๋งˆ๋‹ค ๊ฑฐ์น˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋‹นํžˆ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
    ์ €๋…์—๋„ ๊ฐ™์ด ์„ค๊ณ„๋ฅผ ๊ณ ๋ฏผํ•˜๋ฉฐ TDD๋กœ ๋ฏธ์…˜์„ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ์ด๋‚˜ ๊ฐ์ฒด์ง€ํ–ฅ์  ์„ค๊ณ„์— ๋Œ€ํ•ด์„œ ๋งŽ์ด ๊ณ ๋ฏผํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์šด์˜์ฒด์ œ ๊ฐ•์˜ ์ˆ˜๊ฐ•

๐Ÿ“ ๋ฐฐ์šด ๊ฒƒ๋“ค

TDD์˜ ๊ธฐ๋ณธ ์‚ฌ์ดํด

TDD๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ RED(์‹คํŒจ) - GREEN(ํ†ต๊ณผ) - YELLOW(๋ฆฌํŒฉํ† ๋ง)์˜ ์‚ฌ์ดํด์„ ๊ฑฐ์นœ๋‹ค.

  1. ๋นจ๊ฐ• - ์‹คํŒจํ•˜๋Š” ์ž‘์€ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ปดํŒŒ์ผ์กฐ์ฐจ ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.
  2. ์ดˆ๋ก - ๋นจ๋ฆฌ ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๊ฒŒ๋” ๋งŒ๋“ ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์–ด๋–ค ์ฃ„์•…์„ ์ €์งˆ๋Ÿฌ๋„ ์ข‹๋‹ค.
  3. ๋ฆฌํŒฉํ† ๋ง - 2๋‹จ๊ณ„์—์„œ ์ƒ๊ฒจ๋‚œ ๋ชจ๋“  ์ค‘๋ณต์„ ์ œ๊ฑฐํ•œ๋‹ค.

RED(์‹คํŒจ)

TDD๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„  ๋จผ์ € ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•ด์•ผ ํ•œ๋‹ค. ์ฒ˜์Œ์—” ์™œ ์ด๋ ‡๊ฒŒ ํ•˜์ง€?๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•ต์‹ฌ์€ ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๊นŒ์ง€ ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๋Š” ๋ฐ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์š”๊ตฌ์‚ฌํ•ญ์ด๋‚˜ ์ฝ”๋“œ๋กœ๋ถ€ํ„ฐ ๊ธฐ๋Œ€ํ•˜๋Š” ๋ฐ”๋ฅผ ๋ช…ํ™•ํžˆ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค.

์ฒ˜์Œ์— ์ƒ๊ฐ๋‚˜๋Š” ๋Œ€๋กœ ์ฝ”๋“œ๋ฅผ ์งœ๋‹ค๊ฐ€, ํ…Œ์ŠคํŠธ๊ฐ€ ์–ด๋ ต๋‹ค๊ฑฐ๋‚˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ž˜๋ชป ์ ‘๊ทผํ•˜๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๋จผ์ € ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ณผ์ •์—์„œ ์ด ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•ด์•ผ ํ•˜๊ณ  ๊ธฐ๋Œ€ ๊ฒฐ๊ณผ๋Š” ๋ฌด์—‡์ธ์ง€๋ฅผ ์ •๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ํ…Œ์ŠคํŠธ ํ†ต๊ณผ๋ฅผ ์œ„ํ•ด ๋ฉ”์„œ๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋„ ํ›จ์”ฌ ์ˆ˜์›”ํ•ด์ง€๋Š” ์›๋ฆฌ๋กœ ์ดํ•ดํ–ˆ๋‹ค.

๋˜ํ•œ ์ดˆ๊ธฐ์— ์„ค๊ณ„๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค. ๋ณดํ†ต์€ ๋ชจ๋“  ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ๋ฅผ ์งœ๊ณ  ๋งˆ์ง€๋ง‰์— ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ, ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ์ž˜๋ชป๋œ ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด ๊ทธ ๋•Œ ์ฝ”๋“œ๋ฅผ ๋‹ค ๋œฏ์–ด๊ณ ์ณ์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋กœ ๊ฒ€์ฆํ•˜๋ฉด์„œ ๊ทธ ๊ณผ์ •์—์„œ ์ž˜๋ชป๋œ ์„ค๊ณ„๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ฑฐ๋‚˜ ๋ฆฌํŒฉํ† ๋งํ•  ์—ฌ์ง€๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ข€ ๋” ์•ˆ์ •์ ์œผ๋กœ ๊ฐœ๋ฐœํ•ด๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

GREEN(ํ†ต๊ณผ)

ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ์‹ค์ œ๋กœ๋Š” ์ •๋ง ์ง€์—ฝ์ ์ด๋”๋ผ๋„ ํ†ต๊ณผ๋งŒ ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‹ค๋ฅธ ์ผ€์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด์„œ ์‹คํŒจํ•˜๋Š” ์ผ€์ด์Šค๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ , ๋‹ค์‹œ ๋ณด์™„ํ•˜๋Š” ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์™„์„ฑํ•ด๋‚˜๊ฐ„๋‹ค๊ณ  ํ•œ๋‹ค.
๊ฐ€๋ น, 2+3=5๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•œ๋‹ค๊ณ  ํ•˜๋ฉด, ์ฒ˜์Œ์—๋Š” ํ„ฐ๋ฌด๋‹ˆ์—†๊ฒŒ๋„ return 5์™€ ๊ฐ™์ด ๋‹น์—ฐํžˆ ์„ฑ๊ณตํ•˜๋„๋ก ๋งŒ๋“ ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋„“ํ˜€ ๋‹ค์–‘ํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ๊ณผ์ •์—์„œ ๋กœ์ง์„ ๊ตฌ์ฒดํ™”ํ•ด๋‚˜๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋„“์€ ๋ฒ”์œ„์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์น˜๊ฒŒ ๋˜๊ณ  ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์ค„์–ด๋“ค๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

YELLOW(๋ฆฌํŒฉํ† ๋ง)

์œ„ ๊ณผ์ •์—์„œ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๊ฒŒ๋งŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊น”๋”ํ•œ ์ฝ”๋“œ๋ฅผ ์งœ๋ ค๊ณ  ๋…ธ๋ ฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ…Œ์ŠคํŠธ๊ฐ€ ๋ชจ๋‘ ํ†ต๊ณผํ•˜๋ฉด ๊ทธ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•œ ์ค‘๋ณต ์ฝ”๋“œ๋‚˜ ์•ˆ์ข‹์€ ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ† ๋งํ•ด๋‚˜๊ฐ„๋‹ค. ์‹ค์ œ๋กœ ์ด ๊ณผ์ •์„ ๋ช‡ ๋ฒˆ ๊ฑฐ์น˜๋‹ˆ ๊ตฐ๋”๋”๊ธฐ์—†์ด ๊น”๋”ํ•œ ๋ถ€๋ถ„๋งŒ ๋‚จ์€ ์ฝ”๋“œ๊ฐ€ ๋˜์—ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ํ•„์š”ํ•œ ํ…Œ์ŠคํŠธ๋„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค.

TDD vs BDD

์นด์นด์˜ค if - "Kotest๊ฐ€ ์žˆ๋‹ค๋ฉด TDD ๋ฌป๊ณ  BDD๋กœ ๊ฐ€!"๋ฅผ ๋ณด๊ณ  ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

TDD (Test-Driven Development)

์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•  ๋•Œ๊นŒ์ง€ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

TDD vs !TDD

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๊ณ  ๋ชจ๋‘ TDD์ธ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์šฐ์„ ํ•˜๊ณ  ๊ฒ€์ฆ์„ ์œ„ํ•ด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ผ๋ฐ˜์ ์œผ๋กœ TDD๋กœ ๋ณผ ์ˆ˜ ์—†๋‹ค.

TDD์˜ ํŠน์ง•

  • ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ…Œ์ŠคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ์ด๋ฏ€๋กœ Testable ํ•ด์ง„๋‹ค.
    • ๊ฐ ๋ชจ๋“ˆ์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ชจ๋“ˆ์˜ ํฌ๊ธฐ๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ค„์–ด๋“ ๋‹ค.
    • ๊ฐ์ฒด๊ฐ„์˜ Coupling๋„ ์ค„์–ด๋“ค์–ด ์œ ์ง€/๋ณด์ˆ˜๊ฐ€ ์ˆ˜์›”ํ•˜๊ฒŒ ๋œ๋‹ค.

์™œ TDD๋ฅผ ์•ˆํ• ๊นŒ?

  • ์‹œ๊ฐ„์ ์ธ ๋น„์šฉ์œผ๋กœ ์ธํ•œ ๊ธฐ์ˆ  ๋ถ€์ฑ„์˜ ์•…์ˆœํ™˜
    • TC ์ฐฝ์ž‘์˜ ๊ณ ํ†ต
    • ์ผ์ • ์ง€์—ฐ ์••๋ฐ•
    • Test ํฌ๊ธฐํ•œ ๊ฐœ๋ฐœ/๋ฐฐํฌ

BDD (Behavior-Driven Development)

  • ๊ฐœ๋ฐœ์ž์™€ ๋น„๊ฐœ๋ฐœ์ž๊ฐ„์˜ ํ˜‘์—… ๊ณผ์ •์„ ๋…น์—ฌ๋‚ธ ๋ฐฉ๋ฒ•
  • BDD๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•จ์— ๋”ฐ๋ผ ์„ค๊ณ„ ์—ญ์‹œ ํ–‰์œ„์˜ ์ค‘์‹ฌ์ด ๋˜๋Š” ๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„๊ฐ€ ๋จ
  • Given/When/Then์— ๋”ฐ๋ผ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
    • Given: ์ฃผ์–ด์ง„ ํ™˜๊ฒฝ
    • When: ํ–‰์œ„
    • Then: ๊ธฐ๋Œ€ ๊ฒฐ๊ณผ
  • ~์ผ ๋•Œ, ~์ธ ์ƒํ™ฉ์—์„œ -> ~ํ•˜๋ฉด -> ~ํ•œ๋‹ค
  • ๊ธฐํš์„œ์˜ ์–‘์‹๊ณผ ๋™์ผํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

TDD์™€ BDD์˜ ์ฐจ์ด

  • TDD : add(1,1)์ด 2์ธ์ง€ ํ™•์ธ
  • BDD : ์‚ฌ์šฉ์ž๊ฐ€ "="๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ, 1+1์˜ ๊ฐ’ 2๊ฐ€ ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋Š”์ง€ ํ™•์ธ

-> BDD๋Š” ์œ ์ € ๋™์ž‘์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ปค๋ฒ„ํ•˜๋Š” ํ…Œ์ŠคํŠธ ์˜์—ญ์ด๊ณ , TDD๋Š” ์œ ์ € ๋™์ž‘์— ๊ด€์—ฌํ•˜๋Š” ๋ชจ๋“ˆ๋“ค์˜ ๊ฒ€์ฆ์„ ๋งก๋Š”๋‹ค. ์ฆ‰, ์–ด๋Š ํ•˜๋‚˜๋งŒ์œผ๋กœ๋Š” ๋ชจ๋‘ ์ปค๋ฒ„ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— BDD ์‚ฌ์ดํด์— TDD ์‚ฌ์ดํด์ด ๊ฒฐํ•ฉ๋œ ์ƒํƒœ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

๊ธฐํš์ด ๋ˆ„๋ฝ๋˜๋Š” ๊ฒฝ์šฐ์—, ๋‹ค์‹œ ๊ธฐํš๊ณผ ์„ค๊ณ„๋ฅผ ๊ฑฐ์ณ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๋ฆฌ์Šคํฌ๊ฐ€ ์žˆ๋‹ค. BDD๋ฅผ ํ†ตํ•œ๋‹ค๋ฉด ๊ธฐํš์ด ๊ฒ€ํ† ๋˜๋Š” ๊ณผ์ •์—์„œ ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ๋นˆํ‹ˆ์„ ๋ฐœ๊ฒฌํ•˜์—ฌ ์‹ค์ œ ์ฝ”๋“œ ์ž‘์„ฑ ์ „์— ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

๐Ÿ’ช ์ข‹์€ ์ 

  • ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋ฉด์„œ ์ข€ ๋” ํ˜‘์—…๋Šฅ๋ ฅ์„ ๊ธฐ๋ฅผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • TDD์™€ BDD์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ฉด์„œ ์˜ˆ์ „์— ์ž‘์„ฑํ•˜๋˜ ๋‹จ์œ„ํ…Œ์ŠคํŠธ๊ฐ€ BDD์Šค๋Ÿฝ๊ฒŒ ์ž‘์„ฑ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋๋‹ค.
  • TDD๋ฅผ ์ง์ ‘ ์ง„ํ–‰ํ•ด๋ณด๋ฉฐ ์–ด๋–ค ๊ด€์ ์—์„œ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ์‹์ธ์ง€ ์ฒด๊ฐํ•ด๋ณด์•˜๋‹ค.

๐Ÿ‘€ ์•„์‰ฌ์šด ์ 

  • ์•„์นจ์— ์กฐ๊ธˆ ์ผ์ •์ด ๊ฒน์ณ์„œ ์Šคํฌ๋Ÿผ์— ์ ๊ทน์ ์œผ๋กœ ์ฐธ์—ฌํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.

๐Ÿ—’ ๊ฐœ์„  ๋ฐฉํ–ฅ

  • ๋˜๋„๋ก ์Šคํฌ๋Ÿผ ์‹œ๊ฐ„์—๋Š” ์ผ์ •์„ ์žก์ง€ ๋ง์•„์•ผ๊ฒ ๋‹ค ใ… ใ… 
profile
์ฒœ์ฒœํžˆ, ํ•˜์ง€๋งŒ ๊พธ์ค€ํžˆ ๊ทธ๋ฆฌ๊ณ  ์—ด์‹ฌํžˆ

0๊ฐœ์˜ ๋Œ“๊ธ€