์ด ์ฑ ์ ์ฃผ๋์ด ๊ฐ๋ฐ์๋ค์๊ฒ ๋ง์ด ์ถ์ฒ๋๋ ์ฝ๋ฉ ๊ต๊ณผ์๋ผ๊ณ ๋ณผ ์์๋ค.
์ด ์ฑ ์ ํตํด ์ฝ๋์ ํ๋ฆฌํฐ๋ฅผ ๋์ฌ๋ณด์.
์กฐ์ง ๋ด ๋๋ ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํ ์, ์๋ก ํฌ๋ก์ค ์ฒดํน์ ํ๋ฉด์ ์ค์ํ ๋ถ๋ถ๋ค์ ๋ณด์ํ๊ณ ์ฝ๋์ ํ๋ฆฌํฐ๋ฅผ ๋์ผ ์ ์๋ ๊ธฐ๋ํจ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค.
์ผ์ฃผ์ผ์ 3์ฑํฐ ์ฉ ์ฝ๊ณ ๊ฐ์ ํ ์ฑํฐ์ฉ ๋ฐํ ๋ฒ์๋ฅผ ์ ํ
๋ชจ๋ ์ฌ๋์ ๋ฐํ ๋ฒ์๋ฅผ ์์ต ํด์์ผ ํจ
๊ฐ์์ ๋ฒ์๋ ๋ฐํํ๊ณ ์ง์ ์๋ต ์งํ
โ
1์ฃผ์ฐจ ๊นจ๋ํ ์ฝ๋, ์๋ฏธ ์๋ ์ด๋ฆ, ํจ์
โ
2์ฃผ์ฐจ ์ฃผ์, ํ์ ๋ง์ถ๊ธฐ, ๊ฐ์ฒด์ ์๋ฃ ๊ตฌ์กฐ
โ
3์ฃผ์ฐจ ๊ฒฝ๊ณ, ๋จ์ ํ
์คํธ, ํด๋์ค, ์์คํ
, ์ฐฝ๋ฐ์ฑ
~ ์ดํ์ ์ฑํฐ๋ค์ JAVA ์ธ์ด์ ์๊ธฐ๋ค์ด ๋ง์์ ์๋ตํ๋ค.
์ ์ง๋ณด์๋ฅผ ํ๋ค๋ณด๋ฉด ๊ธฐ์กด์ ๋๋ฌ์ด ์ฝ๋๋ค์ด ๋์ค์ ์ ์ง๋ณด์ ํ๊ธฐ ํ๋ค๊ฒ ๋ง๋ ๋ค.
๋ง์น ๊ฑฐ์น ์ ๊ธ์ ํํํ๋ ๊ฒ์ฒ๋ผ ์ ์ ์ฒ์์ด ์ฐ๊ฑฐ์ง๊ณ ์ฝ๋ ํ ์ค ์์ ํ ๋๋ง๋ค ๋ง์ ๋ถ๋ถ์ ์ ๊ฒฝ์จ์ผํ๋ค!
๋์์ฝ๋๊ฐ ์์๋ ์๋ก โ ์์ฐ์ฑ์ ๊ธฐํ๊ธ์์ ์ผ๋ก ๋จ์ด์ง๋ค.
๊นจ๋ํ ์ฝ๋๊ฐ ๋๊ธฐ ์ํด์ ,์ค๋ณต์ ํผํ๋ผ
ํ ๊ธฐ๋ฅ๋ง ์ํํ๋ผ
์ ๋๋ก ํํํด๋ผ
์๊ฒ ์ถ์ํ ํด๋ผ
์ฒ์ ์์๋ ๋ณด๋ค ๋ ๊นจ๋ํ๊ฒ ํด๋๊ณ ๊ฐ์ โ ์กฐ๊ธ์ฉ์ด๋ผ๋ ์ข์ผ๋ ์ฒ์๋ณด๋ค ์กฐ๊ธ์ด๋ผ๋ ๋์ ์ฝ๋๋ฅผ ๋ง๋ค๊ธฐ ์ํด ๋ ธ๋ ฅํ์.
ํ๋ฒ์ ๋คํ ํ์ ์๋ค.
if ์ ํ๋๋ง ๋ฐ๊ฟ๋ ๋ ๋์ ์ฝ๋๊ฐ ๋๋ค!
1. ๋ฐ์ํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ ์ฌ์ฉํ์
ํ๋ก๊ทธ๋๋ฐ์ ์ฌํ ํ๋์ด๊ธฐ ๋๋ฌธ์ด๋ค.
2. ๊ฒ์ํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ ์ฌ์ฉํ์
๋ณ์๋ช ์ ์ซ์๊ฐ ๋ค์ด๊ฐ๋ค๋ฉด ์์์ ๋ฒ๊ทธ๊ฐ ์์ ๊ฒฝ์ฐ ๊ฒ์์ผ๋ก ์ฐพ์๋ด๊ธฐ๊ฐ ํ๋ค๋ค. ๋ณ์๋ ์์๋ฅผ ์ฝ๋ ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฉํ๋ค๋ฉด ๊ฒ์ํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ด ๋ฐ๋์งํ๋ค.
const int WORK_DAYS_PER_WEEK = 5;
3. ์ธ์ฝ๋ฉ์ ํผํ๋ผ
์ ํ์ด๋ ๋ฒ์์ ๋ณด๊น์ง ์ธ์ฝ๋ฉ์ ๋ฃ์ผ๋ฉด ๊ทธ๋งํผ ์ด๋ฆ์ ํด๋ ํ๊ธฐ ์ด๋ ค์์ง๋ค.
4. ๋ณ์ ๋๋ ์์๋ช ์ด๋ฆ
๋ช ์ฌ๋ ๋ช ์ฌ๊ตฌ๊ฐ ์ ํฉํ๋ค.
// ๐ ์ข์์์
const Customer = a;
const WikiPage = b;
const Account = c;
// ๐ ๋์์์
const Processor = 1;
const Info = 2;
const Data = 3;
๋ฑ๊ณผ ๊ฐ์ ๋จ์ด๋ ํผํ๊ณ ๋์ฌ๋ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
5. ๊ธฐ๋ฐํ ์ด๋ฆ์ ํผํ๋ผ
์ฌ๋ฏธ๋ฅผ ์ ๋ํ๋ ์ด๋ฆ์ No
ex) HolyHandGrenade (= ์๋ฅํ)
์ด๋ผ๋ ํจ์๋ช
๋ณด๋ค๋ DeleteItems
๋ผ๋ ์ด๋ฆ์ด ๋ ์ข๋ค.
ํน์ ๋ฌธํ์์ ์ฌ์ฉํ๋ ๋๋ด์ ํผํ๋ ๊ฒ์ด ์ข๋ค.
์๋๋ฅผ ๋ถ๋ช ํ๊ณ ์์งํ๊ฒ ํํํ๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค.
6. ํ ๊ฐ๋ ์ ํ ๋จ์ด๋ง ์ฌ์ฉํ๋ผ
์ถ์์ ์ธ ๊ฐ๋ ํ๋์ ๋จ์ด ํ๋๋ฅผ ์ ํํด ์ด๋ฅผ ๊ณ ์ํ๋ค. ์๋ฅผ ๋ค์ด, ๋๊ฐ์ ๋ฉ์๋๋ฅผ ํด๋์ค๋ง๋ค fetch, retrieve, get์ผ๋ก ์ ๊ฐ๊ฐ ๋ถ๋ฅด๋ฉด ํผ๋์ค๋ฝ๋ค. ์ด๋ ๋ณ์์์ ์ด๋ ์ด๋ฆ์ ์ผ๋์ง ๊ธฐ์ตํ๊ธฐ ์ด๋ ต๋ค.
๋ฐ๋ผ์ ๋ณ์๋ช ์ ๋ ์์ ์ด๊ณ ์ผ๊ด์ ์ด์ด์ผ ํ๋ค. ๊ทธ๋์ผ ์ฃผ์์ ๋ค์ ธ๋ณด์ง ์๊ณ ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ฌ๋ฐ๋ฅธ ๋ฉ์๋๋ฅผ ์ ํํ๋ค.
7. ํด๋ฒ ์์ญ์์ ๊ฐ์ ธ์จ ์ด๋ฆ์ ์ฌ์ฉํ๋ผ
์ ์ฐ์ฉ์ด, ์๊ณ ๋ฆฌ์ฆ ์ด๋ฆ, ํจํด ์ด๋ฆ, ์ํ ์ฉ์ด ๋ฑ์ ์ฌ์ฉํด๋ ๊ด์ฐฎ๋ค.
ex) AccountVisitor
, JobQueue
์ฒ๋ผ ๊ธฐ์ ๊ฐ๋
์๋ ๊ธฐ์ ์ด๋ฆ์ด ๊ฐ์ฅ ์ ํฉํ ์ ํ.
8. ์๋ฏธ ์๋ ๋งฅ๋ฝ์ ์ถ๊ฐํ๋ผ
์ค์ค๋ก ์๋ฏธ๊ฐ ๋ถ๋ช ํ ์ด๋ฆ์ด ์์ง ์๋ค. ์ ๋์ด๋ฅผ ๋ถ์ด๋ฉด ์ข๋ค.
ex) firstName
, lastName
, street
, houseNumber
, city
, state
, zipcode
์ด์ ๊ฐ์ด ์ง์ด์ ๋ณ์๋ฅผ ํ์ด๋ณด๋ฉด ์ฃผ์๋ผ๋ ์ฌ์ค์ ๊ธ๋ฐฉ ์์์ฑ๋ค.
ํ์ง๋ง ์ฌ๊ธฐ์ state๋ผ๋ ๋ณ์ ํ๋๋ง ์ฌ์ฉํ๋ค๋ฉด? ๋ณ์ state๊ฐ ์ฃผ์ ์ผ๋ถ๋ผ๋ ์ฌ์ค์ ์์์ฑ๊น?
addr
๋ผ๋ ์ ๋์ด๋ฅผ ์ถ๊ฐํ์ฌ addrFirstName
/ addrLastName
/ addrState
๋ผ ์ฐ๋ฉด ๋งฅ๋ฝ์ด ์ข ๋ ๋ถ๋ช
ํด์ง๋ค.1. ์๊ฒ ๋ง๋ค์ด๋ผ
ํจ์๋ ์์์๋ก ์ข๋ค.
if, for ๋ฑ์ ๋ธ๋ก์ด ํ ์ค์ด์ด์ผ ํ๋ค.
๋ค์ฌ์ฐ๊ธฐ ์์ค๋ 1, 2๋จ ์ด์ด์ผ๋ง ํ๋ค.
2. 1๊ฐ์ง๋ง ํด๋ผ
ํจ์๋ 1๊ฐ์ง ์ผ๋ง ํด์ผ ํ๋ค.
์ด ๋ 1๊ฐ์ง ์ผ์ด๋ผ๋ ๊ฒ์ ํจ์์ ์ ๋ชฉ๊ณผ 1:1 ๋์์ด ๋๋ ์ผ์ด๋ค.
ํจ์์ ์ถ์ํ ๋ ๋ฒจ์ด ๋์ผํ ์์
๋ง ์ํํ๋ค๋ฉด 1๊ฐ์ง ์ผ์ด๋ผ๊ณ ํ ์ ์๋ค.
ํจ์ ์์์ ์๋ฏธ ์๋ ์ด๋ฆ์ผ๋ก ๋ค๋ฅธ ํจ์๋ฅผ ์ถ์ถํ ์ ์๋ค๋ฉด ๊ทธ ํจ์๋ ์ฌ๋ฌ ์ผ์ ํ๋ ์
์ด๋ค.
3. ์์ ์ ์ธ ์ด๋ฆ์ ์ฌ์ฉํ๋ผ.
ํ๋ผ๋ฏธํฐ์ ์์๋ฅผ ์ธ์ฐ๋ ๊ฒ๋ ์ด๋ ต๋ค.
๋ฐ๋ผ์ ํจ์ ์ด๋ฆ ์์ฒด์ ํ๋ผ๋ฏธํฐ์ ์์๋ฅผ ์์ ํ ์๋ ์๋ค.
๊ฐ์ฒด ๋ถํด๋ก ์จ๋ ์ข์ ๋ฏ. ์์๋ ์๊ด์์ด์ง๋ค.
4. ํ๋ผ๋ฏธํฐ
ํ๋ผ๋ฏธํฐ๋ ์ ์์๋ก ์ข๋ค. 4๊ฐ๋ฅผ ๋์ด๊ฐ๋ ๊ฒ์ ์ ๋ ์๋๋ค.
ํ๋๊ทธ ํ๋ผ๋ฏธํฐ๋ ์ถํ๋ค.
๋์ผํ ๊ฐ๋ ์ ๋ํ๋ด๋ ํ๋ผ๋ฏธํฐ๊ฐ ์ฌ๋ฌ๊ฐ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ์๋ ๊ฐ์ฒด๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ์ฌ์ฉํ์ฌ ํ๋ผ๋ฏธํฐ์ ๊ฐฏ์๋ฅผ ์ค์ผ ์ ์๋ค.
5. ๋ถ์ ํจ๊ณผ๋ฅผ ์ผ์ผํค์ง ๋ง๋ผ
๋ถ์ ํจ๊ณผ๋ฅผ ์ผ์ผํจ๋ค๋ ๊ฒ์ ํ๋ก์ ํธ๋ฅผ ์์์น ๋ชปํ๊ฒ ํ๊ณ ํจ์๊ฐ ์ฌ๋ฌ ์ผ์ ํ๋ค๋ ๊ฒ์ด๋ค.
6. ์ค๋ฅ ์ฝ๋๋ณด๋ค ์์ธ๋ฅผ ์ฌ์ฉํ๋ผ
์ค๋ฅ ์ฝ๋๋ if
๋ฑ์ ์ฌ์ฉํ์ฌ ์ค์ ๋ก ๋ฐ์ดํฐ๊ฐ ์๋ ๊ณณ์์ ๋ฐ๋ก ์ฒ๋ฆฌํด์ผํ๋ค. ํ์ง๋ง ์์ธ ์ฝ๋๋ ์ค์ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ณณ์์ ๋ ๋์ ์ฐจ์์์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค. ๋ฐ๋ผ์ ์์ธ ์ฝ๋๋ ์๋ ์ฝ๋์์ ๋ถ๋ฆฌ๋์ด ๊น๋ํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
์ค๋ฅ ์ฒ๋ฆฌ๋ ํ ๊ฐ์ง ์์
์ด๋ค.
์ค๋ฅ ์ฒ๋ฆฌ๋ง์ ํ๋ ํจ์๊ฐ ์์ด์ผ ๋ง๋
ํ๋ค.
7. ๋ฐ๋ณตํ์ง ๋ง๋ผ
8. ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ
ํจ์๊ฐ ์งง๋ค๋ฉด return, break, continue
๋ฅผ ์ฌ๋ฌ ์ฐจ๋ก ์ฌ์ฉํด๋ ๊ด์ฐฎ๋ค.
(ํจ์ํ ํ๋ก๊ทธ๋๋ฐ๊ณผ ์์ถฉ๋๋ ๋ด์ฉ๋ค)
๊ตณ์ด ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ง ์์๋ ๋๋ ์ ๋ณด๋ค์ ๊ฐ์ฒด์ ์ํ this
๋ฑ์ ์ด์ฉํ๋ฉด ๋๋ค.
ํ์ง๋ง ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์์๋ ์ด๋ฐ ๊ฒ๋ค์ ์ง์ํด์ผ ํ๋ค.
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋ณ ์ํ๋ฅผ ์ต๋ํ ํผํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ์น๊ด์ ์ํด์ ์ธ์๊ฐ ์กฐ๊ธ์ ๋์ด๋๋ ๋์ง ์์๊น ์ถ๋ค.
"์ ๋ฌ๋ฆฐ ์ฃผ์์ ๊ทธ ์ด๋ค ์ ๋ณด๋ณด๋ค ์ ์ฉํ๋ค.
๊ฒฝ์ํ๊ณ ๊ทผ๊ฑฐ ์๋ ์ฃผ์์ ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ ๋ค."
๊ฐ ์ด๋ฒ ์ฅ์ ๐ํต์ฌ ํฌ์ธํธ๐๋ผ๊ณ ์ง์ด ๋งํ ์ ์๋ค.
์ฐ๋ฆฌ๋ ์ฝ๋๋ก ์๋๋ฅผ ํํํ์ง ๋ชปํด, ์คํจ๋ฅผ ๋งํํ๊ธฐ ์ํด ์ฃผ์์ ์ฌ์ฉํ๋ค.
์ฃผ์์ ์ธ์ ๋ ์คํจ๋ฅผ ์๋ฏธํ๋ค. ๊ทธ๋์ ์ฃผ์์ ๋ฐ๊ฒจ ๋ง์ ์๋์ด ์๋๋ค. ์ง์ค์ ํ ๊ณณ์๋ง ์กด์ฌํ๋ค. ๋ฐ๋ก ์ฝ๋๋ค. ๋ถ์ ํํ ์ฃผ์์ ๋ ์๋ฅผ ํํนํ๊ณ ์ค๋ํ๋ค.
1.์ฃผ์์ ๋์ ์ฝ๋๋ฅผ ๋ณด์ํ์ง ๋ชปํ๋ค.
ํํ๋ ฅ์ด ํ๋ถํ๊ณ ๊น๋ํ๋ฉฐ ์ฃผ์์ด ๊ฑฐ์ ์๋ ์ฝ๋๊ฐ ๋ณต์กํ๊ณ ์ด์์ ํ๋ฉฐ ์ฃผ์์ด ๋ง์ด ๋ฌ๋ฆฐ ์ฝ๋๋ณด๋ค ์ข๋ค.
2. ์ฝ๋๋ก ์๋๋ฅผ ํํํ์
// ์ฒซ ๋ฒ์งธ ์ฝ๋
// ์ง์์๊ฒ ๋ณต์ง ํํน์ ๋ฐ์ ์๊ฒฉ์ด ์๋์ง ๊ฒ์ฌํ๋ค.
if((employee.flags & HOURLY_FLAG) &&
(employee.age > 65 ))
// ๋ ๋ฒ์งธ ์ฝ๋
if(employee.isEligibleForFullBenefits())
๋ ๋ฒ์งธ ์ฝ๋๋ ์ด๋ค๊ฐ? ๋ช ์ด๋ง ๋ ์๊ฐํ๋ฉด ์ฝ๋๋ก ๋๋ค์ ์๋๋ฅผ ํํํ ์ ์๋ค.
3. ์ข์ ์ฃผ์์ด๋
์ด๋ค ์ฃผ์์ ํ์ํ๊ฑฐ๋ ์ ์ตํ๋ค.
๋ฒ์ ์ธ ์ฃผ์
ํ์ฌ๊ฐ ์ ๋ฆฝํ ๊ตฌํ ํ์ค์ ๋ง์ถฐ ๋ฒ์ ์ธ ์ด์ ๋ก ํน์ ์ฃผ์์ ๋ฃ์ผ๋ผ๊ณ ๋ช
์ํ๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ ์์ค ํ์ผ ์ฒซ๋จธ๋ฆฌ์ ์ฃผ์์ผ๋ก ๋ค์ด๊ฐ๋ ์ ์๊ถ ์ ๋ณด์ ์์ ๊ถ ์ ๋ณด๋ ํ์ํ๊ณ ๋ ํ๋นํ๋ค.
์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์ฃผ์
๋๋ก๋ ๊ธฐ๋ณธ์ ์ธ ์ ๋ณด๋ฅผ ์ฃผ์์ผ๋ก ์ ๊ณตํ๋ฉด ํธ๋ฆฌํ๋ค.
์๋ฅผ ๋ค์ด, ๋ค์ ์ฃผ์์ ์ถ์ ๋ฉ์๋๊ฐ ๋ฐํํ ๊ฐ์ ์ค๋ช
ํ๋ค.
// ํ
์คํธ ์ค์ธ Responder ์ธ์คํฐ์ค๋ฅผ ๋ฐํํ๋ค.
protected abstract Responder responderInstance();
์์ ๊ฐ์ ์ฃผ์์ด ์ ์ฉํ๋ค ํ ์ง๋ผ๋, ๊ฐ๋ฅํ๋ค๋ฉด, ํจ์ ์ด๋ฆ์ ์ ๋ณด๋ฅผ ๋ด๋ ํธ์ด ์ข๋ค.
์ฃผ์์ผ๋ก ํฅ๋ฏธ๋ก์ด ๊ฒฐ์ ์ ๊ธฐ๋กํ ์์ ์ด๋ค. ๋ ๊ฐ์ฒด๋ฅผ ๋น๊ตํ ๋ ์ ์๋ ๋ค๋ฅธ ์ด๋ค ๊ฐ์ฒด๋ณด๋ค ์๊ธฐ ๊ฐ์ฒด์ ๋์ ์์๋ฅผ ์ฃผ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
4. ๊ฒฐ๊ณผ๋ฅผ ๊ฒฝ๊ณ ํ๋ ์ฃผ์
๋ค๋ฅธ ํ๋ก๊ทธ๋๋จธ์๊ฒ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฝ๊ณ ํ ๋ชฉ์ ์ผ๋ก ์ฃผ์์ ์ฌ์ฉํ๋ค. ์๋ฅผ ๋ค์ด ๋ค์์ ํน์ ํ
์คํธ ์ผ์ด์ค๋ฅผ ๊บผ์ผํ๋ ์ด์ ๋ฅผ ์ค๋ช
ํ๋ ์ฃผ์์ด๋ค.
// ์ฌ์ ์๊ฐ์ด ์ถฉ๋ถํ์ง ์๋ค๋ฉด ์คํํ์ง ๋ง์์ค
public void _testWithReallyBigFile()
{
}
5. TODO ์ฃผ์
์์ผ๋ก ํ ์ผ์ //TODO ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋๋ฉด ์์
ํ๊ธฐ์ ํธํ๋ค.
// TODO ์ฒดํฌ์์ ๋ชจ๋ธ์ ๋์
ํ๋ฉด ~~์ด์ฉ๊ณ ์ ์ฉ๊ณ
protected VersionInfo makeVersion()
6. HTML ์ฝ๋ ์ฃผ์์ ํ์ค๋ค
// <p> gkdgkdl </p>
์ด๋ฐ ์ฃผ์์ ํ555555555๋ค
ํ์์ด ํต์ผ๋์ง ์์ ์ฝ๋๋ ์ด์์ ํ๊ณ ๋ฌด์ฑ์ํด ๋ณด์ธ๋ค.
ํ๊ฐ์ ์ฝ๋ ํ์์ ๋ง์ถ๋ ๊ฒ์ ๋ฌด์๋ณด๋ค ์ค์ํ๋ค.
์ฝ๋ ํ์์ ํฌ๊ฒ ์ธ๋ก(ํ ๊ธธ์ด)์ ๊ฐ๋ก๊ฐ ์๋ค.
1. ์ธ๋ก (ํ ๊ธธ์ด)
ํ ๊ธธ์ด๋ ์งง์ ์๋ก ์ข๋ค.
์ ๋ฌธ ๊ธฐ์ฌ์ฒ๋ผ ์์ฑํ๋ผ.
๊ฐ๋ ์ ๋น ํ์ผ๋ก ๋ถ๋ฆฌํ๋ผ.
์๋ก ๋ฐ์งํ ์ฝ๋ ํ์ ์ธ๋ก๋ก ๊ฐ๊น์ด ๋์ด๋ผ
๋ณ์๋ ์ฌ์ฉํ๋ ์์น์ ์ต๋ํ ๊ฐ๊น์ด ๋์ด๋ผ
์ข ์ ํจ์๋ ๊ฐ๊น์ด ๋์ด๋ผ
ํธ์ถ๋๋ ํจ์๋ ํธ์ถํ๋ ํจ์ ์๋์ ๋์ด๋ผ
๋น์ทํ ๋์์ ํ๋ ํจ์๋ ๊ฐ๊น์ด ๋์ด๋ผ
2. ๊ฐ๋ก
๊ฐ๋ก๋ ์งง์ผ๋ฉด ์ข๋ค.
๊ณต๋ฐฑ์ ์ฌ์ฉํด ๋ฐ์ ํ ๊ฐ๋ ๊ณผ ๋์จํ ๊ฐ๋ ์ ํํํ๋ผ.
ex)
ํ ๋น์๋ ์ข์ฐ๋ก ๊ณต๋ฐฑ์ ์ฃผ์ด ๋ถ๋ฆฌ๋ ๊ฐ๋
์ด๋ผ๋ ์ธ์์ ์ค๋ค.
ํจ์์ ์ธ์๋ ์๋ก ๋ถ์ฌ์ ๋ฐ์ ํ ๊ฐ๋
์ด๋ผ๋ ์ธ์์ ์ค๋ค.
// ์ข์ฐ์ ๊ณต๋ฐฑ์ด ๋ค์ด๊ฐ ํ ๋น์
cosnt a = 7;
// ์ข์ฐ์ ๊ณต๋ฐฑ์ด ์๋ ํจ์์ ์ธ์
function add(a, b) {
return a + b;
};
3. ๋ค์ฌ์ฐ๊ธฐ
์ค์ฝํ๋ฅผ ๋ค์ฌ์ฐ๊ธฐ๋ก ํํํ๋ผ.
ex)
for, while, function internalโฆ
1. ์๋ฃ ์ถ์ํ
ํด๋์ค๋ ๊ตฌํ์ ์ธ๋ถ๋ก ๋ถํฐ ์จ๊ธฐ๋๊ฒ ์ข๋ค.
๊ฐ์ฒด๋ ๋ค๋ก ๋ฐ์ดํฐ๋ฅผ ์จ๊ธด ์ฑ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ํจ์๋ง ๊ณต๊ฐํ๋ค.
์๋ฃ ๊ตฌ์กฐ๋ ์๋ฃ๋ฅผ ๊ทธ๋๋ก ๊ณต๊ฐํ๊ณ ๋ณ๋ค๋ฅธ ํจ์ ์ ๊ณต ์ํจ.
2. ์ ์ฐจ์งํฅ vs ๊ฐ์ฒด ์งํฅ
์ ์ฐจ์ ์ธ ์ฝ๋๋ ๊ธฐ์กด ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์์ผ๋ฉด์ ์ ํจ์๋ฅผ ์ถ๊ฐํ๊ธฐ ์ฝ๋ค.
๊ฐ์ฒด ์งํฅ์ฝ๋๋ ๊ธฐ์กด ํจ์๋ฅผ ๋ณ๊ฒฝํ์ง ์์ผ๋ฉด์ ์ ํด๋์ค๋ฅผ ์ถ๊ฐํ๊ธฐ ์ฝ๋ค.
3. ๋๋ฏธํฐ ๋ฒ์น
๋ชจ๋์ ์์ ์ด ์กฐ์ํ๋ ๊ฐ์ฒด์ ์์ฌ์ ์ ๋ชฐ๋ผ์ผํ๋ค๋ ๋ฒ์น!
์ฆ, ๊ฐ์ฒด๋ ์กฐํ ํจ์๋ก ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ๊ณต๊ฐํ๋ฉด ์๋๋ค๋ ์๋ฏธ
๋ฉ์๋ ์ฒด์ด๋์ ๊ธฐ์ฐจ์ถฉ๋์ ์ผ์ผํจ๋ค. ์กฐ์กํ๋ค
text.toLowerCase().push() ~~~ ์ด์ฉ๊ณ ์ ์ฉ๊ณ
// ์ด๊ฒ์ด ๋ฉ์๋ ์ฒด์ด๋์ด๋ผ๊ณ ํ๋ค. = ๊ธฐ์ฐจ์ถฉ๋์ด๋ผ ํํํจ
๐คฏ ๋ฉ์๋ ์ฒด์ด๋ ๋์๊ฑด๊ฐ?
๊ฐ์ฒด์์ ํ์ฉ๋ ๋ฉ์๋๊ฐ ๋ฐํํ๋ ๊ฐ์ฒด์ ๋ฉ์๋๋ ํธ์ถํ๋ฉด ์ ๋๋ค.
๊ฐ์ฒด ์๊ฒ ๋ญ๊ฐ๋ฅผ ํ๋ผ๊ณ ๋งํด์ผํ๋ค. ์์ ๋๋ฌ๋ด๋ผ๊ณ ๋งํ๋ฉด ์๋๋ค. ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๋น์ท?
4. ์๋ฃ์ ๋ฌ๊ฐ์ฒด (DTO)
์ฃผ๋ก ๋ฐฑ์๋์์ ์ปจํธ๋กค๋ฌ์์ ๋ฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋งคํํ ๋ ์ฐ๊ฑฐ๋ ๋ ์ด์ด ์ฌ์ด์์ ์๋ฃ๋ฅผ ์ ๋ฌํ ๋ ์ฐ์ธ๋ค.
5. ๊ฒฐ๋ก
์์คํ ์ ๊ตฌํํ ๋, ์๋ก์ด ์๋ฃ ํ์ ์ ์ถ๊ฐํ๋ ์ ์ฐ์ฑ์ด ํ์ํ๋ฉด ๊ฐ์ฒด๊ฐ ๋ ์ ํฉ
์๋ก์ด ๋์์ ์ถ๊ฐํ๋ ์ ์ฐ์ฑ์ด ํ์ํ๋ฉด ์๋ฃ๊ตฌ์กฐ์ ์ ์ฐจ์ ์ธ ์ฝ๋๊ฐ ๋ ์ ํฉ.
ํธ๊ฒฌ ์์ด ์ต์ ์ธ ํด๊ฒฐ์ฑ ์ ์ ํํ์!
ํจํค์ง ์ ๊ณต์๋ ํ๋ ์์ํฌ ์ ๊ณต์๋ ์ ์ฉ์ฑ์ ์ต๋ํ ๋ํ๋ ค๊ณ ์ ์ด๋ค.
ํ ์๋ก, Map์ ์ดํด๋ณด์. ์ด๋ ๊ต์ฅํ ๋ค์ํ ์ธํฐํ์ด์ค๋ก ์๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
Map์ด ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ฑ๊ณผ ์ ์ฐ์ฑ์ ํ์คํ ์ ์ฉํ์ง๋ง ๊ทธ๋งํผ ์ํ๋ ํฌ๋ค.
Map sensors = new HashMap();
Sensor ๊ฐ์ฒด๊ฐ ํ์ํ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ด Sensor ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์จ๋ค.
Sensor s = (Sensor)sensors.get(sensorId);
์ด์ ๊ฐ์ ์ฝ๋๋ ๊นจ๋ํ ์ฝ๋๋ผ ๋ณด๊ธฐ๊ฐ ์ด๋ ต๋ค. ์ ๋ค๋ฆญ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋ ๊ฐ๋ ์ฑ์ด ํฌ๊ฒ ๋์์ง๋ค.
Map<String, Sensor> sensors = new HashMap<Sensor>();
ps. Java๋ผ ๋ญ์๋ฆฐ์ง ์ดํด๊ฐ โฆ ์ํผ ์ ๋ค๋ฆญ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ ์ฑ์ด ๋์์ง๋ค์ ์ค์ ์ ๋๋ฉด ๋ ๋ฏ
์ธ๋ถ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ ์๊ฐ์ ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ถ์ํ๊ธฐ ์ฌ์์ง๋ค.
์ฐ๋ฆฌ ์์ ์ ์ํด ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ ์ฝ๋๋ฅผ ํ ์คํธํ๋ ํธ์ด ๋ฐ๋์งํ๋ค.
๋๋ก๋ ์ฐ๋ฆฌ ๋ฒ๊ทธ์ธ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ๊ทธ์ธ์ง ์ฐพ์๋ด๋๋ผ ์ค๋ ๋๋ฒ๊น ์ผ๋ก ๊ณจ์น๋ฅผ ์๋๋ค.
์ธ๋ถ ์ฝ๋๋ฅผ ์ตํ๊ธฐ๋ ์ด๋ ต๊ณ ํตํฉ ํ๊ธฐ๋ ์ด๋ ค์ด๋ฐ, ์ด ๋ ๊ฐ์ง๋ฅผ ๋์์ ํ๊ธฐ์๋ ๋ ๋ฐฐ๋ ์ด๋ ค์์ ๊ฒช์ ์๊ฐ ์๋ค.
๊ฐ๋จํ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํด์ ์ธ๋ถ ์ฝ๋๋ฅผ ์ตํ๋ณด์. โ ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๐ํ์ต ํ ์คํธ๐ ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
ํ์ต ํ ์คํธ๋ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ๋ ค๋ ๋ฐฉ์๋๋ก ์ธ๋ถ API๋ฅผ ํธ์ถํ๋ค.
ํต์ ๋ ํ๊ฒฝ์์ API๋ฅผ ์ ๋๋ก ์ดํดํ๋์ง ํ์ธํ๋ ์ ์ด๋ค. ํ์ต ํ ์คํธ๋ API๋ฅผ ์ฌ์ฉํ๋ ค๋ ๋ชฉ์ ์ ์ด์ ์ ๋๋ค.
์ํ์น์ log4j๋ผ๋ ํ ์คํธ๋ฅผ ํตํด์ ์ฝ๋์ ๋ช ํ์ฑ์ ์ํด ํ ์คํธ ํ๋ค๋ ๋ด์ฉ๋ค์โฆ
ํ์ต ํ ์คํธ๋ ์ดํด๋๋ฅผ ๋์ฌ์ฃผ๋ ์ ํํ ์คํ์ด๋ค.
๊ฒฝ๊ณ์ ๊ด๋ จํด ๋ ๋ค๋ฅธ ์ ํ์ ์๋ ์ฝ๋์ ๋ชจ๋ฅด๋ ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒฝ๊ณ๋ค.
๋๋ก๋ ์ฐ๋ฆฌ์ ์ง์์ด ๊ฒฝ๊ณ๋ฅผ ๋๋จธ ๋ฏธ์น์ง ๋ชปํ๋ ์ฝ๋ ์์ญ๋ ์๋ค.
์ด ๋ด์ฉ์ ์์ฝํ์๋ฉด, ์ฌ์ฉํ api๋ ๋ฉ์๋, ํจ์ ๋ฑ๋ฑ์ ์บก์ํํ์. ๊ทธ๋ผ ๋ด์ฉ์ด ๋ฐ๋ ๋ ์์ ํ ์ฝ๋๋ฅผ ํ๊ณณ์ผ๋ก ๋ชจ์๊ธฐ ๋๋ฌธ์ ๋ฐ๊พธ๋ฉด์ ํ ์คํธ๋ ์์ฃผ ํธํ๊ฒ ์งํ๋ ์๊ฐ ์๋ค.
๊ทธ๋ผ API ์ธํฐํ์ด์ค๊ฐ ๋์จ ๋ค์ ๊ฒฝ๊ณ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํด ์ฐ๋ฆฌ๊ฐ API๋ฅผ ์ฌ๋ฐ๋ก ์ฌ์ฉํ๋์ง ํ ์คํธํ ์๋ ์๋ค.
๊ฒฝ๊ณ์ ์์นํ๋ ์ฝ๋๋ ๊น๋ํ ๋ถ๋ฆฌํ๋ค. ๋ํ ๊ธฐ๋์น๋ฅผ ์ ์ํ๋ ํ ์คํธ ์ผ์ด์ค๋ ์์ฑ ํ๋ค.
์ธ๋ถ ํจํค์ง๊ฐ ํธ์ถํ๋ ์ฝ๋๋ฅผ ๊ฐ๋ฅํ ์ค์ฌ์ ๊ฒฝ๊ณ๋ฅผ ๊ด๋ฆฌํ์.
์๋ก์ด ํด๋์ค๋ก ๊ฒฝ๊ณ๋ฅผ ๊ฐ์ธ๊ฑฐ๋ ์๋๋ฉด ์ด๋ตํฐ ํจํด์ ์ฌ์ฉํด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์ธํฐํ์ด์ค๋ฅผ ํจํค์ง๊ฐ ์ ๊ณตํ๋ ์ธํฐํ์ด์ค๋ก ๋ณํํ์. ์ด๋ ๋ฐฉ๋ฒ์ด๋ ์ฝ๋ ๊ฐ๋ ์ฑ์ด ๋์์ง๋ฉฐ, ๊ฒฝ๊ณ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ์ผ๊ด์ฑ๋ ๋์์ง๋ฉฐ, ์ธ๋ถ ํจํค์ง๊ฐ ๋ณํ์ ๋ ๋ณ๊ฒฝํ ์ฝ๋๋ ์ค์ด๋ ๋ค.
ํ ์คํธ๋ ์ ์ฐ์ฑ, ์ ์ง๋ณด์์ฑ, ์ฌ์ฌ์ฉ์ฑ์ ์ ๊ณตํ๋ค.
๊ทธ๋ฌ๋ฏ๋ก ํ ์คํธ๋ ์ค์ ์ฝ๋์ฒ๋ผ ์ ์์ฑํด์ผํ๋ค.
์คํจํ๋ ๋จ์ ํ ์คํธ๋ฅผ ์์ฑํ ๋๊น์ง ์ค์ ์ฝ๋๋ฅผ ์์ฑํ์ง ์๋๋ค.
์ปดํ์ผ์ ์คํจํ์ง ์์ผ๋ฉด์ ์คํ์ด ์คํจํ๋ ์ ๋๋ก๋ง ๋จ์ ํ ์คํธ๋ฅผ ์์ฑํ๋ค.
ํ์ฌ ์คํจํ๋ ํ ์คํธ๋ฅผ ํต๊ณผํ ์ ๋๋ก๋ง ์ค์ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
์ด์ค ๊ท์น!
์ค์ ์ฝ๋๋ ์ฑ๋ฅ์ด ์ค์ํ์ง๋ง ํ ์คํธ ์ฝ๋๋ ์ ํ ๊ทธ๋ ์ง ์๋ค.
๋ฐ๋ผ์ ํ ์คํธ ์ฝ๋๋ ํจ์จ์ ์ธ ์ฝ๋๊ฐ ์๋๋ผ ๋์ฑ ๋ ์ฝ๊ธฐ ํธํ๊ณ ํํ์ด ํ๋ถํ ์ฝ๋๊ฐ ๋์ด์ผํ๋ค.
๋ฐ๋ผ์ ํ๊ฐ์ง ์ผ๋ง ํด์ผํ๋ค.
ํ ์คํธ ๋น ๊ฐ๋ ํ๋์ฉ ํ ์คํธํ๋ผ.
Fast
Independent
๊ฐ ํ ์คํธ๋ ์๋ก ์์กดํ๋ฉด ์๋๋ค.
๊ฐ ํ ์คํธ๋ ์ด๋ค ์์๋ก ์คํํด๋ ์๋ํด์ผ ํ๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ํ ์คํธ๊ฐ ์คํจ ํ์์ ๋ ๋ฌธ์ ์ ์์ธ์ ์ฐพ๋ ๊ฒ์ด ๋ฌด์ฒ ์ด๋ ค์์ง๋ค.
Repeatable
Self-Validating
Timely
ํ ์คํธ๋ ์ ์์ ์์ฑํด์ผ ํ๋ค.
๋จ์ ํ ์คํธ๋ ํ ์คํธํ๋ ค๋ ์ค์ ์ฝ๋๋ฅผ ๊ตฌํํ๊ธฐ ์ง์ ์ ๊ตฌํํ๋ค.
ํด๋์ค๋ ์ธ์คํด์ค ๋ณ์ ์๊ฐ ์์์ผ ํ๋ค.
ํ๋์ ์ธ์คํด์ค ๋ณ์๋ฅผ ์ฌ๋ฌ ๋ฉ์๋์์ ์ฌ์ฉํ๋ ๊ฒ์ ์์ง๋๊ฐ ๋์ ๊ฒ์ด๋ค.
๋ง์ฝ ๋ช๋ช ๋ฉ์๋์์๋ง ์ฌ์ฉํ๋ ์ธ์คํด์ค ๋ณ์๊ฐ ๋ง๋ค๋ฉด ํด๋์ค์ ํฌ๊ธฐ๊ฐ ๋๋ฌด ํฌ๋ค๋ ๊ฒ์ด๋ค.
class Rectangle {
constructor(height, width, color) {
this.height = height;
this.width = width;
this.color = color;
}
calcArea() {
return this.height * this.width;
}
showColor() {
return this.color;
}
}
๋๋ค์๋ ๋จ์ํ ์ค๊ณ ๊ท์น ๋ค ๊ฐ์ง๊ฐ ์ํํธ์จ์ด ์ค๊ณ ํ์ง์ ํฌ๊ฒ ๋์ฌ์ค๋ค๊ณ ๋ฏฟ๋๋ค.
๋ชจ๋ ํ ์คํธ๋ฅผ ์คํํ๋ค.
์ค๋ณต์ ์์ค๋ค.
ํ๋ก๊ทธ๋๋จธ ์๋๋ฅผ ํํํ๋ค.
ํด๋์ค์ ๋ฉ์๋ ์๋ฅผ ์ต์๋ก ์ค์ธ๋ค.
์ ๋ชฉ๋ก์ ์ค์๋์ ์์ ์ ๋๋ค.
์ค๊ณ๋ ์๋ํ ๋๋ก ๋์๊ฐ๋ ์์คํ ์ ๋ด๋์์ผ ํ๋ค. (๋ฌธ์๋ก๋ง ์๋ฒฝํ๋ฉด ์๋จ)
ํ ์คํธ๋ฅผ ์ฒ ์ ํ ๊ฑฐ์ณ ๋ชจ๋ ํ ์คํธ ์ผ์ด์ค๋ฅผ ํญ์ ํต๊ณผํ๋ ์์คํ ์ โํ ์คํธ๊ฐ ๊ฐ๋ฅํ ์์คํ โ ์ด๋ค.
๐ ํ ์คํธ ์ผ์ด์ค๊ฐ ๋ง์์๋ก ๊ฐ๋ฐ์๋ ํ ์คํธ๊ฐ ์ฝ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๋ค. โ ๋ ๋์ ์ค๊ณ๊ฐ ์ป์ด์ง
๊ฒฐํฉ๋๊ฐ ๋์ผ๋ฉด ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๊ธฐ๊ฐ ์ด๋ ค์
ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ง์ด ์์ฑํ ์๋ก ๊ฐ๋ฐ์๋ DIP์ ๊ฐ์ ์์น์ ์ ์ฉํ๊ณ ์์กด์ฑ ์ฃผ์ , ์ธํฐํ์ด์ค, ์ถ์ํ ๋ฑ๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๋ค. ๋ฐ๋ผ์ ์ค๊ณ ํ์ง์ ๋์ฑ๋ ๋์์ง๋ค๊ณ ๋ณด๋ฉด๋๋ค. โฌ๏ธ
*์ํํธ์จ์ด ๊ณตํ์์ ๊ฒฐํฉ๋(coupling) ๋๋ ์์กด๋๋ ์ด๋ค ๋ชจ๋์ด ๋ค๋ฅธ ๋ชจ๋์ ์์กดํ๋ ์ ๋๋ฅผ ๋ํ๋ด๋ ๊ฒ์ด๋ค.
*DIP๋? ์์กด์ฑ ์ญ์ ์์น์ด๋ผ๋ ๋ป์ด๋ค.
์์ ๋ชจ๋์ ํ์ ๋ชจ๋์ ์์กดํด์๋ ์๋๋ค.
์ถ์ํ๋ ์ธ๋ถ ์ฌํญ์ ์์กดํด์๋ ์๋๋ค.
์์กด ๊ด๊ณ๋ฅผ ๋งบ์ ๋ ๋ณํํ๊ธฐ ์ฌ์ด ๊ฒ์ ์์กดํ๊ธฐ ๋ณด๋ค๋ ๋ณํํ์ง ์๋ ๊ฒ์ ์์กด ํ๋ผ๋ ์์น์ด๋ค.
๐ โํ
์คํธ ์ผ์ด์ค๋ฅผ ๋ง๋ค๊ณ ๊ณ์ ๋๋ ค๋ผโ
๋ผ๋ ๊ฐ๋จํ๊ณ ๋จ์ํ ๊ท์น์ ๋ฐ๋ฅด๋ฉด ์์คํ
์ ๋ฎ์ ๊ฒฐํฉ๋์ ๋์ ์์ง๋ ฅ์ด๋ผ๋ ๋ชฉํ๋ฅผ ์ ์ ๋ก ๋ฌ์ฑํ๋ค. โ ์ฆ, ํ
์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋ฉด ์ค๊ณ ํ์ง์ด ๋์์ง๋ค. โฌ๏ธ
ํ ์คํฌ ์ผ์ด์ค๋ฅผ ๋ชจ๋ ์์ฑํ๋ค๋ฉด ์ด์ ์ฝ๋์ ํด๋์ค๋ฅผ ์ ๋ฆฌํด๋ ๊ด์ฐฎ๋ค.
๊ตฌ์ฒด์ ์ผ๋ก๋ ์ฝ๋๋ฅผ ์ ์ง์ ์ผ๋ก ๋ฆฌํฉํฐ๋ง ํด๋๊ฐ๋ค. โ ์ฝ๋๋ฅผ ์ ๋ฆฌํ๋ฉด์ ์์คํ ์ด ๊นจ์ง๊น ๊ฑฑ์ ์ No ! ํ ์คํธ ์ผ์ด์ค๊ฐ ์๊ธฐ ๋๋ฌธ.
๋ฆฌํฉํฐ๋ง ๋จ๊ณ์์๋ ์ํํธ์จ์ด ์ค๊ณ ํ์ง์ ๋์ด๋ ๊ธฐ๋ฒ์ด๋ผ๋ฉด ๋ฌด์์ด๋ ์ ์ฉํด๋ ๊ด์ฐฎ๋ค.
์์ง๋๋ฅผ ๋์ด๊ณ โฌ๏ธ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ณ โฌ๏ธ ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ๊ณ ๐๏ธ ์์คํ ๊ด์ฌ์ฌ๋ฅผ ๋ชจ๋๋ก ๋๋๊ณ ๐ช
ํจ์์ ํด๋์ค ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ โฌ๏ธ ๋ ๋์ ์ด๋ฆ์ ์ ํํ๋ ๋ฑ ๋ค์ํ ๊ธฐ๋ฒ์ ๋์ํ๋ค. ๐ฅณ
์ด ๋จ๊ณ๋ ๋จ์ํ ์ค๊ณ ๊ท์น ์ค ๋๋จธ์ง 3๊ฐ๋ฅผ ์ ์ฉํด ์ค๋ณต์ ์ ๊ฑฐํ๊ณ , ํ๋ก๊ทธ๋๋จธ ์๋๋ฅผ ํํํ ์ ์๊ณ , ํด๋์ค์ ๋ฉ์๋ ์๋ฅผ ์ต์๋ก ์ค์ด๋ ๋จ๊ณ์ด๊ธฐ๋ ํ๋ค.
์ฐ์ํ ์ค๊ณ์์ ์ค๋ณต์ ์ปค๋ค๋ ์ ์ด๋ค.
์ค๋ณต์ ์ถ๊ฐ ์์ , ์ถ๊ฐ ์ํ, ๋ถํ์ํ ๋ณต์ก๋๋ฅผ ๋ปํจ ใ ใ ๐ช
์ค๋ณต์ ์ฌ๋ฌ ๊ฐ์ง ํํ๋ก ํ์ถ๋๋ค. ๋๊ฐ์ ์ฝ๋๋ ๋น์ฐํ ์ค๋ณต์ด๋ค.
๋น์ทํ ์ฝ๋๋ ๋ ๋น์ทํ๊ฒ ๊ณ ์ณ์ฃผ๋ฉด ๋ฆฌํฉํ ๋ง์ด ์ฌ์์ง๋ค.
์ํํธ์จ์ด ํ๋ก์ ํธ ๋น์ฉ ์ค ๋๋ค์๋ ์ฅ๊ธฐ์ ์ธ ์ ์ง๋ณด์์ ๋ค์ด๊ฐ๋ค.
์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ฉด์ ๋ฒ๊ทธ์ ์น์ ์ฌ์ง ์์ผ๋ ค๋ฉฐ ์ ์ง๋ณด์ ๊ฐ๋ฐ์๊ฐ ์์คํ ์ ์ ๋๋ก ์ดํดํด์ผ ํ๋ค.
๐ก ํ์ง๋ง ์์คํ ์ด ์ ์ฐจ ๋ณต์กํด์ง๋ฉด์ ์ ์ง๋ณด์ ๊ฐ๋ฐ์๊ฐ ์์คํ ์ ์ดํด ํ๋๋ผ, ๋ณด๋ด๋ ์๊ฐ์ ์ ์ ๋๊ณ ๋์์ ์ฝ๋๋ฅผ ์คํดํ ๊ฐ๋ฅ์ฑ๋ ์ ์ ์ปค์ง โ ๊ทธ๋ฌ๋ฏ๋ก ์ฝ๋๋ ๐๊ฐ๋ฐ์์ ์๋๋ฅผ ๋ถ๋ช ํ ํํํด์ผ ํ๋ค.๐
๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ๋ช ๋ฐฑํ๊ฒ ์งค ์๋ก ๋ค๋ฅธ ์ฌ๋์ด ๊ทธ ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ์ฌ์์ง๊ณ ๊ฒฐํจ์ด ์ค๊ณ ์ ์ง๋ณด์ ๋น์ฉ์ด ์ ๊ฒ๋ ๋ค.
์ข์ ์ด๋ฆ์ ์ ํํ๋ค. (์ด๋ฆ๊ณผ ๊ธฐ๋ฅ์ ์์ ๋ดํ์ผ๋ก ์ง๋์ง ๋ง๋ ์๋ฆฌ)
ํจ์์ ํด๋์ค ํฌ๊ธฐ๋ฅผ ๊ฐ๋ฅํ ์ค์ธ๋ค. ์์ ํด๋์ค์ ์์ ํจ์๋ ์ด๋ฆ ์ง๊ธฐ๋ ์ฝ๊ณ , ๊ตฌํ๋ ์ฝ๊ณ , ์ดํด๋ ์ฝ๋ค.
ํ์ค ๋ช ์นญ์ ์ฌ์ฉํ๋ค. ์๋ฅผ ๋ค์ด, ๋์์ธ ํจํด์ ์์ฌ์ํต๊ณผ ํํ๋ ฅ ๊ฐํ๊ฐ ์ฃผ์ ๋ชฉ์ ์ด๋ค. ํด๋์ค ์ด๋ฆ์ ํจํด ์ด๋ฆ์ ๋ฃ์ด์ฃผ๋ ๊ฒ์ด ๋ฒ ์คํธ โ ์ด๋ ๊ฒ ํ๋ฉด ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ํด๋์ค ์ค๊ณ ์๋๋ฅผ ์ดํดํ๊ธฐ ์ฌ์
๋จ์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ๊ผผ๊ผผํ๊ฒ ์์ฑํ๋ค.
๋ ธ๋ ฅ !
๐ ๋ ๋์ ์ด๋ฆ์ ์ ํํ๊ณ , ํฐ ํจ์๋ฅผ ์์ ํจ์ ์ฌ๋ฟ์ผ๋ก ๋๋๊ณ , ์์ ์ ์ํ์ ์กฐ๊ธ๋ง ๋ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์. ์ฃผ์๋ ๋๋จํ ์ฌ๋ฅ์ด๋ค.
ํด๋์ค์ ํจ์ ์๋ฅผ ์ค์ด๋ ์์ ๋ ์ค์ํ์ง๋ง, ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ง๋ค๊ณ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ ์๋๋ฅผ ํํํ๋ ์์ ์ด ๋ ์ค์ํ๋ค๋ ๋ป์ด๋ค.
์ด ์ฑ
์์ ์๊ฐํ๋ ๊ธฐ๋ฒ์ ์ ์๋ค์ด ์์ญ๋
๋์ ์์ ๊ฒฝํ์ ์ ์๋ค.
๋จ์ํ ์ค๊ณ ๊ท์น์ ๋ฐ๋ฅธ๋ค๋ฉด ์ฐ์ํ ๊ธฐ๋ฒ๊ณผ ์์น์ ๋จ๋ฒ์ ํ์ฉํ ์ ์๋ค.