Archive for Dev. (junyup2)

์ง€์‹์„ ์ฑ„์›Œ๊ฐ€๋Š” ใ€Ž๊ฐœ๋ฐœ์ž/ํ™”์ดํŠธํ•ด์ปคใ€๋ฅผ ๋ชฉํ‘œ๋กœ ์ •๋ฆฌํ•˜๋Š” ๋ธ”๋กœ๊ทธ

๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋””/๋ชจ์˜ ํ•ดํ‚น - ๊ธฐ๋ก์ผ์ง€

[๊ธฐ๋ก์ผ์ง€] ๐Ÿ“š 02์ฃผ์ฐจ (DB/SQL)

Gearvirus(junyup2) 2023. 11. 2. 03:01

DB/SQL ์— ๋Œ€ํ•œ ์ดํ•ด


DB (DataBase)

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ
  • ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์—‘์…€ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ฑฐ์˜ ๋™์ผ

 

DB์˜ ๊ตฌ์กฐ

  • Database
    • DB์— Database๊ฐ€ ์กด์žฌ
    • ์—‘์…€ ํŒŒ์ผ๊ณผ ๋น„์Šทํ•œ ํฐ ์กฐ๊ฐ๋“ค
  • Table
    • Excel์˜ Sheet์™€ ๋™์ผ (์—‘์…€์‹œํŠธ)
    • ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์€ ๋น„์Šทํ•œ ์ข…๋ฅ˜ ๋ผ๋ฆฌ์˜ ๋ฌถ์Œ
  • Column
    • ์—ด, ์„ธ๋กœ ๋ฐ์ดํ„ฐ
    • ๋ฐ์ดํ„ฐ ์ข…๋ฅ˜, ์นดํ…Œ๊ณ ๋ฆฌ
  • Row
    • ํ–‰, ๊ฐ€๋กœ ๋ฐ์ดํ„ฐ
    • ๋ฐ์ดํ„ฐ ํ•œ ์„ธํŠธ(set)

 

DBMS(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ)

  • MySQL์šฉ DBMS ๊ด€๋ฆฌ ๋„๊ตฌ : phpMyAdmin
  • ์—ฐ๊ฒฐ ์„ธ๋ถ€ ์ •๋ณด : ๊ด€๋ฆฌ ๋„๊ตฌ์—์„œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋˜๋Š” IP์ฃผ์†Œ, ํฌํŠธ ๋ฒˆํ˜ธ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„, ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ฐ ์•”ํ˜ธ๋ฅผ ํฌํ•จํ•œ ์—ฐ๊ฒฐ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ฐพ์Œ

DB ์ ‘์†

  • docker์— ์ด๋ฏธ ์„ค์น˜๋œ ์ƒํƒœ๋กœ ์ด์šฉ 
  • apache - php - mysql
    • http://ip์ฃผ์†Œ/phpmyadmin : mysql์„ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•œ ํŽ˜์ด์ง€์— ์ ‘์†

  • DB ๊ณ„์ • ๋กœ๊ทธ์ธ
    • ์ •ํ•ด์ง„ ID/PW ์ž…๋ ฅ
  • ์ƒˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งŒ๋“ค๊ธฐ(DB ์ƒ์„ฑ)
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช… ์ง€์ •
    • ์–ธ์–ด(๋ฐ์ดํ„ฐ์ •๋ ฌ๋ฐฉ์‹) : utf8_general_ci
      • (or mb4_utf8_general_ci
      • ํ•œ๊ธ€ ์ง€์› utf8
  • ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ธฐ ์‹คํ–‰
  • ์ด๋ฆ„ : Column ์ด๋ฆ„ - (Attribute(์†์„ฑ))
  • # | ์ด๋ฆ„ | ์ข…๋ฅ˜(๊ธธ์ด,๊ฐ’) | ๋ฐ์ดํ„ฐ์ •๋ ฌ๋ฐฉ์‹ | ...... | AI |
    • idx(์ธ๋ฑ์Šค) : int(10) | PRIMARY_KEY ์ง€์ • | AI(AUTO_INCREMENT) :๊ธฐ๋ณธํ‚ค(ํ•„์ˆ˜์ธ ๊ฒƒ)
    • name : varchar(20) | utf8_general_ci :  varchar (๊ฐ€๋ณ€ ๋ณ€์ˆ˜)
    • ex)


DB ์—ฐ๋™

php - mysql ์—ฐ๊ฒฐ

  • php ๊ฐ€ db์— ์ด์•ผ๊ธฐ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” db(phpmyadmin)์˜ id/pw๋ฅผ was๊ฐ€ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•จ !
    • (db ์— sql query๋ฅผ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š”)
WAS๋Š” DB์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋กœ๊ทธ์ธ์ด ํ•„์š” *
๋กœ๊ทธ์ธ์„ ํ•˜๋ ค๋ฉด WAS๊ฐ€ DB์˜ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผํ•จ
-
๋”ฐ๋ผ์„œ WAS์—๋Š” ๋ฌด! ์กฐ! ๊ฑด! DB์˜ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์„ ์ˆ˜ ๋ฐ–์— ์—†์Œ
๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์—, ๋งŒ์•ฝ WAS์˜ Shell์ด ํ„ธ๋ ธ๋‹ค?(ํ•ดํ‚น๋‹นํ–ˆ๋‹ค?)
๊ทธ๋ ‡๋‹ค๋ฉด DB๋Š” ์ด๋ฏธ ๊ฐ™์ด ํ„ธ๋ ธ๋‹ค๋Š” ๊ฒƒ !!
-
*์›น์„œ๋ฒ„ ํ•ดํ‚น์‹œ ๊ฐ€์žฅ ๋จผ์ € ํ•ด์•ผํ•˜๋Š” ๊ฒƒ์ด DB๋ฅผ ํ„ฐ๋Š” ๊ฒƒ*
-
์ฆ‰, ๋ˆ„๊ตฐ๊ฐ€ ๋งŒ๋“  ์›น์„œ๋ฒ„์˜ Shell์„ ๋ฐ›์•„์˜จ๋‹ค๋ฉด
์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์›น์„œ๋ฒ„ ์ฝ”๋“œ์— ๋ฐ•ํ˜€์žˆ๊ธฐ ๋•Œ๋ฌธ์—
๋ฌด์กฐ๊ฑด ๋‘๊ฐ€์ง€(Shell, DB)๋Š” ์„ธํŠธ(set)๋กœ ํ„ธ๋ฆผ

MySQL Connector

  • ํ‹ฐ์ผ“ํŒ…์ด ํ•„์š” !! - ์ปค๋„ฅํ„ฐ
  • (ํ‹ฐ์ผ“์„ ๋ฐ›์•˜๋Š”์ง€ ์•Š๋ฐ›์•˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ)
  • ํ‹ฐ์ผ“ == ๋””์Šคํฌ๋ฆฝํ„ฐ

 

๋””์Šคํฌ๋ฆฝํ„ฐ(Descriptor)

  • ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ๋Š” ์‹œ์Šคํ…œ์œผ๋กœ๋ถ€ํ„ฐ ํ• ๋‹น ๋ฐ›์€ ํŒŒ์ผ์ด๋‚˜ ์†Œ์ผ“์„ ๋Œ€ํ‘œํ•˜๋Š” ์ •์ˆ˜๋ฅผ ์˜๋ฏธ
  • (์‹œ์ž‘๋˜์ž๋งˆ์ž ๊ธฐ๋ณธ์ ์œผ๋กœ ์—ด๋ฆฌ๊ณ , ์ข…๋ฃŒ์‹œ์— ์ž๋™์œผ๋กœ ๋‹ซํž˜)
  • ๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” ๋””์Šคํฌ๋ฆฝํ„ฐ๋ผ๊ณ  ๋ถ€๋ฅด๊ณ , ์œˆ๋„์šฐ์—์„œ๋Š” ํ•ธ๋“ค์ด๋ผ๊ณ  ๋ถ€๋ฆ„

DB ์—ฐ๊ฒฐ ์„ธ๋ถ€ ์ •๋ณด ์ƒ์ˆ˜ํ™”

  • DB_SERVER, DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME
  • ์ƒ์ˆ˜ํ™”์˜ ์ด์œ 
    • ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๋ฉด ์œ„์˜ ๊ฐ’๋“ค์„ ํ•œ ์ฝ”๋“œ ๋‚ด์— ์—ฌ๋Ÿฌ๋ฒˆ ์จ์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์˜ด
    • ๋งŒ์•ฝ ์–ด๋–ค ์ด์œ ๋กœ db ์„œ๋ฒ„์˜ ์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€Œ์–ด์„œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
      • define์œผ๋กœ ๋งคํฌ๋กœ ์ง€์ • ํ•ด๋‘๋ฉด ์ •์˜๋œ ๋ถ€๋ถ„์˜ ์ฃผ์†Œ๋งŒ ๋ฐ”๊พธ๋ฉด ๋˜์ง€๋งŒ
      • ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ฝ”๋“œ์—์„œ ํ•ด๋‹น ๋ถ€๋ถ„๋“ค์„ ์ผ์ผ์ด ์ฐพ์•„์„œ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•จ
      • ๋งŒ์•ฝ ๋นผ๋จน๊ณ  ๋ชป ๋ฐ”๊พผ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ๋„ ์žˆ์Œ
  • ์œ„์™€ ๊ฐ™์ด ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๋ฉด ์ž์ฃผ ์“ฐ๊ฒŒ๋˜๋Š” ๊ฐ’์ด ์ƒ๊น€
  • ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๋ฉด์„œ ์ƒ๊ธฐ๋Š” ์œ ์ง€๋ณด์ˆ˜์˜ ๋ถˆํŽธํ•จ์„ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•จ

 

db_connection.php

<?php
    // define('DB_SERVER', 'DB์˜ ip ์ฃผ์†Œ');
    define('DB_SERVER', 'localhost');
    define('DB_USERNAME', 'id');
    define('DB_PASSWORD', 'pw');
    define('DB_NAME', 'db');
    
    $db_conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
 ?>
  • define('DB_SERVER', 'db์˜ ip์ฃผ์†Œ'); 
    • DB์˜ IP Adress ๊ฐ€ ๋”ฐ๋กœ์ด ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์€, DB๊ฐ€ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์— ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ
    • ํฐ ๊ธฐ์—…๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์ปดํ“จํ„ฐ(์„œ๋ฒ„)๋ฅผ WEB - WAS -DB ๋ชจ๋‘ ๋”ฐ๋กœ ์‚ฌ์šฉ
    • ํ•˜์ง€๋งŒ ๋ง‰๋Œ€ํ•œ ๋น„์šฉ์ด ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์†Œ๊ธฐ์—…๋“ค์˜ ๊ฒฝ์šฐ ํ•œ ์ปดํ“จํ„ฐ(์„œ๋ฒ„)๋กœ ๋ชจ๋“  ๊ฒƒ์„ ํ•ด๊ฒฐํ•ด์•ผ ํ•จ
  • ๋”ฐ๋ผ์„œ define('DB_SERVER', 'localhost'); ๋กœ, ์ปดํ“จํ„ฐ ๋‚ด๋ถ€ ์ฃผ์†Œ 'localhost' (๋ณดํ†ต 127.0.0.1)๋ฅผ ์ด์šฉ

๊ฐ€์ƒ๋จธ์‹  ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์ด์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๊พธ๋ฐ€ ์ˆ˜ ์žˆ์Œ

SQL

SQL(Structured Query Language)์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์กฐ์ž‘ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด

  • ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰, ์‚ฝ์ž…, ์—…๋ฐ์ดํŠธ ๋ฐ ์‚ญ์ œํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ณ  ์ˆ˜์ •ํ•˜๋„๋ก ์„ค๊ณ„
  • SQL์€ MySQL์„ ๋น„๋กฏํ•œ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์ง€์›๋จ

 

์ฟผ๋ฆฌ (Query)

์ฟผ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ ์ฐพ๊ธฐ, ์ถ”๊ฐ€, ๋ณ€๊ฒฝ ๋˜๋Š” ์ œ๊ฑฐ๋ฅผ ์š”์ฒญํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์‰ฝ๊ฒŒ ๋งํ•ด, WAS์—์„œ DB์— ์ด์•ผ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ํ•˜์ง€๋งŒ, DB๋Š” ๋„๋„ํ•˜๊ณ  ์ฒ ๋ฒฝ์ž„
    • ๋ˆ„๊ฐ€ ๋ฌผ์–ด๋ณด๋“ ๊ฐ„์— ๋Œ€๋‹ตํ•˜๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ !!!
    • (์•„๋ฌดํ•œํ…Œ๋‚˜ ์ด์•ผ๊ธฐํ•˜๋ฉด ์•ˆ๋จ)
    • ๋”ฐ๋ผ์„œ ์ฟผ๋ฆฌ๋Š” ํ‹ฐ์ผ“์„ ๊ฐ€์ง€๊ณ  "๋‚˜๋Š” ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž์•ผ, ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๋Œ€๋‹ตํ•ด!" ๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ
  • ์ฟผ๋ฆฌ์—์„œ [ ] ๋Š” ํ‘œ๊ธฐ๋ฅผ ์œ„ํ•จ, ( ) ๋Š” ์‹ค์ œ๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•จ

๋ฐ์ดํ„ฐ ์ƒ‰์ธ

  • SELECT : ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ช…๋ น์–ด
  • SELECT   [์ปฌ๋Ÿผ ์ด๋ฆ„] FROM [ํ…Œ์ด๋ธ” ์ด๋ฆ„] : √(๋„์–ด์“ฐ๊ธฐ) ์ค‘์š” !!
    • ์—ฌ๋Ÿฌ๊ฐœ์˜ ์นผ๋Ÿผ ์š”์ฒญ : ์ปฌ๋Ÿผ1 , ์ปฌ๋Ÿผ2 - ,(์ฝค๋งˆ) ๋ฅผ ์จ์ฃผ๊ณ , ๋„์–ด์“ฐ๊ธฐ๋Š” ์•ˆํ•ด๋„ ๋ฌด๋ฐฉ
    • ๋ชจ๋“  ์นผ๋Ÿผ ์š”์ฒญ : * ์„ ์ด์šฉ
  • ์ •๊ตํ•œ SELECT
    • ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด WHERE
    • WHERE๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š๊ณ  SELECT๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ
      • ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋“ค๋„ ๊ฐ€์ ธ์˜ด
    • ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด WHERE๋กœ [์ œ์•ฝ์กฐ๊ฑด]์„ ์ฃผ๋Š” ๊ฒƒ !
      • SELECT ๋ฌธ์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋ถ™์ž„
      • SELECT   [์ปฌ๋Ÿผ ์ด๋ฆ„]  FROM  [ํ…Œ์ด๋ธ” ์ด๋ฆ„] WHERE  [์กฐ๊ฑด] 
        • ์กฐ๊ฑด์˜ ๋ณดํ†ต ์ปฌ๋Ÿผ์˜ ์ด๋ฆ„์„ ๊ธฐ์ค€์œผ๋กœ ํ•จ
        • (๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ, ์—‰๋šฑํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ, ์•ž์˜ ์ปฌ๋Ÿผ๋“ค์„ ๊ธฐ์ค€์œผ๋กœ ์ด์šฉ)
        • ์กฐ๊ฑด and ์กฐ๊ฑด : ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ
        • ์กฐ๊ฑด or ์กฐ๊ฑด : ์—ฌ๋Ÿฌ ์กฐ๊ฑด๋“ค ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋งž์œผ๋ฉด ๋ชจ๋“  ์กฐ๊ฑด์„ ๊ฐ€์ ธ์˜ด
      • ๋™์  ์ œ์•ฝ ์กฐ๊ฑด๋„ ๊ฐ€๋Šฅ

๋ฐ์ดํ„ฐ ์‚ฝ์ž…

  • INSERT : ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ๋ช…๋ น์–ด
  • INSERT  INTO [ํ…Œ์ด๋ธ” ์ด๋ฆ„] (์ปฌ๋Ÿผ ์ด๋ฆ„) VALUE (๊ฐ’) : √(๋„์–ด์“ฐ๊ธฐ) ์ค‘์š” !!
    • ์—ฌ๋Ÿฌ๊ฐœ์˜ ์นผ๋Ÿผ ์‹ญ์ž…: (์ปฌ๋Ÿผ1, ์ปฌ๋Ÿผ2, ...)  VALUE (๊ฐ’1, ๊ฐ’2, ....)
    • ๋ชจ๋“  ์ปฌ๋Ÿผ ์‚ฝ์ž…
      • ์ปฌ๋Ÿผ์— ๋Œ€ํ•ด์„œ๋Š” * , ( ) ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
      • ๊ฐ’ (NULL, ๊ฐ’1, ๊ฐ’2, ...) : PRIMARY_KEY๋กœ ์ง€์ •๋œ idx ์— NULL ๊ฐ’
        • NULL๊ฐ’์„ ๋„ฃ๊ธฐ ์œ„ํ•ด์„œ๋Š” idx์— AUTO_INCREMENT ์„ค์ •์ด ๋˜์–ด ์žˆ์–ด์•ผ ํ•จ
        • ์•ˆ๋˜์–ด ์žˆ๋‹ค๋ฉด ์‚ฝ์ž…ํ•  idx ๋ฅผ ์ง์ ‘ ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•จ (๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ ๋ฐœ์ƒ) 

 

๋ฐ์ดํ„ฐ ์ˆ˜์ • / ๋ฐ์ดํ„ฐ ์‚ญ์ œ


์‹ค์Šต

๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋””  2์ฃผ์ฐจ ์‹ค์Šต


 

์งˆ๋ฌธ ํ™˜์˜, ์ˆ˜์ • ๋ฐ ๋ณด์™„์— ๋Œ€ํ•œ ์ง€์  ํ™˜์˜