[๊ธฐ์ˆ  ๋ฉด์ ‘] ๐Ÿ–ฅ๏ธ ๊ณตํ†ต ์งˆ๋ฌธ

pyeonneยท2022๋…„ 6์›” 21์ผ
1
post-thumbnail

โ— ์•”๊ธฐ๊ฐ€ ์ค‘์š”ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ดํ•ด๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.
โ— ๋ชจ๋ฅด๋Š” ๋ฌธ์ œ๋ผ๋„ ์ž์‹  ์žˆ๊ฒŒ ๋‹ต๋ณ€ํ•˜์ž.
โ— ๋‹ต๋ณ€์— ๋”ฐ๋ผ ๊ผฌ๋ฆฌ๋ฌผ๊ธฐ ์งˆ๋ฌธ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋‹นํ™ฉํ•˜์ง€ ๋ง์ž.

๐Ÿ“‹ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ

๐Ÿ“Œ HTML VS HTML5

  • HTML (Hyper Text Markup Language)
  • HTML5๋Š” HTML ํ‘œ์ค€์˜ ๋‹ค์„ฏ ๋ฒˆ์งธ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฒ„์ „

HTML5

  • ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๊ธฐ๋Šฅ - 3D, ์˜ค๋””์˜ค, ์˜์ƒ ๋“ฑ Active X ์„ค์น˜ ์—†์ด๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์›น ์ €์žฅ ๊ธฐ๋Šฅ - ์›น ์‚ฌ์ดํŠธ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ PC์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๊ฑฐ๋‹ˆ์ฆ˜ ์ œ๊ณต (๊ธฐ์กด ์ฟ ํ‚ค ๋ฐ ์„ธ์…˜์˜ ํ•œ๊ณ„ ํ•ด์†Œ)
  • ์›น ์†Œ์ผ“ ๊ธฐ๋Šฅ
  • ์œ„์น˜(Geolocation) ๊ธฐ๋Šฅ
  • CSS3

๐Ÿ“Œ GET VS POST

GET

  • ์˜ˆ) ๊ฒŒ์‹œํŒ ๊ธ€ ์กฐํšŒ
  • ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ
  • ์„œ๋ฒ„์— ์ •๋ณด๋ฅผ ์š”์ฒญํ•  ๋•Œ, ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ „์†ก
  • ๋ฐ์ดํ„ฐ ๊ธธ์ด ์ œํ•œ์ด ์žˆ์Œ
  • ๋ณด์•ˆ์— ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„์„œ ๋ณด๋‚ด๋ฉด ์•ˆ ๋จ
  • SELECT
  • Idempotent(๋ฉฑ๋“ฑ) - ์„œ๋ฒ„์— ๋™์ผํ•œ ์š”์ฒญ์„ ์–ด๋ ค ๋ฒˆ ๋ณด๋‚ด๋”๋ผ๋„ ํ•ญ์ƒ ๋™์ผํ•œ ์‘๋‹ต์ด ๋Œ์•„์˜ด

POST

  • ์˜ˆ) ๊ฒŒ์‹œํŒ ๊ธ€ ์ž‘์„ฑ
  • ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ ํ˜น์€ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ
  • ๋ฐ์ดํ„ฐ๋Š” body์— ๋‹ด์•„ ๋ณด๋ƒ„
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š์•„ GET ๋ฐฉ์‹๋ณด๋‹ค ์•ˆ์ „ํ•จ
  • CREATE, UPDATE
  • Non-idempotent - ์„œ๋ฒ„์— ๋™์ผํ•œ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ณด๋‚ด๋”๋ผ๋„ ์‘๋‹ต ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ

๐Ÿ“Œ TCP VS UDP

  • TCP์™€ UDP๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

TCP (Transmission Control Protocol)

  • ์—ฐ๊ฒฐํ˜•์œผ๋กœ 3-Way Handshaking ๊ณผ์ •์„ ํ†ตํ•ด์„œ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅ
  • ์ „์†ก ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜๋‚˜ ์†๋„๊ฐ€ UDP๋ณด๋‹ค ๋Š๋ฆผ
  • ํŒŒ์ผ ์ „์†ก๊ณผ ๊ฐ™์€ ์‹ ๋ขฐ์„ฑ์ด ์ค‘์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ

3-Way Handshaking

TCP๋กœ ํ†ต์‹ ํ•˜๋Š” ์žฅ์น˜๊ฐ„ ์„œ๋กœ ์—ฐ๊ฒฐ์ด ์ž˜ ๋˜์—ˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹


UDP (User Datagram Protocol)

  • ๋น„์—ฐ๊ฒฐํ˜•์œผ๋กœ ์—ฐ์†์„ฑ์ด ์ค‘์š”ํ•œ ๊ณณ์— ์‚ฌ์šฉ (์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋น„์Šค)
  • ์ „์†ก ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€” ์ˆ˜ ์žˆ์Œ
  • ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ์€ ๋Œ€์‹  ์†๋„๊ฐ€ ๋น ๋ฆ„

๐Ÿ“Œ HTTP VS HTTPS

HTTP (Hyper Transfer Protocol)

  • ๋ฐ์ดํ„ฐ ์š”์ฒญ(request) ํ˜น์€ ์‘๋‹ต(response) ์‹œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ
  • ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ํ‰๋ฌธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์™€ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Œ
  • 80ํฌํŠธ๋ฅผ ์‚ฌ์šฉ

HTTP+SSL (Secure Socket Layer) => HTTP+S (Secure)

  • HTTP์—์„œ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๊ฐ€ ์ถ”๊ฐ€๋œ ํ”„๋กœํ† ์ฝœ
  • ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ œ 3์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์—†์Œ
  • 443๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉ

HTTPS์˜ ์•”ํ˜ธํ™” ๋ฐฉ์‹

1. ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”
- ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๋™์ผํ•œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด ์•”ํ˜ธํ™” ํ˜น์€ ๋ณตํ˜ธํ™” ๊ณผ์ • ์ง„ํ–‰
- ํ‚ค ๋…ธ์ถœ ์œ„ํ—˜์„ฑ์ด ํฐ ๋Œ€์‹  ์†๋„๊ฐ€ ๋น ๋ฆ„

2. ๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”
- ๊ณต๊ฐœํ‚ค์™€ ๊ฐœ์ธํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด ์•”ํ˜ธํ™” ํ˜น์€ ๋ณตํ˜ธํ™” ๊ณผ์ • ์ง„ํ–‰
- ํ‚ค๊ฐ€ ๋…ธ์ถœ๋˜์–ด๋„ ๋น„๊ต์  ์•ˆ์ „ํ•œ ๋Œ€์‹  ์†๋„๊ฐ€ ๋Š๋ฆผ


๐Ÿ“Œ RESTful API

  • REST(Representational State Transfer)์˜ ๊ทœ์น™์„ ์ง€์ผœ์„œ ๋งŒ๋“  API
  • ์„ฑ๋Šฅ์˜ ํ–ฅ์ƒ ๋ณด๋‹ค๋Š” ๊ทœ์น™์„ ํ†ตํ•œ API ์ดํ•ด๋„์™€ ํ˜ธํ™˜์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•จ
  • ์œ ์ง€๋ณด์ˆ˜ ๋ฐ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ

REST๋ž€ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋žจ ์•„ํ‚คํ…์ฒ˜์˜ ํ•œ ํ˜•ํƒœ๋ฅผ ๋งํ•œ๋‹ค.


๐Ÿ“Œ ๋™๊ธฐ VS ๋น„๋™๊ธฐ

๋™๊ธฐ (Synchronous) ๋ฐฉ์‹

  • ์š”์ฒญ๊ณผ ๊ฒฐ๊ณผ๊ฐ€ ๋™์‹œ์— ์ผ์–ด๋‚จ
  • ์š”์ฒญ์„ ํ•˜๊ณ  ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆผ (์ž‘์—…์˜ ์ˆœ์„œ๋ฅผ ๋ณด์žฅ)
  • ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Œ
  • Blocking ๋ฐฉ์‹

๋น„๋™๊ธฐ (Asynchronous) ๋ฐฉ์‹

  • ์š”์ฒญ๊ณผ ๊ฒฐ๊ณผ๊ฐ€ ๋™์‹œ์— ์ผ์–ด๋‚˜์ง€ ์•Š์Œ
  • ์š”์ฒญ ํ›„ ๊ฒฐ๊ณผ์™€ ์ƒ๊ด€์—†์ด ๋‹ค์Œ ์š”์ฒญ์„ ์ง„ํ–‰
  • ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ๋™์‹œ์— ์ฒ˜๋ฆฌ
  • Non-Blocking ๋ฐฉ์‹

๐Ÿ“Œ ํ”„๋ก์‹œ ์„œ๋ฒ„

ํ”„๋ก์‹œ (Proxy) ์„œ๋ฒ„๋ž€?

  • Proxy๋Š” ๋Œ€๋ฆฌ๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  • ํด๋ผ์ด์–ธํŠธ(์œ ์ €)๊ฐ€ ํ”„๋ก์‹œ ์ž์‹ ์„ ๊ฑฐ์ณ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค‘๊ฐ„์—์„œ ๋Œ€๋ฆฌ ์—ญํ• ์„ ํ•˜๋Š” ์„œ๋ฒ„
  • ์ธํ„ฐ๋„ท์—์„œ ์œ ์ €๋ฅผ ๋Œ€์‹ ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์„œ๋ฒ„

์‚ฌ์šฉ ์ด์œ 

  1. ์บ์‹œ ๋ฐ์ดํ„ฐ ํ™œ์šฉ
  • ํ”„๋ก์‹œ ์„œ๋ฒ„์— ์š”์ฒญ๋œ ๋‚ด์šฉ์€ ๊ตณ์ด ํ•œ ๋ฒˆ ๋” ์„œ๋ฒ„๋ฅผ ๊ฑฐ์น  ํ•„์š”๊ฐ€ ์—†๊ฒŒ ๋จ
  • ์ „์†ก ์‹œ๊ฐ„์„ ์•„๋‚„ ์ˆ˜ ์žˆ์Œ
  1. ๋ณด์•ˆ ๋ชฉ์ 
  • ํ”„๋ก์‹œ ์„œ๋ฒ„๋กœ ์ค‘๊ฐ„ ๊ฒฝ์œ ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด IP ๋…ธ์ถœ์„ ํ•˜์ง€ ์•Š์•„๋„ ๋จ
  • ํ”„๋ก์‹œ ์„œ๋ฒ„๋ฅผ ๋ฐฉํ™”๋ฒฝ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•จ

๐Ÿ“Œ DNS (Domain Naming Server)

  • ๋„๋ฉ”์ธ ์ด๋ฆ„๊ณผ IP ์ฃผ์†Œ์˜ ๋ณ€ํ™˜๊ธฐ ์—ญํ• 
  • 192.0.0.1๊ณผ ๊ฐ™์€ ์ˆซ์ž IP ์ฃผ์†Œ๋ฅผ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜

๐Ÿ“Œ ํŒจํ‚ท (Packet)

  • ํŒจํ‚ค์ง€(package)์™€ ๋ฒ„ํ‚ท(bucket)์˜ ํ•ฉ์„ฑ์–ด๋กœ ๋ฐ์ดํ„ฐ์˜ ์ „์†ก ๋‹จ์œ„๋ฅผ ์˜๋ฏธ
  • ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ ์ •๋ณด ์ „์†ก์˜ ๊ธฐ๋ณธ ๋‹จ์œ„

๐Ÿ“Œ ์ฟ ํ‚ค VS ์„ธ์…˜

  • ๋ธŒ๋ผ์šฐ์ € ๋กœ์ปฌ์— ์ €์žฅ๋˜๋Š” Key-Value ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ

์„ธ์…˜ (Session)

  • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€ ์œ ์ €์˜ ์š”์ฒญ์„ ์œ ์ง€ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ์ˆ 

์ฐจ์ด์ 

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

๐Ÿ“Œ ํ”„๋กœ์„ธ์Šค VS ์Šค๋ ˆ๋“œ

ํ”„๋กœ์„ธ์Šค (Process)

  • ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ์ž์›์„ ํ• ๋‹น ๋ฐ›์€ ์ž‘์—…์˜ ๋‹จ์œ„

์Šค๋ ˆ๋“œ (Thread)

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น ๋ฐ›์€ ์ž์›์„ ์ด์šฉํ•˜๋Š” ์‹คํ–‰ ํ๋ฆ„์˜ ๋‹จ์œ„

์ฐจ์ด์ 

  • ํ”„๋กœ์„ธ์Šค๋Š” ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ๊ฐ๊ฐ ๋…๋ฆฝ๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ(Code, Data, Stack, Heap)์„ ํ• ๋‹น ๋ฐ›๊ณ , ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์ƒ์„ฑ๋จ
    ํ”„๋กœ์„ธ์Šค

  • ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๋™์ž‘๋˜๋Š” ์‹คํ–‰์˜ ํ๋ฆ„์œผ๋กœ ๊ฐ๊ฐ Stack๋งŒ ๋”ฐ๋กœ ํ• ๋‹น ๋ฐ›๊ณ , Code, Data, Heap ์˜์—ญ์€ ๊ณต์œ ํ•จ
    ์Šค๋ ˆ๋“œ


๐Ÿ“Œ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ (Context Switching)

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

๐Ÿ“Œ Heap VS Stack

ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ์œ„ํ•ด OS์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„

์šด์˜์ฒด์ œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„
1. ์ฝ”๋“œ ์˜์—ญ - ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ
2. ๋ฐ์ดํ„ฐ ์˜์—ญ - ์ „์—ญ ๋ณ€์ˆ˜์™€ ์ •์  ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ
3. ์Šคํƒ ์˜์—ญ - ์ง€์—ญ ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ. ์ •์  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ €์žฅ๋˜๊ณ , LIFO(Last-In First-Out) ๋ฐฉ์‹
4. ํž™ ์˜์—ญ - ์ „์—ญ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ. ์‚ฌ์šฉ์ž์— ์˜ํ•ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋™์ ์œผ๋กœ ํ• ๋‹น๋˜๊ณ , ํ•ด์ œ๋จ


๐Ÿ”— ์ฐธ๊ณ  ๋ž˜ํผ๋Ÿฐ์Šค

profile
๊ฑด๊ฐ•ํ•œ ๋ชธ๊ณผ ๋งˆ์Œ์—์„œ ๊ฑด๊ฐ•ํ•œ ์ฝ”๋“œ๊ฐ€ ํƒœ์–ด๋‚œ๋‹ค !

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