• Home
  • About
    • on Weekend photo

      on Weekend

      ๐™Ž๐™ฉ๐™ช๐™™๐™ฎ๐™ž๐™ฃ๐™œ

    • Learn More
    • Instagram
    • Github
  • Archive
    • All Posts
    • All Tags
    • All Categories
  • Categories
    • Problem Solving
    • TIL
    • Study
    • Etc
    • ํ•„์‚ฌ
  • Projects

2021.01.14 TIL

14 Jan 2021

๐“๐จ๐๐š๐ฒ ๐ˆ ๐‹๐ž๐š๐ซ๐ง๐ž๐

๐Ÿ’ป

โ–ถ ๐‘ท๐’“๐’๐’ƒ๐’๐’†๐’Ž ๐‘บ๐’๐’๐’—๐’Š๐’๐’ˆ

Python ๋ฌธ์ œํ’€์ด๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒธ์†ํ•˜๊ฒŒ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ž๋Š” ๋งˆ์Œ๊ฐ€์ง์œผ๋กœ Greedy Algorithm๋ถ€ํ„ฐ ํ’€์–ด๋‚˜๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 1์›”๋‹ฌ ์•ˆ์— solved.ac Platinum์„ ๋‹ค๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค. (์‚ฌ์‹ค ๋ฐฉ๊ธˆ๊นŒ์ง€๋„ Bronze๋กœ ๋œจ๊ธธ๋ž˜, ์žฅ๋ฒฝ์ด ์ •๋ง ๋†’์€๊ฐ€๋ณด๋‹ค ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค๋งŒ ํ”„๋กœํ•„๋ž€ ๊ฐ€์žฅ ํ•˜๋‹จ์˜ ๊ฐ•์ œ๋กœ ์ •๋ณด๋ฅผ ๊ฐฑ์‹ ์„ ํด๋ฆญํ•˜๋‹ˆ ๋ฌธ์ œ ํฌ๋กค๋ง์ด ์ œ๋Œ€๋กœ ์™„๋ฃŒ๋˜์–ด ๊ณจ๋“œ๊ฐ€ ๋˜์—ˆ๋„ค์š”!)
Greedy Algorthm ๋‹จ์–ด ์ˆ˜ํ•™๊ณผ ์บ ํ•‘์„ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์–ด ์ˆ˜ํ•™์€ ํ’€์ด๋ฅผ ๋ณด์•˜๋Š”๋ฐ, ๊ธฐ๋ณธ ๋ฌธ๋ฒ•๋งŒ ๋—์„ ๋ฟ ์‹ฌํ™” ๋ถ€๋ถ„์„ ๊ณต๋ถ€ํ•˜์ง€ ๋ชปํ–ˆ๋˜ ์ €๋กœ์„œ๋Š” ๊ต‰์žฅํžˆ ์ถฉ๊ฒฉ์ ์ธ ํ‘œํ˜„๋ ฅ์— ๋†€๋ž์Šต๋‹ˆ๋‹ค. ๊ณต๋ถ€๋ฅผ ํ†ตํ•ด lambda์™€ map ๊ทธ๋ฆฌ๊ณ  list comprehension์„ ์ดํ•ดํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

โ–ถ ๐™‚๐™ž๐™ฉ๐™๐™ช๐™—

(1) BBBBFF ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ์—์„œ ์–ด์ œ ํ…Œ์ŠคํŠธ์šฉ github Issue ๋“ฑ๋ก์„ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.
(2) TIL ์ž‘์„ฑ๊ณผ Github ์ •๋ฆฌ๊ฐ€ ๋งž๋‹ฟ์„ ์ˆ˜ ์žˆ๋„๋ก ์—ฌ๋Ÿฌ๋ชจ๋กœ ๊ณ ๋ฏผํ•ด๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— withBackendRoadmap๊ณผ ProblemSolving ๋“ฑ ์‹œํ—˜์ ์ธ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ๋ฅผ ์šด์˜ํ•ด๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„ ์ ์œผ๋กœ ์ ์šฉ ์ค‘์ธ ๋ฐฉ์‹์€ (1) ์ฝ”๋“œ ์œ„์ฃผ์˜ ๊ฒŒ์‹œ๊ธ€(ํ•™์› ์ˆ˜๊ฐ• ์ •๋ฆฌ๋‚ด์—ญ)๊ณผ, ์ค„๊ธ€์ด ํฌํ•จ๋˜๋‚˜ ์ดํ›„์— ํŒŒ์ƒ๋˜๋Š” ๋‹ค์ˆ˜์˜ ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒŒ์‹œ๊ธ€(ProblemSolving)์€ Repository์— ์ž‘์„ฑํ•œ ํ›„ ์ถ”ํ›„ README.md๋ฅผ ์ž‘์„ฑ, TIL์— ์งง๊ฒŒ ์—…๋กœ๋“œ (2) ๊ธด ์ค„๊ธ€ ์œ„์ฃผ์˜ ๊ฒŒ์‹œ๊ธ€(์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„์„๊ณผ ์ž๊ธฐ๊ณ„๋ฐœ ๊ด€๋ จ ๊ฒŒ์‹œ๊ธ€) ์ค‘ ๋‹จํŽธ์ ์ด๊ณ  ์งง์€ ๋‚ด์šฉ์€ ๊นƒ๋ธ”๋กœ๊ทธ์— ์—…๋กœ๋“œ ํ•˜๋Š” ๋ฐฉ์‹์„ ์ฑ„ํƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

โ–ถ ๐’๐ฉ๐ซ๐ข๐ง๐ 

์•„๋ž˜์˜ ๋‚ด์šฉ์„ ๊ณต๋ถ€ํ•œ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ๋ฅผ ์—…๋กœ๋“œํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Java Enum

  • java enum์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จํ•˜์—ฌ ์šฐ์•„ํ•œํ˜•์ œ๋“ค ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ์˜ Java Enum ํ™œ์šฉ๊ธฐ๋ฅผ ์ฝ๊ณ  ๊ณต๋ถ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    • enum type ๋ณ€์ˆ˜๋Š” stack ์˜์—ญ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์‚ฌ์šฉ๋œ Grade๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค์–ด๋ณด์ž๋ฉด, Grade grade1 = Grade.BASIC; ์„ ์„ ์–ธํ•˜๋ฉด grade1์€ ์—ด๊ฑฐ ์ƒ์ˆ˜์ธ Grade.BASIC๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š”, Grade๊ฐ€ ์ €์žฅ๋œ stack์˜ ๋ฒˆ์ง€๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ grade1๊ณผ Grade.BASIC์€ ๊ฐ™์€ ๋ฒˆ์ง€๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”, ๋™์ผํ•œ ๋ณ€์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด enum type์€ ==์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Interface

  • ์ด์ „์— ์ˆ˜๊ฐ•ํ•œ ์Šคํ”„๋ง ์ž…๋ฌธ ๊ฐ•์˜ ์—์„œ๋Š” ํ™•์‹คํžˆ ์ดํ•ดํ•  ์ˆ˜ ์—†์—ˆ๋˜ Interface์™€ ๊ตฌํ˜„์ฒด์˜ ๊ด€๊ณ„๋ฅผ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์šฉ์–ด๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” โ€˜๋ฐ”๋ผ๋ณด๋‹คโ€™๋ฅผ ์ดํ•ดํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • MemoryMemberRepository๋Š” MemoryRepository ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
    • MemberServiceImpl์€ MemberService ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
    • ์ด๋•Œ, MemberServiceImple์€ MemberRepository ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ฐ”๋ผ๋ณด์ง€๋งŒ(=์ฐธ์กฐํ•˜์ง€๋งŒ), null pointer exception์œผ๋กœ ์ธํ•ด MemoryMemberRepository ๊ตฌํ˜„์ฒด๋ฅผ ๋ฐ›์•„์™€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ด๋Ÿฌํ•œ ์ ์—์„œ ํ˜„์žฌ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋Š” SOLID ๊ฐ์ œ์ง€ํ–ฅ 5์›์น™์˜ DIP(์˜์กด๊ด€๊ณ„ ์—ญ์ „ ์›์น™)์„ ์œ„๋ฐฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
      • DIP ์˜์กด๊ด€๊ณ„ ์—ญ์ „ ์›์น™์ด๋ž€, ๊ตฌ์ฒดํ™”(๊ตฌํ˜„ ํด๋ž˜์Šค)์— ์˜์กดํ•˜๋Š” ๋Œ€์‹  ์ถ”์ƒํ™”(Interface)์— ์˜์กดํ•ด์•ผ ํ•œ๋‹ค๋Š” ์˜์กด์„ฑ ์ฃผ์ž… ์›์น™์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

junit

  • main()์—์„œ์˜ ํ…Œ์ŠคํŠธ ๋Œ€์‹  junit์„ ์‚ฌ์šฉํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ดํ•ดํ•˜๊ณ , ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

#๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ญ๐‘ญ

  • #BBBBFFํŒ€์˜ Study Study(?)๊ฐ€ ์˜ค๋Š˜๋ถ€ํ„ฐ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—” ์•„์นจ๋ถ€ํ„ฐ ์ €๋…๊นŒ์ง€ ์•Œ๋ฐ”์™€ ๊ณต๋ถ€, ํ•™์›์ˆ˜์—… ์ˆ˜๊ฐ•์„ ํ•˜๊ณ  ๋‚˜๋ฉด, ์ €๋…์‹œ๊ฐ„์„ ๊ณต๋ถ€๋กœ ํ• ์• ํ•˜๋Š” ๋ฐ์— ์ฒด๋ ฅ์ ์ธ ํ•œ๊ณ„๋กœ ์ง‘์ค‘๋ ฅ์ด ์ €ํ•˜๋˜๊ณค ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋น„์Šทํ•œ ๊ณ ์ถฉ์„ ๊ฒช์œผ์‹œ๋Š” ํŒ€์› ๋ถ„๋“ค๊ณผ 18:00~24:00 ์‚ฌ์ด์˜ ์‹œ๊ฐ„์— ๋””์Šค์ฝ”๋“œ์— ์ ‘์†ํ•˜์—ฌ ์ตœ์†Œ 2์‹œ๊ฐ„ ๊ณต๋ถ€๋ฅผ ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! (1) ์ถœ์„+๊ณต๋ถ€ํ•  ๋‚ด์—ญ ์ž‘์„ฑ (2) ์Œ์„ฑ์ฑ„๋„์ ‘์†, ํ™”๋ฉด๊ณต์œ  ๋“ฑ์„ ํ•˜๋ฉฐ ๊ณต๋ถ€ ์ง„ํ–‰ (3) ๊ณต๋ถ€ํ•œ ๋‚ด์—ญ ์ธ์ฆํ•˜๋ฉฐ ํ‡ด๊ทผํ•˜๋Š” ์‹œ์Šคํ…œ์œผ๋กœ ์‹œ๋ฒ”์šด์˜์ค‘์ž…๋‹ˆ๋‹ค.

โ–ถ ๐‘จ๐’„๐’‚๐’…๐’†๐’Ž๐’š

  • ์•„๋ž˜์˜ ํ•™์Šต ๋‚ด์šฉ์„ ํฌํ•จํ•˜์—ฌ ์ˆ˜๊ฐ• ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
  • JSP์˜ Directive Tag์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ณ , JSP ์ฝ”๋“œ ๋‚ด์—์„œ ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๊ณ  ์ˆœํšŒํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค. ๋งํฌ
  • Directive Tag ์ค‘ Action Tag์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ณ , Forward action๊ณผ Param action์„ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • include directvie tag๋ฅผ ์‚ฌ์šฉํ•ด header์™€ footer๋ฅผ ๋„ฃ์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋งํฌ
  • include directive tag์™€ page directive tag๋ฅผ ์‚ฌ์šฉํ•ด ์ƒ๋‹จ ๋„ค๋น„๊ฒŒ์ด์…˜๊ณผ footer๋Š” include๋กœ, ๋ฉ”์ธ์—์„  page import๋กœ Dateํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ์™€ SimpleDateFormat์„ ์‚ฌ์šฉํ•ด ํ˜„์žฌ ์‹œ๊ฐ์„ ์ถœ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งํฌ
  • JavaBeans๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ„๋‹จํžˆ ์ƒ๋…„์›”์ผ๊ณผ ์ด๋ฆ„์„ memberBean์—์„œ ๋ฐ›์•„์™€ ์ถœ๋ ฅํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. jspํŒŒ์ผ, beanํŒŒ์ผ

โ–ถ ๐„๐ญ๐œ

  • #BBBBFF ์Šคํ„ฐ๋””์Šคํ„ฐ๋””(?)๋กœ ์ธํ•ด Discord Bot์„ ์ œ์ž‘ํ•˜๋Š” ๋ฐ์— ๊ด€์‹ฌ์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋””์Šค์ฝ”๋“œ ๋ด‡์˜ ๊ฒฝ์šฐ์—๋Š” JDA Rest API๊ฐ€ ๊นƒํ—ˆ๋ธŒ์— ์˜คํ”ˆ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์šฐ์„ ์€ ์ถœ์„์ฒดํฌ, ํ‡ด๊ทผ์ฒดํฌ๋ฅผ ํ•˜๋Š” ๋””์Šค์ฝ”๋“œ ๋ด‡์„ ์ œ์ž‘ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๊ตฌ์ถ•๊นŒ์ง€ ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด๊ธฐ์—, ์šฐ์„ ์€ ํ•˜๋ฃจ์— ์งง์€ ์‹œ๊ฐ„๋งŒ์„ ์†Œ๋ชจํ•˜๋ฉฐ ๋ฉ”์ธ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋กœ ์ง„ํ–‰ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์ธ ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋œ ์ดํ›„์—” ์ฆ๊ฑฐ์ž๋ฃŒ๋ฅผ ๋ฐ›๋Š” ๋“ฑ์˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ๋„ ๊ตฌํ˜„ํ•ด๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ํฐ ๊ทœ๋ชจ๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š์„ ์ƒ๊ฐ์ด๊ธฐ์— DB๋กœ๋Š” Firebase firestore๋ฅผ, ์„œ๋ฒ„๋กœ๋Š” ๊ธฐ์กด์— ์—ด์–ด๋ณด์•˜๋˜ ๋„ค์ด๋ฒ„ํด๋ผ์šฐ๋“œํ”Œ๋žซํผ ๋ฌด๋ฃŒ CentOS ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

โœจ

โ–ถ ๐‘ซ๐’‚๐’š

(1) ๋ช‡ ์ผ๊ฐ„ ๋ฏธ๋ฃจ๊ธฐ๋งŒ ํ–ˆ๋˜ ๋นจ๋ž˜๋ฅผ ๋“œ๋””์–ด ํ–ˆ์Šต๋‹ˆ๋‹ค.
(2) ์“ฐ๋ ˆ๊ธฐ ๋ฒ„๋ฆฌ๋Š” ๋‚ ์ด์–ด์„œ ์ง€๋‚œ ๋ฒˆ์— ๋ฐ์Šคํฌ์„ธํŒ…์„ ํ•˜๋ฉฐ ๋‚˜์˜จ ์“ฐ๋ ˆ๊ธฐ๋“ค์„ ๋‚ด๋‹ค ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ๊ฐœ์šด!
(3) Notion์—์„œ ๋™๊ธฐ๋ถ€์—ฌ ๊ฒŒ์‹œ๊ธ€์„ ์ž‘์„ฑํ•˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค. ๋ชฉ์ ์€ ๋™๊ธฐ๋ถ€์—ฌ๋ฅผ ๋ฐ›๋Š” ์ ํ•ฉํ•œ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐœ์ธ์ ์ธ ๋งค๋‰ด์–ผ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋ฉฐ ๋ฒˆ์•„์›ƒ์œผ๋กœ ์ง๊ฒฐ๋˜๋Š” ์ŠคํŠธ๋ ˆ์Šค ์š”์ธ๋“ค๋กœ ์ธํ•˜์—ฌ ๋™๊ธฐ๋ถ€์—ฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ •์‹  ์ƒํ™ฉ์ด ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜์—ฌ, ๋™๊ธฐ๋ถ€์—ฌ์™€ ์ŠคํŠธ๋ ˆ์Šค ํ•ด์†Œ ์‚ฌ์ด์˜ ๊ทธ ์ค‘๊ฐ„ ์ง€์  ์œ„์ฃผ๋กœ ์ƒ๊ฐํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.
(4) ์ ํ•ฉํ•œ ๋ฐ์Šคํฌ ์„ธํŒ…์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ๋ชจ๋กœ ์‹œ๋„๋ฅผ ํ•ด๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๊ธฐ๊ณ„๋ฐœ ์ทจ๋ฏธ ์ฐจ์›์—์„œ ๋ฐ์Šคํฌ ์„ธํŒ…์„ ๊ฐ„๋‹จํžˆ ๊ทธ๋ฆผ์œผ๋กœ ๊ทธ๋ฆฌ๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‚˜๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ์ƒ๊ฐํ•ด๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊นƒ๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒ๋“  ์ดํ›„ ๋ช‡ ๊ฐœ์›”์„ ๋ฏธ๋ค„๋‘์—ˆ๋˜ About ํŽ˜์ด์ง€๋ฅผ ์ด๋ฒˆ ๋‹ฌ ๋‚ด๋กœ๋Š” ๊ผญ ์ฑ„์›Œ์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค.

โ–ถ ๐‘น๐’†๐’”๐’•

๋Œ€ํƒˆ์ถœ ์‹œ์ฆŒ2 ํฌ๋ง์—ฐ๊ตฌ์†Œ 1ํŽธ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.



TIL Share Tweet +1