728x90

https://29a.ch/photo-forensics/#forensic-magnifier


[๋ฌธ์ œ]


[๋ฌธ์ œ ํ’€์ด]

  • ๋จผ์ € Forensically ํˆด์„ ์ด์šฉํ•ด ์ด๋ฏธ์ง€๋ฅผ ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ”๋กœ ํ”Œ๋ž˜๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

FLAG: sun{RE4DY_THE_4CID_M4GNET!}

728x90

[๋ฌธ์ œ]


[๋ฌธ์ œ ํ’€์ด]

  • ์ด๋ฏธ์ง€๋Š” ๋งŽ์ด ๋ณ€์กฐ๋œ ๊ฑฐ ๊ฐ™์•„ ์ด๋ฒˆ์—๋Š” Image Steganography ํˆด์„ ์ด์šฉํ•ด์„œ ์ด๋ฏธ์ง€๋ฅผ ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ถ„์„ํ•ด ๋ณด๋‹ˆ ์ด๋ฏธ์ง€์—์„œ ํ”Œ๋ž˜๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

FLAG: tjctf{th3_f0x_jump3d_0v3r_m3}

728x90

[๋ฌธ์ œ]


[๋ฌธ์ œ ํ’€์ด]

  • ๋จผ์ € ์ด๋ฏธ์ง€ ์•ˆ์— ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ˆจ๊ฒจ์ ธ ์žˆ๋‚˜ ํ•˜๊ณ  Forensically ํˆด์„ ์ด์šฉํ•ด์„œ ๋ถ„์„ํ–ˆ์ง€๋งŒ flag๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

  • ๊ทธ๋ž˜์„œ, ๋ฌธ์ œ์—์„œ ํžŒํŠธ๋ฅผ ์–ป์–ด ํ”Œ๋ž˜๊ทธ๊ฐ€ ํŒŒ์ผ ์•ˆ์— ์ˆจ๊ฒจ์ ธ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ•ด์„œ String Extraction ํ•ด๋ณธ ๊ฒฐ๊ณผ, ํ”Œ๋ž˜๊ทธ๋กœ ๋ณด์ด๋Š” ๋ฌธ์ž์—ด์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

FLAG: ABCTF{forensics_1_tooo_easy?}

728x90

[๋ฌธ์ œ]


[๋ฌธ์ œ ํ’€์ด]

  • ์ด๋ฒˆ์—๋Š” Image Steganography ํˆด์„ ์ด์šฉํ•ด์„œ ์ด๋ฏธ์ง€๋ฅผ ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ, ์ด๋ฏธ์ง€์— ๋นจ๊ฐ„์ƒ‰ ๊ธ€์”จ๋กœ ์“ฐ์—ฌ์žˆ๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

FLAG: tjctf{0dd5_4nd_3v3n5}

728x90

[๋ฌธ์ œ]


[๋ฌธ์ œํ’€์ด]

  • ๋จผ์ € ์ด๋ฏธ์ง€์— ์ˆจ๊ฒจ์ง„ flag๊ฐ€ ์žˆ๋‚˜ ํ•˜๊ณ  Forensically ํˆด์„ ์ด์šฉํ•ด์„œ ๋ถ„์„์„ ํ•ด๋ณด์•˜์ง€๋งŒ ๋”ฑํžˆ flag๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

  • ๊ทธ๋ž˜์„œ, ์ด๋ฏธ์ง€์— ์ˆจ๊ฒจ์ง„ ๋ฌธ์ž์—ด์ด ์žˆ์„ ๊ฑฐ ๊ฐ™์•„ String Extraction ํ•ด๋ณธ ๊ฒฐ๊ณผ flag๋กœ ๋ณด์ด๋Š” ๋ฌธ์ž์—ด์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

 

FLAG: h1d1ng_in_4lm0st_pla1n_sigh7

 

728x90

1. WEB HACKING

์›น ํ•ดํ‚น์ด๋ž€?

์›น ์„œ๋น„์Šค ์ƒ์—์„œ ๋ฐœ์ƒ๋  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ณด์•ˆ์ƒ์˜ ์ทจ์•ฝ์ ์„ ์ด์šฉํ•œ ์•…์˜์ ์ธ ํ–‰์œ„

  • ์›น: ์ธํ„ฐ๋„ท์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋œ ์„œ๋น„์Šค ์ค‘ HTTP๋ฅผ ์ด์šฉํ•˜์—ฌ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋Š” ์„œ๋น„์Šค
  • HTTP: Hyper Text Transfer Protocol. ์›น ์ƒ์—์„œ ์„œ๋กœ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ •ํ•ด๋‘” ์ผ์ข…์˜ ๊ทœ์น™

์›น ์„œ๋น„์Šค์˜ ์ง„ํ™”

๋‹จ์ˆœ ์ •๋ณด ์ „๋‹ฌ → ๊ธˆ์œต, ์‡ผํ•‘, ํ˜‘์—… ๋“ฑ ์ผ์ƒ์˜ ๋งŽ์€ ๋ถ€๋ถ„์„ ๋งก์Œ


2. ๊ฐœ๋ฐœ์ž ๋„๊ตฌ

๋ธŒ๋ผ์šฐ์ € ๊ฐœ๋ฐœ์ž ๋„๊ตฌ

์›น ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋„๊ตฌ

  • HTML๊ณผ CSS ์ฝ”๋“œ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ˆ˜์ •ํ•˜๊ณ  ๋ฐ”๋กœ ๊ฒฐ๊ณผ ํ™•์ธ
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ ๋””๋ฒ„๊ฑฐ ์ œ๊ณต
  • ์„œ๋ฒ„์™€ ์˜ค๊ฐ€๋Š” HTTP ํŒจํ‚ท์„ ์ƒ์„ธํžˆ ๋ณด์—ฌ์ฃผ๋ฏ€๋กœ ํ”„๋กœํ† ์ฝœ ์ƒ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋„ ์‰ฝ๊ฒŒ ๋ฐœ๊ฒฌ ๊ฐ€๋Šฅ

  ์›น ์„œ๋น„์Šค๋ฅผ ์ง„๋‹จํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋„๊ตฌ์ธ ๋งŒํผ, ์›น ์ทจ์•ฝ์ ์„ ์ด์šฉํ•˜๋ ค๋Š” ๊ณต๊ฒฉ์ž์—๊ฒŒ๋„ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค!


  • Elements: ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” HTML ๊ฒ€์‚ฌ
  • Console: ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
  • Sources: HTML, CSS, JS ๋“ฑ ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ํ™•์ธํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ์Œ
  • Network: ์„œ๋ฒ„์™€ ์˜ค๊ฐ€๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
  • Application: ์ฟ ํ‚ค๋ฅผ ํฌํ•จํ•˜์—ฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

3. SQL INJECTION

SQL ์ธ์ ์…˜์ด๋ž€?

DBMS์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์งˆ์˜ ๊ตฌ๋ฌธ์ธ SQL์„ ์‚ฝ์ž…ํ•˜๋Š” ๊ณต๊ฒฉ

  • DBMS: DataBase Management System

SQL ์ธ์ ์…˜ ๊ธฐ๋ฒ•

  • Terminating Query ๋ฐฉ์‹
  • In-line Query ๋ฐฉ์‹

์ •์ƒ ๋กœ๊ทธ์ธ


TERMINATING QUERY


IN-LINE QUERY


ID๋ฅผ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ

728x90

pcap ํŒŒ์ผ ์—ด๊ธฐ


ํ™”๋ฉด ๊ตฌ์„ฑ


ํŒจํ‚ท ํ•„ํ„ฐ๋ง

์˜ต์…˜ ์„ค๋ช… ์˜ˆ์‹œ
eth.addr mac ์ฃผ์†Œ ํ•„ํ„ฐ eth.addr==xx:xx:xx:xx:xx:xx
tcp.port tcp ํฌํŠธ ํ•„ํ„ฐ tcp.port == 80
udp.port udp ํฌํŠธ ํ•„ํ„ฐ udp.port == 53
ip.addr IP ํ•„ํ„ฐ ip.addr == 192.168.9.1

Statistics ๊ธฐ๋Šฅ

  • ๋ฉ”๋‰ด์˜ Statistics → Protocol Hierarchy Statistics ์„ ํƒ
  • Protocol Hierarchy Statistics: ํ”„๋กœํ† ์ฝœ ๊ณ„์ธต ํ†ต๊ณ„
    • ๊ฐ OSI layer๋ณ„๋กœ ์„ธ๋ถ€์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

  • ๋ฉ”๋‰ด์˜ Statistics → Conversations ์„ ํƒ
  • Conversations: ๋‘ ํ˜ธ์ŠคํŠธ ๊ฐ„์˜ ์—ฐ๊ฒฐ ๋‚ด์šฉ์„ ๊ฐ„๋žตํžˆ ์ •๋ฆฌํ•ด ์ฃผ๋Š” ๊ธฐ๋Šฅ


Stream ํ™•์ธ

  • ํŒจํ‚ท ์„ ํƒ → ์˜ค๋ฅธ์ชฝ ๋งˆ์šฐ์Šค → Follow → Stream ์„ ํƒ

  • Show data as: ๋ฐ์ดํ„ฐ ํ˜•ํƒœ ์„ ํƒ
  • Stream: ์ŠคํŠธ๋ฆผ ์„ ํƒ
  • Find: ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰

ํŒจํ‚ท์„ ํŒŒ์ผ๋กœ ์ €์žฅ

  • ํŒจํ‚ท Stream → Save as... → ํŒŒ์ผ๋ช…๊ณผ ํ™•์žฅ์ž ์ง€์ •

 

'E-COPS > 15th ๋น„๊ธฐ๋„ˆ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

WEEK3 - WEB HACKING  (2) 2024.11.11
WEEK3 - DIGITAL FORENSICS  (2) 2024.10.11
WEEK3 - REVERSING  (7) 2024.10.08
WEEK2 QUIZ - VCS, Buffer  (0) 2024.10.08
WEEK2 - Git, Flask  (1) 2024.10.08
728x90

1. ๋””์ง€ํ„ธ ํฌ๋ Œ์‹

๋””์ง€ํ„ธ ํฌ๋ Œ์‹์ด๋ž€?

Digital + Forensic

  • Forensic(๋ฒ•์˜ํ•™): ๋ฒ•๋ฅ  + ์˜๋ฃŒ / ๋ถ€๊ฒ€
  • ๋””์ง€ํ„ธ ๋ฒ”์ฃ„์˜ ๋ถ€๊ฒ€

โ–ถ ๋””์ง€ํ„ธ ์ฆ๊ฑฐ๋ฌผ(์Šค๋งˆํŠธํฐ, PC)์„ ์ˆ˜์ง‘, ๋ถ„์„ํ•˜์—ฌ ๋ฒ”์ฃ„์˜ ๋‹จ์„œ์™€ ์ฆ๊ฑฐ๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๊ณผํ•™์ˆ˜์‚ฌ ๊ธฐ๋ฒ•

๋””์ง€ํ„ธ ํฌ๋ Œ์‹์˜ ๋Œ€์ƒ

  • ๋””์Šคํฌ ํฌ๋ Œ์‹ → ์ปดํ“จํ„ฐ ๋””์Šคํฌ(์œˆ๋„์šฐ, ๋ฆฌ๋ˆ…์Šค, MacOS/๊ฐœ์ธ, ์„œ๋ฒ„, ํด๋ผ์šฐ๋“œ)
  • ๋ฉ”๋ชจ๋ฆฌ ํฌ๋ Œ์‹ → ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ(RAM)
  • ๋„คํŠธ์›Œํฌ ํฌ๋ Œ์‹ → ๋„คํŠธ์›Œํฌ ํŒจํ‚ท, ๋„คํŠธ์›Œํฌ ์žฅ๋น„ ๋กœ๊ทธ, ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ์„ค์ •๋“ค
  • ๋ชจ๋ฐ”์ผ ํฌ๋ Œ์‹ → ๋ชจ๋ฐ”์ผ ๋””๋ฐ”์ด์Šค(์ €์žฅ์†Œ, ๋ฉ”๋ชจ๋ฆฌ) / IoT๋””๋ฐ”์ด์Šค
  • ๊ธฐํƒ€ → ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํฌ๋ Œ์‹, ์•”ํ˜ธ ํฌ๋ Œ์‹, ํšŒ๊ณ„ ํฌ๋ Œ์‹, ์†Œ์Šค์ฝ”๋“œ ํฌ๋ Œ์‹ ๋“ฑ

ํŠธ๋ž™์—์„œ ๋ฐฐ์šธ ๊ฒƒ

๋””์ง€ํ„ธ ํฌ๋ Œ์‹ ์ˆ˜์‚ฌ๊ด€์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ์‚ฌ๊ฑด์ด ํ„ฐ์กŒ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ์ˆ˜์‚ฌํ•  ๊ฒƒ์ธ๊ฐ€์— ๊ด€ํ•ด


2. ์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ

์Šคํ…Œ์นด๋…ธ๊ทธ๋ž˜ํ”ผ๋ž€?

Steganography

  • Stegano(๊ฐ์ถฐ์ง„) + Graphy(๊ธ€) = ๊ฐ์ถฐ์ง„ ๊ธ€
  • ์ „๋‹ฌํ•˜๋ ค๋Š” ๊ธฐ๋ฐ€ ์ •๋ณด๋ฅผ ๋‹ค๋ฅธ ํŒŒ์ผ, ๋ฉ”์‹œ์ง€, ์ด๋ฏธ์ง€ ๋˜๋Š” ๋น„๋””์˜ค ์•ˆ์— ์ˆจ๊ธฐ๋Š” ์‹ฌ์ธต ์•”ํ˜ธ ๊ธฐ์ˆ 

์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ ์‹ค์Šต

์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ ํˆด

Forensically

Image Steganography

StegOnline

HxD


3. ๋„คํŠธ์›Œํฌ ํฌ๋ Œ์‹

๋„คํŠธ์›Œํฌ ํฌ๋ Œ์‹์ด๋ž€?

๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•˜์—ฌ ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ, ์•”ํ˜ธ ๋“ฑ์„ ํŠน์ •๋„๊ตฌ๋ฅผ ์ด์šฉํ•ญ ๊ฐ€๋กœ์ฑ„๊ฑฐ๋‚˜ ์„œ๋ฒ„์— ๋กœ๊ทธํ˜•ํƒœ๋กœ ์ €์žฅ๋œ ๊ฒƒ์„ ์ ‘๊ทผํ•˜์—ฌ ๋ถ„์„ํ•˜๋Š” ํฌ๋ Œ์‹ ๋ถ„์•ผ

  • ๋„คํŠธ์›Œํฌ ํŒจํ‚ท: ๋„คํŠธ์›Œํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ์กฐ๊ฐ

ํŒจํ‚ท ๋ถ„์„ ๋„๊ตฌ

WireShark

๋„คํŠธ์›Œํฌ ํŒจํ‚ท์„ ๊ฐ์‹œ ๋ฐ ๋ถ„์„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ,

ํŒจํ‚ท ๋ถ„์„ ๋„๊ตฌ ์ค‘ ์ด๋ฆ„์ด ๊ฐ€์žฅ ๋„๋ฆฌ ์•Œ๋ ค์ง„ ์†Œํ”„ํŠธ์›จ์–ด

  • GNU GPLv2 ๋ผ์ด์„ ์Šค(์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด)
  • ํฌ๋กœ์Šค ํ”Œ๋žซํผ(Windows, Linus, Mac ๋“ฑ ์ง€์›)
  • ํŒจํ‚ท ๋ถ„์„์„ ์œ„ํ•œ GUI ์ œ๊ณต
  • ๋ฌด์ฐจ๋ณ„ ๋ชจ๋“œ(promiscuous mode) ์ง€์›
  • Loopback ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹œ์Šคํ…œ์˜ ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ๋„ ๋ถ„์„ ๊ฐ€๋Šฅ
  • ํŒŒ์ผ ํ˜•ํƒœ๋กœ ๊ธฐ๋ก ๊ฐ€๋Šฅ

 

'E-COPS > 15th ๋น„๊ธฐ๋„ˆ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

WEEK3 - WEB HACKING  (2) 2024.11.11
WEEK3 - ๋„คํŠธ์›Œํฌํฌ๋ Œ์‹ ๋„๊ตฌ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•  (0) 2024.10.11
WEEK3 - REVERSING  (7) 2024.10.08
WEEK2 QUIZ - VCS, Buffer  (0) 2024.10.08
WEEK2 - Git, Flask  (1) 2024.10.08
728x90
์ž๋ฃŒํ˜•

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๋•Œ ์“ฐ์ด๋Š” ์ˆซ์ž, ๋ฌธ์ž์—ด ๋“ฑ๊ณผ ๊ฐ™์ด ์ž๋ฃŒ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๋œปํ•œ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋ณธ์ด์ž ํ•ต์‹ฌ ๋‹จ์œ„๊ฐ€ ๋ฐ”๋กœ ์ž๋ฃŒํ˜•์ด๋‹ค.


2.1 ์ˆซ์žํ˜•

์ˆซ์žํ˜•(Number): ์ˆซ์ž ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฃŒํ˜•

ํ•ญ๋ชฉ ํŒŒ์ด์ฌ ์‚ฌ์šฉ ์˜ˆ
์ •์ˆ˜ 123, -345, 0
์‹ค์ˆ˜ 123.45, -1234.5, 3.4e10
8์ง„์ˆ˜ 0o34, 0o25
16์ง„์ˆ˜ 0x2A, 0xFF

 

1. ์ˆซ์žํ˜•์€ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๊ณ  ์‚ฌ์šฉํ• ๊นŒ?

01. ์ •์ˆ˜ํ˜•

์ •์ˆ˜ํ˜•(integer): ์ •์ˆ˜๋ฅผ ๋œปํ•˜๋Š” ์ž๋ฃŒํ˜•

a = 124
a = -234
a = 0

 

02. ์‹ค์ˆ˜ํ˜•

์‹ค์ˆ˜ํ˜•(floating- point): ์†Œ์ˆ˜์ ์ด ํฌํ•จ๋œ ์ˆซ์ž

a = 1.2
a = -3.45

a = 4.24E10
a = 4.24e-10
  • ์ปดํ“จํ„ฐ์‹ ์ง€์ˆ˜ ํ‘œํ˜„ ๋ฐฉ์‹: 4.24e10 ๋˜๋Š” 4.24E10 ์ฒ˜๋Ÿผ ํ‘œํ˜„(e์™€ E ๋‘˜ ์ค‘ ์–ด๋Š ๊ฒƒ์„ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค)
  • 4.24E10 = 4.24*10^10
  • 4.24e-10 = 4.24*10^-10

03. 8์ง„์ˆ˜์™€ 16์ง„์ˆ˜

  • 8์ง„์ˆ˜(octal)๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ˆซ์ž๊ฐ€ 0o ๋˜๋Š” 0O(์ˆซ์ž 0 + ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž o ๋˜๋Š” ๋Œ€๋ฌธ์ž O)์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฉด ๋œ๋‹ค.
a = 0o177
print(a)

127

0o177 = 1x8^2 + 7x8^1 + 7 = 127

 

  • 16์ง„์ˆ˜(hexadecimal)๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” 0x๋กœ ์‹œ์ž‘ํ•˜๋ฉด ๋œ๋‹ค.
a = 0x8ff
b = 0xABC
print(b)

2748

0xABC = 10x16^2 + 11x16^1 + 12 = 2748 (A:10, B:11, C:12)


 

2. ์ˆซ์žํ˜•์„ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ์‚ฐ์ž

01. ์‚ฌ์น™ ์—ฐ์‚ฐ

02. x์˜ y์ œ๊ณฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ** ์—ฐ์‚ฐ์ž

  • ์ด ์—ฐ์‚ฐ์ž๋Š” x ** y์ฒ˜๋Ÿผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ x์˜ y์ œ๊ณฑ(x^y) ๊ฐ’์„ ๋ฆฌํ„ด

03. ๋‚˜๋ˆ—์…ˆ ํ›„ ๋‚˜๋จธ์ง€๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” % ์—ฐ์‚ฐ์ž

  • %๋Š” ๋‚˜๋ˆ—์…ˆ์˜ ๋‚˜๋จธ์ง€ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.
  • 7์„ 3์œผ๋กœ ๋‚˜๋ˆ„๋ฉด ๋‚˜๋จธ์ง€๋Š” 1, 3์„ 7๋กœ ๋‚˜๋ˆ„๋ฉด ๋‚˜๋จธ์ง€๋Š” 3์ด ๋  ๊ฒƒ์ด๋‹ค.

04. ๋‚˜๋ˆ—์…ˆ ํ›„ ๋ชซ์„ ๋ฆฌํ„ดํ•˜๋Š” // ์—ฐ์‚ฐ์ž

  • / ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 7 ๋‚˜๋ˆ„๊ธฐ 4๋ฅผ ํ•˜๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋Š” ์˜ˆ์ƒ๋Œ€๋กœ 1.75๊ฐ€ ๋œ๋‹ค.
  • ๋‚˜๋ˆ—์…ˆ ํ›„ ๋ชซ์„ ๋ฆฌํ„ดํ•˜๋Š” // ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉ

05. ๋ณตํ•ฉ ์—ฐ์‚ฐ

  • ๋ณตํ•ฉ ์—ฐ์‚ฐ์ž๋Š” ์•ž์„œ ์‚ดํŽด๋ณธ +, - ์™€ ๊ฐ™์€ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž์™€ ๋Œ€์ž… ์—ฐ์‚ฐ์ž(=)๋ฅผ ํ•ฉ์ณ ๋†“์€ ๊ฒƒ์ด๋‹ค.
>>> a = 1
>>> a = a + 1  # a + 1๋กœ ๊ณ„์‚ฐ๋œ ๊ฐ’์„ ๋‹ค์‹œ a์— ๋Œ€์ž…ํ•œ๋‹ค.
>>> print(a)
2

>>> a += 1
>>> a = 1
>>> a -= 1  # a = a - 1 ๊ณผ ๊ฐ™์Œ
>>> print(a)
0
  • a = a + 1 ์‹์— ์˜ํ•ด a์˜ ๊ฐ’์ด 1๋งŒํผ ์ฆ๊ฐ€๋œ๋‹ค. a = a + 1๊ณผ ๊ฐ™์€ ํ‘œํ˜„์‹์€ ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค.
  • a += 1์ด๋ผ๋Š” ํ‘œํ˜„์‹์€ a = a + 1์„ ์ค„์—ฌ์„œ ํ‘œํ˜„ํ•œ ๊ฒƒ์œผ๋กœ ์™„์ „ํžˆ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค.
  • ์—ฌ๊ธฐ์—์„œ ์‚ฌ์šฉํ•œ += ์™€ ๊ฐ™์€ ์—ฐ์‚ฐ์ž๋ฅผ ๋ณตํ•ฉ ์—ฐ์‚ฐ์ž๋ผ ๋ถ€๋ฅธ๋‹ค.
  • ๋งŒ์•ฝ a์˜ ๊ฐ’์„ 1๋งŒํผ ๊ฐ์†Œ์‹œํ‚ค๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ -= ๋ณตํ•ฉ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
+=, -=, *=, /=, //=, %=, **=

 

728x90

1.1 ํŒŒ์ด์ฌ์ด๋ž€?

  • ํŒŒ์ด์ฌ(Python)์€ 1990๋…„ ์•ˆ์Šคํ…Œ๋ฅด๋‹ด์˜ ๊ท€๋„ ๋ฐ˜ ๋กœ์„ฌ(Guido van rossum)์ด ๊ฐœ๋ฐœํ•œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด.
  • ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด: ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„์”ฉ ํ•ด์„ํ•œ ํ›„ ๊ทธ๋•Œ๊ทธ๋•Œ ์‹คํ–‰ํ•ด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด

1.2 ํŒŒ์ด์ฌ์˜ ํŠน์ง•

  1. ํŒŒ์ด์ฌ์€ ์ธ๊ฐ„๋‹ค์šด ์–ธ์–ด์ด๋‹ค
  2. ๋ฌธ๋ฒ•์ด ์‰ฌ์›Œ ๋น ๋ฅด๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค
  3. ๋ฌด๋ฃŒ์ด์ง€๋งŒ ๊ฐ•๋ ฅํ•˜๋‹ค
  4. ๊ฐ„๊ฒฐํ•˜๋‹ค
  5. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฆ๊ธฐ๊ฒŒ ํ•ด ์ค€๋‹ค
  6. ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค

1.3 ํŒŒ์ด์ฌ์œผ๋กœ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

ํŒŒ์ด์ฌ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ

  • ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • ์ธ๊ณต์ง€๋Šฅ๊ณผ ๋จธ์‹ ๋Ÿฌ๋‹
    • → ์‚ฌ์ดํ‚ท๋Ÿฐ(scikit-learn), ํ…์„œํ”Œ๋กœ(TensorFlow), ํŒŒ์ดํ† ์น˜(PyTorch), ์ผ€๋ผ์Šค(Keras)
  • ์ˆ˜์น˜ ์—ฐ์‚ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    • → ๋„˜ํŒŒ์ด(Numpy)
  • ๋ฐ์ดํ„ฐ ๋ถ„์„
    • → ๋„˜ํŒŒ์ด, ํŒ๋‹ค์Šค(Pandas), ๋งทํ”Œ๋กฏ๋ฆฝ(Matplotlib)
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    • → ์‚ฌ์ด๋ฒ ์ด์Šค(Sybase), ์ธํฌ๋ฏน์Šค(Infomix), ์˜ค๋ผํด(Oracle), MySQL, PostgreSQL, pickle
  • ์‹œ์Šคํ…œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ œ์ž‘ํ•˜๊ธฐ
  • GUI ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    • → Tkinter
  • C/C++์™€ ๊ฒฐํ•ฉํ•˜๊ธฐ
  • ์‚ฌ๋ฌผ ์ธํ„ฐ๋„ท


ํŒŒ์ด์ฌ์œผ๋กœ ํ•  ์ˆ˜ ์—†๋Š” ์ผ

  • ์‹œ์Šคํ…œ๊ณผ ๋ฐ€์ ‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜์—ญ
  • ๋ชจ๋ฐ”์ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

1.4 ํŒŒ์ด์ฌ ์„ค์น˜ํ•˜๊ธฐ

์œˆ๋„์šฐ์—์„œ ํŒŒ์ด์ฌ ์„ค์น˜ํ•˜๊ธฐ

1. ๋จผ์ € ํŒŒ์ด์ฌ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์˜ ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€(www.python.org/downloads)์—์„œ ์œˆ๋„์šฐ์šฉ ํŒŒ์ด์ฌ ์–ธ์–ด ํŒจํ‚ค์ง€๋ฅผ ๋‚ด๋ ค๋ฐ›๋Š”๋‹ค. ๋‹ค์Œ ํ™”๋ฉด์—์„œ Python 3.x๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฒ„์ „ ์ค‘ ๊ฐ€์žฅ ์ตœ์‹ ์˜ ์œˆ๋„์šฐ ์„ค์น˜ ํŒŒ์ผ์„ ๋‚ด๋ ค๋ฐ›์ž.

2. ์„ค์น˜ ํŒŒ์ผ์„ ์‹คํ–‰ํ•œ ํ›„ [Install Now]๋ฅผ ํด๋ฆญํ•˜๋ฉด ์„ค์น˜๊ฐ€ ์ง„ํ–‰๋œ๋‹ค. ์ด๋•Œ ํŒŒ์ด์ฌ์ด ์–ด๋Š ๊ณณ์—์„œ๋“ ์ง€ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก [Add python.exe to PATH] ์˜ต์…˜์„ ๋ฐ˜๋“œ์‹œ ์„ ํƒ.

3. ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด [close]๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ข…๋ฃŒํ•œ๋‹ค. ํŒŒ์ด์ฌ์ด ์ •์ƒ์ ์œผ๋กœ ์„ค์น˜๋˜์—ˆ๋‹ค๋ฉด [์‹œ์ž‘] ๋ฉ”๋‰ด์˜ ๊ฒ€์ƒ‰ ์ฐฝ์—์„œ python์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ํŒŒ์ด์ฌ ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

๋งฅ์—์„œ ํŒŒ์ด์ฌ ์„ค์น˜ํ•˜๊ธฐ

1. ํŒŒ์ด์ฌ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€(www.python.org)์—์„œ [Downloads] ๋ฉ”๋‰ด๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋งฅ(Mac)์šฉ ํŒŒ์ด์ฌ ์„ค์น˜ ํŒŒ์ผ์„ ๋‚ด๋ ค๋ฐ›์€ ํ›„ ๋‹ค์Œ ํ™”๋ฉด์—์„œ [Download Python 3.11.x]๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋œ๋‹ค.

2. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚ด๋ ค๋ฐ›์€ python-3.11.x-macos1.pkg ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜์—ฌ ์„ค์น˜.

3. ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ํŒŒ์ด์ฌ์ด ์ œ๋Œ€๋กœ ์„ค์น˜๋๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ช…๋ น์„ ์ž…๋ ฅํ•ด ์ž์‹ ์˜ ๋งฅ์— ์„ค์น˜๋œ ํŒŒ์ด์ฌ ๋ฒ„์ „์„ ํ™•์ธํ•ด ๋ณด์ž. ๊ตฌ ๋ฒ„์ „์˜ ๋งฅ์—๋Š” ํŒŒ์ด์ฌ 2.7 ๋ฒ„์ „์ด ๊ธฐ๋ณธ์œผ๋กœ ์„ค์น˜๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— python์„ ์ž…๋ ฅํ•˜๋ฉด ํŒŒ์ด์ฌ 2.7์ด ์‹คํ–‰๋œ๋‹ค. ๋งฅ์—์„œ๋Š” ํ•ญ์ƒ ‘python’ ๋Œ€์‹  ‘python3’ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์ž. ํŒŒ์ด์ฌ ๋ฒ„์ „์ด ์ œ๋Œ€๋กœ ์ถœ๋ ฅ๋˜๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜ํ•œ ๊ฒƒ์ด๋‹ค.

pahkey@mymac ~ % python3 -V
Python 3.11.2

1.5 ํŒŒ์ด์ฌ ๋‘˜๋Ÿฌ๋ณด๊ธฐ


01. ํŒŒ์ด์ฌ ๊ธฐ์ดˆ ์‹ค์Šต ์ค€๋น„ํ•˜๊ธฐ

  • ์œ„์™€ ๊ฐ™์€ ์ฐฝ์„ 'ํŒŒ์ด์ฌ ๋Œ€ํ™”ํ˜• ์ธํ„ฐํ”„๋ฆฌํ„ฐ'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • ์ธํ„ฐํ”„๋ฆฌํ„ฐ: ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ™˜๊ฒฝ
    • ํŒŒ์ด์ฌ ๋Œ€ํ™”ํ˜• ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ๊ฐ„๋‹จํžˆ 'ํŒŒ์ด์ฌ ์…ธ(python shell)'์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.
    • ํŒŒ์ด์ฌ ์…ธ ์ฐฝ์—์„œ 3๊ฐœ์˜ ๊บพ์€ ๊ด„ํ˜ธ >>>๋ฅผ ํ”„๋กฌํ”„ํŠธ(prompt)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
    • ํ”„๋กœํ”„ํŠธ >>>  ๊ฐ€ ์žˆ๋Š” ๊ณณ์ด ์ž…๋ ฅํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.
  • ๋Œ€ํ™”ํ˜•: ์ž…๋ ฅ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ’์ด ๋ฐ”๋กœ ์ถœ๋ ฅ๋œ๋‹ค.
    • ์ž…์ถœ๋ ฅ์ด ๋ฒˆ๊ฐˆ์•„ ์ด์–ด์ง€๋Š” ๊ฒƒ์ด ๋งˆ์น˜ ๋Œ€ํ™”ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋Š๊ปด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€ํ™”ํ˜• ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
    • ๋Œ€ํ™”ํ˜• ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ์ข…๋ฃŒํ•  ๋•Œ๋Š” Ctrl+z๋ฅผ ๋ˆ„๋ฅธ ํ›„ Enter๋ฅผ ๋ˆ„๋ฅธ๋‹ค.
    • ์œ ๋‹‰์Šค ๊ณ„์—ด์—์„œ๋Š” Ctrl+D ๋˜๋Š” quit()์ด๋‚˜ exit()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ข…๋ฃŒํ•œ๋‹ค.
>>> quit()
>>> exit()

>>> import sys
>>> sys.exit()

02. ํŒŒ์ด์ฌ ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ๋”ฐ๋ผ ํ•ด๋ณด๊ธฐ

์‚ฌ์น™์—ฐ์‚ฐ

๋ณ€์ˆ˜์— ์ˆซ์ž ๋Œ€์ž…ํ•˜๊ณ  ๊ณ„์‚ฐํ•˜๊ธฐ

๋ณ€์ˆ˜์— ๋ฌธ์ž ๋Œ€์ž…ํ•˜๊ณ  ์ถœ๋ ฅํ•˜๊ธฐ

  • a ๋ณ€์ˆ˜์— "Python"์ด๋ผ๋Š” ๊ฐ’์„ ๋Œ€์ž…ํ•œ ํ›„ print(a)๋ผ๊ณ  ์ž‘์„ฑํ•˜๋ฉด a ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.
    • ํŒŒ์ด์ฌ์€ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ณ„ํ•œ๋‹ค.
  • print๋ฌธ์„ ์ƒ๋žตํ•˜๊ณ  ๋ณ€์ˆ˜ ์ด๋ฆ„ a๋งŒ ์ž…๋ ฅํ•˜์—ฌ a์˜ ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์กฐ๊ฑด๋ฌธ if

  • ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์ฐฝ์—์„œ ํ”„๋กœํ”„ํŠธ >>> ์ž๋ฆฌ์— ๋Œ€์‹  ๋‚˜ํƒ€๋‚˜๋Š” '...'์€ ์•„์ง ์ž…๋ ฅ ์ค‘์ธ ๋ฌธ์žฅ์ด ๋๋‚˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
  • if a > 1: ๋‹ค์Œ ๋ฌธ์žฅ์€ spacebar 4๊ฐœ ๋˜๋Š” Tab์„ ์ด์šฉํ•ด ๋ฐ˜๋“œ์‹œ ๋“ค์—ฌ ์“ฐ๊ธฐ ํ•œ ํ›„์— ๋ฌธ์žฅ์„ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

๋ฐ˜๋ณต๋ฌธ for

  • for ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‹คํ–‰ํ•ด์•ผ ํ•  ๋ฌธ์žฅ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•ด์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ด ์ฝ”๋“œ์˜ ์˜๋ฏธ๋Š” [1,2,3] ๋ฆฌ์ŠคํŠธ์˜ ์•ž์—์„œ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด a ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•œ ํ›„ print(a)๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ผ ์˜๋ฏธ์ด๋‹ค.
  • ์ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด a์— ์ฐจ๋ก€๋Œ€๋กœ 1,2,3์ด๋ผ๋Š” ๊ฐ’์„ ๋Œ€์ž…ํ•˜๊ณ  print(a)์— ์˜ํ•ด์„œ ๊ทธ ๊ฐ’์„ ์ฐจ๋ก€๋Œ€๋กœ ์ถœ๋ ฅํ•œ๋‹ค. 

๋ฐ˜๋ณต๋ฌธ while

  • while๋ฌธ์€ ์ผ์ •ํ•œ ์กฐ๊ฑด์ด ๋งŒ์กฑํ•˜๋Š” ๋™์•ˆ ๋ฌธ์žฅ์„ ๋ฐ˜๋ณตํ•ด์„œ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • ์œ„ ์˜ˆ์ œ๋Š” i ๊ฐ’์ด 3๋ณด๋‹ค ์ž‘์€ ๋™์•ˆ i = i + 1๊ณผ print(i)๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ผ๋Š” ใ„ด๋ง์ด๋‹ค.
  • i = i + 1์ด๋ผ๋Š” ๋ฌธ์žฅ์€ 'i์˜ ๊ฐ’์„ 1์”ฉ ๋”ํ•œ๋‹ค'๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค.

ํ•จ์ˆ˜

  • def๋Š” ํŒŒ์ด์ฌ์—์„œ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์•ฝ์–ด์ด๋‹ค.
    • ์˜ˆ์•ฝ์–ด๋ž€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์ด๋ฏธ ๋ฌธ๋ฒ•์ ์ธ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋‹จ์–ด๋ฅผ ๋งํ•œ๋‹ค.
    • ๋ฆฌํ„ด(return)์€ ํ•จ์ˆ˜์—์„œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์œ„ ์˜ˆ์ œ๋Š” add ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ํ•จ์ˆ˜๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€๋ฅผ ๋ณด์—ฌ ์ค€๋‹ค.
  • add(a, b)์—์„œ a, b๋Š” ์ž…๋ ฅ๊ฐ’, a+b๋Š” ๊ฒฐ๊ด๊ฐ’์ด๋‹ค.
  • ์ฆ‰ 3, 4๊ฐ€ ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๋ฉด 3+4๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ด๊ฐ’์ธ 7์„ ๋ฆฌํ„ดํ•œ๋‹ค.

1.6 ํŒŒ์ด์ฌ๊ณผ ์—๋””ํ„ฐ

ํŒŒ์ด์ฌ ๋Œ€ํ™”ํ˜• ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ํ’€ ๋•Œ๋Š” ํŽธ๋ฆฌํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ์ค„์˜ ๋ณต์žกํ•œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ๋•Œ๋Š” ๋ถˆํŽธํ•˜๋‹ค.

๋˜ํ•œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ๋ผ์ ธ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ๋•Œ๋Š” ์—๋””ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

์—๋””ํ„ฐ(editor)๋ž€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋„๊ตฌ๋ฅผ ๋งํ•œ๋‹ค.

์—๋””ํ„ฐ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ํŒŒ์ด์ฌ IDLE์˜ ์—๋””ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

1. IDLE ์—๋””ํ„ฐ๋กœ ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑํ•˜๊ธฐ

 

  • IDLE ์…ธ์€ IDLE ์—๋””ํ„ฐ์—์„œ ์‹คํ–‰ํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฐ๊ณผ๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ์ฐฝ์œผ๋กœ, ์•ž์—์„œ ์‚ดํŽด๋ณธ ํŒŒ์ด์ฌ ์…ธ๊ณผ ๊ธฐ๋Šฅ ๋ฉด์—์„œ ๋™์ผํ•˜๋‹ค.
  • ๋‹จ, IDLE ์…ธ์—์„œ ๋“ค์—ฌ ์“ฐ๊ธฐ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๊ธฐ๋ณธ ํŒŒ์ด์ฌ ์…ธ๊ณผ ๋‹ค๋ฅด๋‹ค.

  • IDLE ์…ธ ์ฐฝ ๋ฉ”๋‰ด์—์„œ [File → New File]์„ ์„ ํƒ

  • # hello.py๋Š” ์ฃผ์„์ด๋‹ค.
  • ํŒŒ์ด์ฌ์—์„œ #์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์žฅ์€ ์ฃผ์„์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰์— ์ „ํ˜• ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค.
  • ์—ฌ๋Ÿฌ ์ค„์งœ๋ฆฌ ์ฃผ์„์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฐ๋”ฐ์˜ดํ‘œ 3๊ฐœ๋ฅผ ์—ฐ์†์œผ๋กœ ์‚ฌ์šฉํ•œ """ ์‚ฌ์ด์— ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.
    • ํฐ๋”ฐ์˜ดํ‘œ ๋Œ€์‹  ์ž‘์Œ๋”ฐ์˜ดํ‘œ 3๊ฐœ '''๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.

  • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰: Run → Run Module์„ ์„ ํƒํ•œ๋‹ค(๋‹จ์ถ•ํ‚ค: F5)

  • ๋กœ์ปฌ๋””์Šคํฌ(C:)๋กœ ์ด๋™ํ•œ ํ›„ 'doit'์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋””๋ ˆํ„ฐ๋ฆฌ(ํด๋”)๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ์•ˆ์— hello.py๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ํŒŒ์ผ์„ ์ €์žฅํ•˜์ž.
    • C:\์— ํŒŒ์ผ์„ ๋ฐ”๋กœ ์ €์žฅํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ผญ C:\ ํ•˜์œ„์— ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ๊ทธ ์•ˆ์— ํŒŒ์ผ์„ ์ €์žฅํ•˜์ž.
  • ์—๋””ํ„ฐ๋กœ ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ ํ›„ ์ €์žฅํ•  ๋•Œ๋Š” ํŒŒ์ผ ์ด๋ฆ„์˜ ํ™•์žฅ์ž๋ฅผ ํ•ญ์ƒ .py๋กœ ํ•ด์•ผ ํ•œ๋‹ค.
  • ํŒŒ์ผ์„ ์ €์žฅํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋œ๋‹ค. ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด IDLE ์…ธ ์ฐฝ์— ํ‘œ์‹œ๋œ๋‹ค.
# editor.py
a = "python"
print(a)
print(1 + 1)  # print ๋ฌธ์„ ์‚ฌ์šฉํ•ด์•ผ ๊ฒฐ๊ด๊ฐ’์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํŒŒ์ด์ฌ ์…ธ์˜ ๊ฒฝ์šฐ, ๋ณ€์ˆ˜ a์™€ ํ‘œํ˜„์‹ 1+1์˜ ๊ฐ’์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ print ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋˜์ง€๋งŒ print ํ•จ์ˆ˜ ์—†์ด๋„ ๊ทธ ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ•˜์ง€๋งŒ IDLE ์—๋””ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ์ฒ˜๋Ÿผ print ๋ฌธ์„ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

2. ๋ช…๋ น ํ”„๋กœํ”„ํŠธ ์ฐฝ์—์„œ ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ํ•˜๊ธฐ

  • IDLE ์—๋””ํ„ฐ์—์„œ F5๋ฅผ ๋ˆŒ๋Ÿฌ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์‹ค์ œ ์—…๋ฌด์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฐฝ์—์„œ ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ๋‹ค.

  • hello.py ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋จผ์ € ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฐฝ์„ ์—ด์–ด ๋ณด์ž. [์œˆ๋„์šฐ ํ‚ค + R]์„ ๋ˆ„๋ฅด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹คํ–‰ ์ฐฝ์ด ๋‚˜ํƒ€๋‚œ๋‹ค. ๋นˆ์นธ์— ‘cmd’๋ฅผ ์ž…๋ ฅํ•˜๊ณ  [ํ™•์ธ]์„ ํด๋ฆญํ•˜๋ฉด ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฐฝ์ด ์—ด๋ฆฐ๋‹ค.

  • C:\Users\yubin์—์„œ yubin์€ ํ•„์ž์˜ ์ปดํ“จํ„ฐ ์ด๋ฆ„์ด๋‹ค.

 

  • ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ”„๋กฌํ”„ํŠธ์—์„œ cd c:\doit์ด๋ผ๊ณ  ์ž…๋ ฅํ•œ๋‹ค.
  • cd(change directory) ๋ช…๋ น์–ด๋Š” ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ฐ”๋กœ ๋‹ค์Œ์— ๋‚˜์˜ค๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์˜ฎ๊ธด๋‹ค.

  • ํ”„๋กฌํ”„ํŠธ๊ฐ€ c:\doit>์œผ๋กœ ๋ฐ”๋€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ด์ œ ๋ช…๋ น์–ด python๊ณผ ์‹คํ–‰ํ•  ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋ฉด ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. 
  • ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•ด hello.py ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ด ๋ณด์ž. → python hello.py

3. ์ถ”์ฒœํ•˜๋Š” ์—๋””ํ„ฐ

๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค ์ฝ”๋“œ

  • ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค ์ฝ”๋“œ๋ฅผ ์„ค์น˜ํ•œ ํ›„ ํŒŒ์ด์ฌ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ๋จผ์ € ํ•ด์•ผ ํ•  ์ผ์€ ํŒŒ์ด์ฌ extension์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ.
  • ํŒŒ์ด์ฌ extension์€ ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค ์ฝ”๋“œ์˜ [Extensions] ๋ฉ”๋‰ด์—์„œ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŒŒ์ด์ฐธ

 

 

+ Recent posts