
์๋ฐ์์ ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํ๋ ์๋ฏธ๋ฅผ ์ด๋ณด์์๊ฒ ์๋ ค์ฃผ๋ฏ์ด ์ฝ๊ฒ ์ค๋ช ํด์ค.
๐งฑ 1. ๊ฐ์ฒด(Object)๋?
์๋ฐ์์ ๊ฐ์ฒด๋ “ํ์ค ์ธ๊ณ์ ์ฌ๋ฌผ์ด๋ ๊ฐ๋ ์ ํ๋ก๊ทธ๋จ ์์์ ํํํ ๊ฒ”์ด์์.
๐ 2. ๊ฐ์ฒด ์์ฑํ๊ธฐ (new ํค์๋)
์ค๊ณ๋(Car)๋ฅผ ๋ฐํ์ผ๋ก ์ง์ง ์๋์ฐจ๋ฅผ ๋ง๋๋ ๊ณผ์ ์ด ๋ฐ๋ก ๊ฐ์ฒด ์์ฑ์ด์์.
์ด๋ ์ฌ์ฉํ๋ ๊ฒ ๋ฐ๋ก new ํค์๋์
๋๋ค.
3. ๊ฐ์ฒด ์ด๊ธฐํ๋?
“์ด๊ธฐํ”๋ ๋ง๋ ๊ฐ์ฒด์ ์ด๊ธฐ๊ฐ์ ์ค์ ํ๋ ๊ณผ์ ์ด์์.
์ฆ, ์๋์ฐจ๋ฅผ ๋ง๋ค๊ณ ์๊น·์๋ ๊ฐ์ ๊ธฐ๋ณธ ์ํ๋ฅผ ์ ํด์ฃผ๋ ๊ฒ์ด์ฃ .
์๋ฐ์์ ๋ณ์๊ฐ ์ ์ธ๋ ์์น(“์ด๋์ ์๋๋”)์ ๋ฐ๋ผ ์ฑ๊ฒฉ์ด ๋ฌ๋ผ์ง๋ค๋ ๋ป์ด์์.
์ด๊ฑธ ์ดํดํ๋ฉด “ํ๋”, “์ง์ญ ๋ณ์(์์ด๋ฆฌ์ด)” ๊ฐ๋
์ด ํ ๋ฒ์ ์ ๋ฆฌ๋ผ์.
์ด๋ณด์ ๋๋์ด์ ๋ง์ถฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์ค๋ช ํ ๊ฒ์ ๐ฑ
๐งฉ 1. ๋ณ์๋ “์ด๋์์ ์ ์ธํ๋๋”์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค
์๋ฐ์์ ๋ณ์๋ ํฌ๊ฒ ๋ ์ข ๋ฅ๋ก ๋๋ ์ ๐
| ๊ตฌ๋ถ | ์ ์ธ | ์์น์์ | ํน์ง |
| ํ๋(Field) | ํด๋์ค ์, ๋ฉ์๋ ๋ฐ | class Student { int age; } | ๊ฐ์ฒด์ ์์ฑ(์ ๋ณด) ์ ์ ์ฅ |
| ์ง์ญ ๋ณ์(Local Variable) | ๋ฉ์๋ ์ (๋๋ ๋ธ๋ก ์) | void study() { int hour = 3; } | ์ผ์์ ์ผ๋ก๋ง ์ฐ์ |
2. ํ๋(Field) — ํด๋์ค์ “์์ฑ”
์๋ฅผ ๋ค์ด ์ด๋ฐ ํด๋์ค๊ฐ ์์ ๋:
์ฌ๊ธฐ์ name๊ณผ age๋ ํ๋(field) ์์.
- ํด๋์ค ์์ ์์ง๋ง ๋ฉ์๋ ๋ฐ์ ์์
- ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง ๋(new Student()) ํจ๊ป ์์ฑ๋จ
- ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋ ๋์ ๊ณ์ ์ ์ง๋จ
๐ง ์ฆ, ํ๋๋ “๊ฐ์ฒด๊ฐ ๊ธฐ์ตํด์ผ ํ ์ ๋ณด” ๋ผ๊ณ ์๊ฐํ๋ฉด ๋ผ์.
๐งญ 3. ์ง์ญ ๋ณ์(Local Variable) — “์์ ๋ฉ๋ชจ๋ฆฌ”
์ด์ ๋ฉ์๋ ์์ ๋ณ์๋ฅผ ํ๋ ๋ง๋ค์ด๋ณผ๊ฒ์ ๐
์ฌ๊ธฐ์ hour๋ ์ง์ญ ๋ณ์์์.
- ๋ฉ์๋ ์(๋ธ๋ก ์) ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
- ๋ฉ์๋๊ฐ ๋๋๋ฉด ์ฌ๋ผ์ง
- ์ด๊ธฐํ๋ฅผ ํ์ง ์์ผ๋ฉด(๊ฐ์ ๋ฃ์ง ์์ผ๋ฉด) ์ฌ์ฉ ๋ถ๊ฐ
๐ง ์ฆ, ์ง์ญ ๋ณ์๋ “์ ๊น ํ์ํ ์ ๋ณด” ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฐ์ฌ์.
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)์ด๋?
ํ๋ก๊ทธ๋จ์ ‘๊ฐ์ฒด’(object) ๋ค์ ๋ชจ์์ผ๋ก ๋ณด๊ณ ,
๊ฐ๊ฐ์ ๊ฐ์ฒด๊ฐ ๋ฐ์ดํฐ(์์ฑ) ์ ๊ธฐ๋ฅ(๋ฉ์๋) ์ ํจ๊ป ๊ฐ์ง๊ณ
์๋ก ์ํธ์์ฉํ๋ฉฐ ๋์ํ๋๋ก ์ค๊ณํ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ด์์.
๐ป ๋ํ์ ์ธ ๊ฐ์ฒด์งํฅ ์ธ์ด 10๊ฐ์ง
| 1 | Java (์๋ฐ) | ๊ฐ์ฅ ๋ํ์ ์ธ OOP ์ธ์ด. “๋ชจ๋ ๊ฒ์ ๊ฐ์ฒด๋ค.” JVM ์์์ ์คํ๋จ. |
| 2 | C++ | C ์ธ์ด์ ๊ฐ์ฒด์งํฅ ๊ฐ๋ (ํด๋์ค, ์์ ๋ฑ)์ ์ถ๊ฐํ ์ธ์ด. ์๋๊ฐ ๋น ๋ฆ. |
| 3 | Python (ํ์ด์ฌ) | ๊ฐ๊ฒฐํ ๋ฌธ๋ฒ + ๊ฐ์ฒด์งํฅ ์์ ์ง์. ํด๋์ค ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฒ ๊ตฌํ ๊ฐ๋ฅ. |
| 4 | C# (์จ์ต) | ๋ง์ดํฌ๋ก์ํํธ์ ๊ฐ์ฒด์งํฅ ์ธ์ด. Java์ ๋น์ทํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง. |
| 5 | Ruby (๋ฃจ๋น) | “๋ชจ๋ ๊ฒ์ด ๊ฐ์ฒด๋ค”๋ฅผ ์ฒ ์ ํ ๊ตฌํํ ์์ ๊ฐ์ฒด์งํฅ ์ธ์ด. |
| 6 | Swift (์ค์ํํธ) | iOS ๊ฐ๋ฐ์ฉ ์ธ์ด. ํด๋์ค์ ๊ตฌ์กฐ์ฒด๋ฅผ ์ด์ฉํ ๊ฐ์ฒด์งํฅ ๊ตฌ์กฐ๋ฅผ ์ง์. |
| 7 | Kotlin (์ฝํ๋ฆฐ) | ์๋ฐ ๊ธฐ๋ฐ์ ์ต์ ์ธ์ด. ๊ฐ๊ฒฐํ๋ฉด์๋ ์์ ํ ๊ฐ์ฒด์งํฅ + ํจ์ํ ์ง์. |
| 8 | Objective-C (์ต์ ํฐ๋ธC) | C์ ๊ฐ์ฒด์งํฅ ๊ฐ๋ ์ ์ถ๊ฐํ ์ธ์ด. ์์ iOS ๊ฐ๋ฐ์์ ์ฌ์ฉ. |
| 9 | Scala (์ค์นผ๋ผ) | ์๋ฐ ๊ธฐ๋ฐ, ๊ฐ์ฒด์งํฅ๊ณผ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ํจ๊ป ์ง์. |
| 10 | Smalltalk (์ค๋ชฐํ ํฌ) | ๊ฐ์ฒด์งํฅ ๊ฐ๋ ์ “์์กฐ”. ์๋ฐ, ๋ฃจ๋น, ํ์ด์ฌ ๋ฑ์ ํฐ ์ํฅ์ ์ค. |
๐ ์ฐธ๊ณ ๋ก
์์ฆ์ “๊ฐ์ฒด์งํฅ + ํจ์ํ” ์ ๊ฐ์ด ์ง์ํ๋ ํผํฉํ ์ธ์ด๋ ๋ง์์.
์๋ฅผ ๋ค์ด Kotlin, Scala, Swift ๊ฐ์ ์ธ์ด๋ค์ด์ฃ .
๐ฏ ์ ๋ฆฌ ํ ์ค
๊ฐ์ฒด์งํฅ ์ธ์ด๋ “ํ์ค์ ์ฌ๋ฌผ(๊ฐ์ฒด) ์ ํ๋ก๊ทธ๋๋ฐ ์์ผ๋ก ์ฎ๊ฒจ์
๊ทธ๋ค์ ๊ด๊ณ์ ํ๋์ ์ฝ๋๋ก ํํํ ์ ์๊ฒ ๋์์ฃผ๋ ์ธ์ด”์์.
์ ์ธ์ด๋ ?
1๏ธโฃ ์ ์ธ์ ๊ธฐ๋ณธ ๊ฐ๋
์ ์ธ์ด๋ ์ปดํจํฐ์๊ฒ “๋๋ ์ด๋ฐ ์ด๋ฆ์ ๊ฐ์ง ๋ณ์๋ ๋ฉ์๋, ํด๋์ค๋ฅผ ๋ง๋ค ๊ฑฐ์ผ”๋ผ๊ณ ์๋ ค์ฃผ๋ ๊ฒ์ด์์.
์ฆ, ๋ฌด์์ด ์๊ณ ์ด๋ค ํ์
์ธ์ง ์๋ ค์ฃผ๋ ๋จ๊ณ์
๋๋ค.
- ์์:
- ์ฌ๊ธฐ์ int → ๋ณ์์ ํ์
- age → ๋ณ์์ ์ด๋ฆ
- ์ด ์ค๋ง ์์ผ๋ฉด ๊ฐ์ ์์ง ์ ๋ฃ์ ์ํ์ ๋๋ค.
2๏ธโฃ ์ ์ธ๊ณผ ์ด๊ธฐํ
์ ์ธ ํ ๊ฐ์ ๋ฃ๋ ๊ฒ์ **์ด๊ธฐํ(initialization)**๋ผ๊ณ ํด์.
3๏ธโฃ ์ ์ธ์ด ๊ผญ ํ์ํ ์ด์
- ์ปดํ์ผ๋ฌ์๊ฒ “์ด ์ด๋ฆ์ ์์ผ๋ก ์ด๋ ๊ฒ ์ธ ๊ฑฐ์ผ”๋ผ๊ณ ์๋ ค์ผ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์์ด์.
- ํ์ ์ ์๋ ค์ฃผ๋ฉด, ์๋ฐ๊ฐ ํ์ ์์ ์ ์งํฌ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ซ์๋ฅผ ๋ฃ์ ๋ณ์์๋ ๋ฌธ์ ๋ฃ๋ ์ค์๋ฅผ ๋ฐฉ์งํ ์ ์์.
4๏ธโฃ ์ ์ธ์ ์ข ๋ฅ
- ๋ณ์ ์ ์ธ
- ๋ฉ์๋ ์ ์ธ
- ํด๋์ค ์ ์ธ
์ ๋ฆฌํ๋ฉด, **์ ์ธ = “์ด๋ฆ๊ณผ ํ์
์ ์ปดํจํฐ์๊ฒ ์๋ ค์ฃผ๋ ๊ฒ”**์ด์์.
์ด๊ธฐํ๋ ์ ํ์ด์ง๋ง, ๋์ค์ ์ฌ์ฉํ๋ ค๋ฉด ๋๋ถ๋ถ ์ด๊ธฐํ๋ฅผ ๊ฐ์ด ํด์ฃผ์ฃ .
1๏ธโฃ ๋น๋์ ๊ธฐ๋ณธ ๊ฐ๋
๋น๋ = ์ฐ๋ฆฌ๊ฐ ์ด ์ฝ๋๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ์คํ ๊ฐ๋ฅํ ํํ๋ก ๋ฐ๊พธ๋ ๊ณผ์ ์ด์์.
- ์๋ฐ์์๋ ์ฐ๋ฆฌ๊ฐ ์์ฑํ .java ํ์ผ(์์ค์ฝ๋)์ .class ํ์ผ(๋ฐ์ดํธ์ฝ๋)๋ก ๋ฐ๊พธ๋ ๊ณผ์
- ์ด ๋ฐ์ดํธ์ฝ๋๋ **JVM(Java Virtual Machine)**์์ ์คํ๋ ์ ์์ด์.
์ฆ:
์๋ฐ์์ **ํ๋ผ๋ฏธํฐ(parameter)**๊ฐ ๋ญ์ง ์ฝ๊ฒ ์ค๋ช ํด์ค๊ฒ์.
1๏ธโฃ ๊ธฐ๋ณธ ๊ฐ๋
ํ๋ผ๋ฏธํฐ = ๋ฉ์๋์ ์ ๋ฌ๋๋ ์ ๋ ฅ๊ฐ
- ๋ฉ์๋๋ฅผ ๋ ์ ์ฐํ๊ฒ ๋ง๋ค๊ธฐ ์ํด ์ธ๋ถ์์ ๊ฐ์ ์ ๋ฌ๋ฐ๋ ๋ณ์
- ๋ฉ์๋ ์์์๋ ์ผ๋ฐ ๋ณ์์ฒ๋ผ ์ฌ์ฉ ๊ฐ๋ฅ
2๏ธโฃ ์์
- ์ฌ๊ธฐ์ name์ด ํ๋ผ๋ฏธํฐ
- ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ ๊ฐ์ ๋ฃ์ด์ค ์ ์์
3๏ธโฃ ํ๋ผ๋ฏธํฐ vs ์ธ์
- ํ๋ผ๋ฏธํฐ(parameter): ๋ฉ์๋ ์ ์ ์ ๋ณ์ ์ด๋ฆ
- ์ธ์(argument): ๋ฉ์๋ ํธ์ถ ์ ์ค์ ๊ฐ
4๏ธโฃ ์ ๋ฆฌ
- ํ๋ผ๋ฏธํฐ๋ ๋ฉ์๋์ ์ ๋ฌํ ์ ๋ณด๋ฅผ ๋ด๋ ๋ณ์
- ๋ฉ์๋๋ฅผ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ์ค์ํ ์์
- ์ฌ๋ฌ ๊ฐ๋ ๊ฐ๋ฅ:
'Project ESG+AI > Tech Basics' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 9์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.21 |
|---|---|
| 8์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.20 |
| 6์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.16 |
| [์ฐธ๊ณ ]๊ณ์ฐ๊ธฐ ์ฝ๋ ์ง ๊ฑฐ (0) | 2025.10.15 |
| 5์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.15 |