Jieunny์ ๋ธ๋ก๊ทธ
S2) Unit 2. [JS] ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ๋ณธ๋ฌธ
S2) Unit 2. [JS] ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ
Jieunny 2023. 1. 13. 13:37๐ฃ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ
์ ์ฐจ์ ์ธ์ด | ๊ฐ์ฒด ์งํฅ ์ธ์ด |
์ด๊ธฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด C, ํฌํธ๋ ๋ฑ |
ํ๋์ ์ธ์ด๋ค Java, C++, C# ๋ฑ |
- ์์ฐจ์ ์ธ ๋ช
๋ น์ ์กฐํฉ (๊ธฐ๊ปํด์ผ ํจ์๋ก ์ด๋ํ๋ ๊ฒ์ด ์ ๋ถ) |
- ํด๋์ค๋ผ๊ณ ๋ถ๋ฅด๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฒญ์ฌ์ง์ ์ฌ์ฉํด ์ฝ๋ ์์ฑ - ๋ฐ์ดํฐ์ ๊ธฐ๋ฅ์ ํ๋ฒ์ ๋ฌถ์ด์ ์ฒ๋ฆฌ ๊ฐ๋ฅ |
โ๏ธ JS ๋ ์๋ฐํ ๊ฐ์ฒด ์งํฅ ์ธ์ด๋ ์๋์ง๋ง ๊ฐ์ฒด ์งํฅ ํจํด์ผ๋ก ์์ฑํ ์ ์๋ค.
๐ฃ OOP : ํ๋ก๊ทธ๋จ ์ค๊ณ ์ฒ ํ
1๏ธโฃ Encapsulation (์บก์ํ)
โฐ ๋ฐ์ดํฐ(์์ฑ)์ ๊ธฐ๋ฅ(๋ฉ์๋)์ ํ๋์ ๋จ์๋ก ๋ฌถ๋ ๊ฒ (ํ๋์ ๊ฐ์ฒด ์์ ๋ฃ์ด์ ๋ฌถ๋ ๊ฒ)
โฐ ์๋ : ๊ตฌํ์ ์จ๊ธฐ๊ณ , ๋์์ ๋ ธ์ถ์ํค๋ ๊ฒ
โฐ ๋์จํ ๊ฒฐํฉ : ๋ฐ์ดํฐ์ ๊ธฐ๋ฅ๋ค์ด ๋์จํ๊ฒ ๊ฒฐํฉ๋๋ ๊ฒ
์ฝ๋ ์คํ ์์์ ๋ฐ๋ผ ์ ์ฐจ์ ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ ์๋๋ผ, ์ฝ๋๊ฐ ์์งํ๋ ์ค์ ๋ชจ์ต๊ณผ ๋ฎ๊ฒ ์ฝ๋๋ฅผ ๋ชจ์ ๊ฒฐํฉํ๋ ๊ฒ์ ์๋ฏธ
๐ ์ฝ๋๊ฐ ๋ณต์กํ์ง ์๊ฒ ๋ง๋ค๊ณ ์ฌ์ฌ์ฉ์ฑ์ ๋์ธ๋ค.
๐จ ์ฝ๋๋ ๋ฐ์ดํฐ๋ฅผ ์๋ํ๋ ๋ฐ ์ค์
2๏ธโฃ Abstraction (์ถ์ํ)
โฐ ๋ด๋ถ ๊ตฌํ์ ๋ณต์กํ๋ฐ, ์ค์ ๋ ธ์ถ๋๋ ๋ถ๋ถ์ ๋จ์ํ๊ฒ ๋ง๋ ๋ค๋ ๊ฒ (์ธํฐํ์ด์ค ๋จ์ํ)
โฐ ์ธํฐํ์ด์ค : ํด๋์ค ์ ์ ์ ๋ฉ์๋์ ์์ฑ๋ง ์ ์ํ ๊ฒ
๐ ์ฝ๋๊ฐ ๋ณต์กํ์ง ์๊ฒ ๋ง๋ค๊ณ , ๋จ์ํ๋ ์ฌ์ฉ์ผ๋ก ๋ณํ์ ๋ํ ์ํฅ์ ์ต์ํํ๋ค.
๐จ ํ์ํ์ง ์์ ๋ฉ์๋๋ฅผ ์จ๊ธฐ๊ณ , ๋จ์ํ ์ด๋ฆ์ผ๋ก ์ ์ํ๋ ๊ฒ์ ์ค์
3๏ธโฃ Inheritance (์์)
โฐ ๋ถ๋ชจ(๊ธฐ๋ณธ) ํด๋์ค์ ํน์ง์ ์์(ํ์) ํด๋์ค๊ฐ ๋ฌผ๋ ค๋ฐ๋ ๊ฒ
โฐ ex) ํ์ ํด๋์ค๋ ์ฌ๋ ํด๋์ค๋ฅผ ์์๋ฐ์ ์ ์๊ณ , ์ถ๊ฐ์ ์ผ๋ก ๊ณต๋ถํ๋ค, ํ์ต ๋ด์ฉ ๋ฑ๊ณผ ๊ฐ์ ์์ฑ/ ๋ฉ์๋๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
๐ ๋ถํ์ํ ์ฝ๋๋ฅผ ์ค์ฌ ์ฌ์ฌ์ฉ์ฑ์ ๋์ธ๋ค.
4๏ธโฃ Polymorphism (๋คํ์ฑ)
โฐ ๋๊ฐ์ ๋ฉ์๋๋ผ ํ๋๋ผ๋ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋ ์ ์๋ค.
๐ ์กฐ๊ฑด๋ฌธ ๋์ ๊ฐ์ฒด์ ํน์ฑ์ ๋ง๊ฒ ๋ฌ๋ฆฌ ์์ฑํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ง๋ค.
๐ฃ ๊ฐ์ฒด ์งํฅ ์ธ์ด์ JS ์ ์ฐจ์ด์
๐จ Java, TS ์ฒ๋ผ JS ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ธฐ๋ฅ
1๏ธโฃ ์๋ํ(private)์ ํ๊ณ
โฐ Java๋ TS์๋ ํด๋์ค ๋ด๋ถ์์๋ง ์ฐ์ด๋ ์์ฑ, ๋ฉ์๋๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด private ํค์๋๋ฅผ ์ ๊ณตํ๋ค.
2๏ธโฃ ์ถ์ํ(interface) ๊ธฐ๋ฅ์ ๋ถ์ฌ
โฐJava๋ TS๋ ์ธ์ด์ ์ฃผ์ ๊ธฐ๋ฅ์ผ๋ก interface๋ฅผ ๊ตฌํํด ๋์๋ค.
// TypeScript ๋ฌธ๋ฒ์
๋๋ค.
interface ClockInterface {
currentTime: Date;
setTime(d: Date): void;
}
class Clock implements ClockInterface {
currentTime: Date = new Date();
setTime(d: Date) {
this.currentTime = d;
}
constructor(h: number, m: number) {}
}
โฐ ํด๋์ค๋ฅผ ์ด์ฉํ๋ ์ ์ฅ์์ ๋ ธ์ถ๋ ์ธํฐํ์ด์ค๋ฅผ ํตํด '์ด ํด๋์ค๋ ๋ฉ์๋ ์ด๋ฆ์ด ์๋ํ ๋ฐ๋๋ก ์๋ํ ๊ฒ์ด๋ค' ๋ผ๋ ๊ฒ์ ๋๋ฌ๋ธ๋ค.
'CodeStates > learning contents' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
S2) Unit 3. [JS] ๋น๋๊ธฐ(Callback, Promise, Async/Await) (0) | 2023.01.17 |
---|---|
S2) Unit 2. [JS] ํ๋กํ ํ์ (0) | 2023.01.13 |
S2) Unit 2. [JS] ํด๋์ค์ ์ธ์คํด์ค (0) | 2023.01.13 |
S2) Unit 1. [JS] ๊ณ ์ฐจํจ์ (0) | 2023.01.12 |
Unit 11. ํ์ด์ง ๋ค์ด์ & ์น ์คํ ๋ฆฌ์ง (0) | 2023.01.04 |