๐Ÿ“š [์Šคํ„ฐ๋”” ์š”์•ฝ์ •๋ฆฌ] ํด๋ฆฐ์ฝ”๋“œ Clean Code

leehyunjuยท2023๋…„ 10์›” 6์ผ
14
post-thumbnail

๐Ÿ’ป ์Šคํ„ฐ๋””๊ธฐ๊ฐ„

  • 2023.09.11์ผ ~ 09.27์ผ (์ด 3์ฃผ ์†Œ์š”)

๐ŸŒŸ ๋ชฉํ‘œ

์ด ์ฑ…์€ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๋งŽ์ด ์ถ”์ฒœ๋˜๋Š” ์ฝ”๋”ฉ ๊ต๊ณผ์„œ๋ผ๊ณ  ๋ณผ ์ˆ˜์žˆ๋‹ค.

  • ์ด ์ฑ…์„ ํ†ตํ•ด ์ฝ”๋“œ์˜ ํ€„๋ฆฌํ‹ฐ๋ฅผ ๋†’์—ฌ๋ณด์ž.

  • ์กฐ์ง ๋‚ด ๋˜๋Š” ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ํ•  ์‹œ, ์„œ๋กœ ํฌ๋กœ์Šค ์ฒดํ‚น์„ ํ•˜๋ฉด์„œ ์‹ค์ˆ˜ํ•œ ๋ถ€๋ถ„๋“ค์„ ๋ณด์™„ํ•˜๊ณ  ์ฝ”๋“œ์˜ ํ€„๋ฆฌํ‹ฐ๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Œ€ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๐ŸŒŸ ์ง„ํ–‰๋ฐฉ์‹

  • ์ผ์ฃผ์ผ์— 3์ฑ•ํ„ฐ ์”ฉ ์ฝ๊ณ  ๊ฐ์ž ํ•œ ์ฑ•ํ„ฐ์”ฉ ๋ฐœํ‘œ ๋ฒ”์œ„๋ฅผ ์„ ํƒ

  • ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ๋ฐœํ‘œ ๋ฒ”์œ„๋ฅผ ์˜ˆ์Šต ํ•ด์™€์•ผ ํ•จ

  • ๊ฐ์ž์˜ ๋ฒ”์œ„๋Š” ๋ฐœํ‘œํ•˜๊ณ  ์งˆ์˜ ์‘๋‹ต ์ง„ํ–‰

๐ŸŒŸ ์ง„ํ–‰๋ฒ”์œ„

โœ… 1์ฃผ์ฐจ ๊นจ๋—ํ•œ ์ฝ”๋“œ, ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„, ํ•จ์ˆ˜

โœ… 2์ฃผ์ฐจ ์ฃผ์„, ํ˜•์‹ ๋งž์ถ”๊ธฐ, ๊ฐ์ฒด์™€ ์ž๋ฃŒ ๊ตฌ์กฐ

โœ… 3์ฃผ์ฐจ ๊ฒฝ๊ณ„, ๋‹จ์œ„ ํ…Œ์ŠคํŠธ, ํด๋ž˜์Šค, ์‹œ์Šคํ…œ, ์ฐฝ๋ฐœ์„ฑ

~ ์ดํ›„์˜ ์ฑ•ํ„ฐ๋“ค์€ JAVA ์–ธ์–ด์˜ ์–˜๊ธฐ๋“ค์ด ๋งŽ์•„์„œ ์ƒ๋žตํ–ˆ๋‹ค.



๐Ÿ”– 1์ฃผ์ฐจ


๐Ÿ“ํด๋ฆฐ์ฝ”๋“œ๋ฅผ ์™œ ์ง€ํ–ฅ ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?

์œ ์ง€๋ณด์ˆ˜๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ๊ธฐ์กด์˜ ๋”๋Ÿฌ์šด ์ฝ”๋“œ๋“ค์ด ๋‚˜์ค‘์— ์œ ์ง€๋ณด์ˆ˜ ํ•˜๊ธฐ ํž˜๋“ค๊ฒŒ ๋งŒ๋“ ๋‹ค.

๋งˆ์น˜ ๊ฑฐ์นœ ์ •๊ธ€์„ ํƒํ—˜ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ ์  ์ˆฒ์†์ด ์šฐ๊ฑฐ์ง€๊ณ  ์ฝ”๋“œ ํ•œ ์ค„ ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ๋งŽ์€ ๋ถ€๋ถ„์„ ์‹ ๊ฒฝ์จ์•ผํ•œ๋‹ค!

  • ๋‚˜์œ์ฝ”๋“œ๊ฐ€ ์–‘์ƒ๋ ์ˆ˜๋ก โ†’ ์ƒ์‚ฐ์„ฑ์€ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋–จ์–ด์ง„๋‹ค.

  • ๊นจ๋—ํ•œ ์ฝ”๋“œ๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„ ,์ค‘๋ณต์„ ํ”ผํ•˜๋ผ

  • ํ•œ ๊ธฐ๋Šฅ๋งŒ ์ˆ˜ํ–‰ํ•˜๋ผ

  • ์ œ๋Œ€๋กœ ํ‘œํ˜„ํ•ด๋ผ

  • ์ž‘๊ฒŒ ์ถ”์ƒํ™” ํ•ด๋ผ


๐Ÿ“๋ณด์ด ์Šค์นด์šฐํŠธ ๊ตํ›ˆ

์ฒ˜์Œ ์™”์„๋•Œ ๋ณด๋‹ค ๋” ๊นจ๋—ํ•˜๊ฒŒ ํ•ด๋†“๊ณ  ๊ฐ€์ž โ†’ ์กฐ๊ธˆ์”ฉ์ด๋ผ๋„ ์ข‹์œผ๋‹ˆ ์ฒ˜์Œ๋ณด๋‹ค ์กฐ๊ธˆ์ด๋ผ๋„ ๋‚˜์€ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜์ž.

ํ•œ๋ฒˆ์— ๋‹คํ•  ํ•„์š” ์—†๋‹ค.

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๋“ฑ์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

ํ•˜์ง€๋งŒ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ด๋Ÿฐ ๊ฒƒ๋“ค์„ ์ง€์–‘ํ•ด์•ผ ํ•œ๋‹ค.
ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๊ฐ€๋ณ€ ์ƒํƒœ๋ฅผ ์ตœ๋Œ€ํ•œ ํ”ผํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
๋”ฐ๋ผ์„œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฐ€์น˜๊ด€์„ ์œ„ํ•ด์„  ์ธ์ž๊ฐ€ ์กฐ๊ธˆ์€ ๋Š˜์–ด๋‚˜๋„ ๋˜์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค.



๐Ÿ”– 2์ฃผ์ฐจ


๐Ÿ“์ฃผ์„

"์ž˜ ๋‹ฌ๋ฆฐ ์ฃผ์„์€ ๊ทธ ์–ด๋–ค ์ •๋ณด๋ณด๋‹ค ์œ ์šฉํ•˜๋‹ค.
๊ฒฝ์†”ํ•˜๊ณ  ๊ทผ๊ฑฐ ์—†๋Š” ์ฃผ์„์€ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ ๋‹ค."

๊ฐ€ ์ด๋ฒˆ ์žฅ์˜ ๐ŸŒŸํ•ต์‹ฌ ํฌ์ธํŠธ๐ŸŒŸ๋ผ๊ณ  ์งš์–ด ๋งํ•  ์ˆ˜ ์žˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ฝ”๋“œ๋กœ ์˜๋„๋ฅผ ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•ด, ์‹คํŒจ๋ฅผ ๋งŒํšŒํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ์„์„ ์‚ฌ์šฉํ•œ๋‹ค.

์ฃผ์„์€ ์–ธ์ œ๋‚˜ ์‹คํŒจ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ฃผ์„์€ ๋ฐ˜๊ฒจ ๋งž์„ ์†๋‹˜์ด ์•„๋‹ˆ๋‹ค. ์ง„์‹ค์€ ํ•œ ๊ณณ์—๋งŒ ์กด์žฌํ•œ๋‹ค. ๋ฐ”๋กœ ์ฝ”๋“œ๋‹ค. ๋ถ€์ •ํ™•ํ•œ ์ฃผ์„์€ ๋…์ž๋ฅผ ํ˜„ํ˜นํ•˜๊ณ  ์˜ค๋„ํ•œ๋‹ค.


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. ๊ฒฐ๋ก 

  • ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•  ๋•Œ, ์ƒˆ๋กœ์šด ์ž๋ฃŒ ํƒ€์ž…์„ ์ถ”๊ฐ€ํ•˜๋Š” ์œ ์—ฐ์„ฑ์ด ํ•„์š”ํ•˜๋ฉด ๊ฐ์ฒด๊ฐ€ ๋” ์ ํ•ฉ

  • ์ƒˆ๋กœ์šด ๋™์ž‘์„ ์ถ”๊ฐ€ํ•˜๋Š” ์œ ์—ฐ์„ฑ์ด ํ•„์š”ํ•˜๋ฉด ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์ ˆ์ฐจ์ ์ธ ์ฝ”๋“œ๊ฐ€ ๋” ์ ํ•ฉ.

  • ํŽธ๊ฒฌ ์—†์ด ์ตœ์ ์ธ ํ•ด๊ฒฐ์ฑ…์„ ์„ ํƒํ•˜์ž!



๐Ÿ”– 3์ฃผ์ฐจ


๐Ÿ“๊ฒฝ๊ณ„

1. ์™ธ๋ถ€ ์ฝ”๋“œ ์‚ฌ์šฉํ•˜๊ธฐ

ํŒจํ‚ค์ง€ ์ œ๊ณต์ž๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ ์ œ๊ณต์ž๋Š” ์ ์šฉ์„ฑ์„ ์ตœ๋Œ€ํ•œ ๋„“ํžˆ๋ ค๊ณ  ์• ์“ด๋‹ค.

ํ•œ ์˜ˆ๋กœ, Map์„ ์‚ดํŽด๋ณด์ž. ์ด๋Š” ๊ต‰์žฅํžˆ ๋‹ค์–‘ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ˆ˜๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

Map์ด ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์€ ํ™•์‹คํžˆ ์œ ์šฉํ•˜์ง€๋งŒ ๊ทธ๋งŒํผ ์œ„ํ—˜๋„ ํฌ๋‹ค.

Map sensors = new HashMap();

Sensor ๊ฐ์ฒด๊ฐ€ ํ•„์š”ํ•œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด Sensor ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.


Sensor s = (Sensor)sensors.get(sensorId);

์ด์™€ ๊ฐ™์€ ์ฝ”๋“œ๋Š” ๊นจ๋—ํ•œ ์ฝ”๋“œ๋ผ ๋ณด๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค. ์ œ๋„ค๋ฆญ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์ด ํฌ๊ฒŒ ๋†’์•„์ง„๋‹ค.


Map<String, Sensor> sensors = new HashMap<Sensor>();

ps. Java๋ผ ๋ญ”์†Œ๋ฆฐ์ง€ ์ดํ•ด๊ฐ€ โ€ฆ ์•”ํŠผ ์ œ๋„ค๋ฆญ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€๋…์„ฑ์ด ๋†’์•„์ง„๋‹ค์— ์ค‘์ ์„ ๋‘๋ฉด ๋ ๋“ฏ


2. ๊ฒฝ๊ณ„ ์‚ดํ”ผ๊ณ  ์ตํžˆ๊ธฐ

์™ธ๋ถ€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ ์€ ์‹œ๊ฐ„์— ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ถœ์‹œํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค.

๋งŒ์•ฝ ์™ธ๋ถ€์—์„œ ๊ฐ€์ ธ์˜จ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋””์„œ ์–ด๋–ป๊ฒŒ ์‹œ์ž‘ํ•˜๋ฉด ์ข‹์„๊นŒ?

  • ์šฐ๋ฆฌ ์ž์‹ ์„ ์œ„ํ•ด ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•  ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ํŽธ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค.

  • ๋•Œ๋กœ๋Š” ์šฐ๋ฆฌ ๋ฒ„๊ทธ์ธ์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„๊ทธ์ธ์ง€ ์ฐพ์•„๋‚ด๋Š๋ผ ์˜ค๋žœ ๋””๋ฒ„๊น…์œผ๋กœ ๊ณจ์น˜๋ฅผ ์•“๋Š”๋‹ค.


์™ธ๋ถ€ ์ฝ”๋“œ๋ฅผ ์ตํžˆ๊ธฐ๋„ ์–ด๋ ต๊ณ  ํ†ตํ•ฉ ํ•˜๊ธฐ๋„ ์–ด๋ ค์šด๋ฐ, ์ด ๋‘ ๊ฐ€์ง€๋ฅผ ๋™์‹œ์— ํ•˜๊ธฐ์—๋Š” ๋‘ ๋ฐฐ๋‚˜ ์–ด๋ ค์›€์„ ๊ฒช์„ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•ด์„œ ์™ธ๋ถ€ ์ฝ”๋“œ๋ฅผ ์ตํ˜€๋ณด์ž. โ†’ ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ๐ŸŒŸํ•™์Šต ํ…Œ์ŠคํŠธ๐ŸŒŸ ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

ํ•™์Šต ํ…Œ์ŠคํŠธ๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ฐฉ์‹๋Œ€๋กœ ์™ธ๋ถ€ API๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

ํ†ต์ œ๋œ ํ™˜๊ฒฝ์—์„œ API๋ฅผ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์…ˆ์ด๋‹ค. ํ•™์Šต ํ…Œ์ŠคํŠธ๋Š” API๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ชฉ์ ์— ์ดˆ์ ์„ ๋‘”๋‹ค.


3. log4j ์ตํžˆ๊ธฐ

์•„ํŒŒ์น˜์˜ log4j๋ผ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด์„œ ์ฝ”๋“œ์˜ ๋ช…ํ™•์„ฑ์„ ์œ„ํ•ด ํ…Œ์ŠคํŠธ ํ•œ๋‹ค๋Š” ๋‚ด์šฉ๋“ค์ž„โ€ฆ


4. ํ•™์Šต ํ…Œ์ŠคํŠธ๋Š” ๊ณต์งœ ์ด์ƒ์ด๋‹ค

ํ•™์Šต ํ…Œ์ŠคํŠธ๋Š” ์ดํ•ด๋„๋ฅผ ๋†’์—ฌ์ฃผ๋Š” ์ •ํ™•ํ•œ ์‹คํ—˜์ด๋‹ค.


5. ์•„์ง ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ

๊ฒฝ๊ณ„์™€ ๊ด€๋ จํ•ด ๋˜ ๋‹ค๋ฅธ ์œ ํ˜•์€ ์•„๋Š” ์ฝ”๋“œ์™€ ๋ชจ๋ฅด๋Š” ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒฝ๊ณ„๋‹ค.

๋•Œ๋กœ๋Š” ์šฐ๋ฆฌ์˜ ์ง€์‹์ด ๊ฒฝ๊ณ„๋ฅผ ๋„ˆ๋จธ ๋ฏธ์น˜์ง€ ๋ชปํ•˜๋Š” ์ฝ”๋“œ ์˜์—ญ๋„ ์žˆ๋‹ค.


์ด ๋‚ด์šฉ์„ ์š”์•ฝํ•˜์ž๋ฉด, ์‚ฌ์šฉํ•  api๋‚˜ ๋ฉ”์„œ๋“œ, ํ•จ์ˆ˜ ๋“ฑ๋“ฑ์„ ์บก์Šํ™”ํ•˜์ž. ๊ทธ๋Ÿผ ๋‚ด์šฉ์ด ๋ฐ”๋€” ๋•Œ ์ˆ˜์ •ํ•  ์ฝ”๋“œ๋ฅผ ํ•œ๊ณณ์œผ๋กœ ๋ชจ์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๊พธ๋ฉด์„œ ํ…Œ์ŠคํŠธ๋„ ์•„์ฃผ ํŽธํ•˜๊ฒŒ ์ง„ํ–‰๋  ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

๊ทธ๋Ÿผ API ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋‚˜์˜จ ๋‹ค์Œ ๊ฒฝ๊ณ„ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ƒ์„ฑํ•ด ์šฐ๋ฆฌ๊ฐ€ API๋ฅผ ์˜ฌ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•  ์ˆ˜๋„ ์žˆ๋‹ค.


๊ฒฝ๊ณ„์— ์œ„์น˜ํ•˜๋Š” ์ฝ”๋“œ๋Š” ๊น”๋”ํžˆ ๋ถ„๋ฆฌํ•œ๋‹ค. ๋˜ํ•œ ๊ธฐ๋Œ€์น˜๋ฅผ ์ •์˜ํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋„ ์ž‘์„ฑ ํ•œ๋‹ค.

์™ธ๋ถ€ ํŒจํ‚ค์ง€๊ฐ€ ํ˜ธ์ถœํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ€๋Šฅํ•œ ์ค„์—ฌ์„œ ๊ฒฝ๊ณ„๋ฅผ ๊ด€๋ฆฌํ•˜์ž.

์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋กœ ๊ฒฝ๊ณ„๋ฅผ ๊ฐ์‹ธ๊ฑฐ๋‚˜ ์•„๋‹ˆ๋ฉด ์–ด๋‹ตํ„ฐ ํŒจํ„ด์„ ์‚ฌ์šฉํ•ด ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํŒจํ‚ค์ง€๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ณ€ํ™˜ํ•˜์ž. ์–ด๋Š ๋ฐฉ๋ฒ•์ด๋“  ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์ด ๋†’์•„์ง€๋ฉฐ, ๊ฒฝ๊ณ„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ผ๊ด€์„ฑ๋„ ๋†’์•„์ง€๋ฉฐ, ์™ธ๋ถ€ ํŒจํ‚ค์ง€๊ฐ€ ๋ณ€ํ–ˆ์„ ๋•Œ ๋ณ€๊ฒฝํ•  ์ฝ”๋“œ๋„ ์ค„์–ด๋“ ๋‹ค.


๐Ÿ“๋‹จ์œ„ ํ…Œ์ŠคํŠธ

1. ์™œ ํ…Œ์ŠคํŠธ๊ฐ€ ์ค‘์š”ํ•œ๊ฐ€?

  • ํ…Œ์ŠคํŠธ๋Š” ์œ ์—ฐ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ, ์žฌ์‚ฌ์šฉ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค.

    • ์ด๋Š” ํ…Œ์ŠคํŠธ์˜ ์กด์žฌ๊ฐ€ ์‹ค์ œ ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ์„ ์ž์œ ๋กญ๊ฒŒ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ…Œ์ŠคํŠธ๋„ ์‹ค์ œ ์ฝ”๋“œ์ฒ˜๋Ÿผ ์ž˜ ์ž‘์„ฑํ•ด์•ผํ•œ๋‹ค.


2. TDD ๋ฒ•์น™ ์„ธ ๊ฐ€์ง€

  1. ์‹คํŒจํ•˜๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๊นŒ์ง€ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค.

  2. ์ปดํŒŒ์ผ์€ ์‹คํŒจํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์‹คํ–‰์ด ์‹คํŒจํ•˜๋Š” ์ •๋„๋กœ๋งŒ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

  3. ํ˜„์žฌ ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•  ์ •๋„๋กœ๋งŒ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.


3. ํ…Œ์ŠคํŠธ์˜ ๊ธฐ์ค€์€ ์ผ๋ฐ˜ ์ฝ”๋“œ์™€ ๋‹ค๋ฅด๋‹ค.

  • ์ด์ค‘ ๊ทœ์น™!

  • ์‹ค์ œ ์ฝ”๋“œ๋Š” ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•˜์ง€๋งŒ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ์ „ํ˜€ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค.

  • ๋”ฐ๋ผ์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ํšจ์œจ์ ์ธ ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋”์šฑ ๋” ์ฝ๊ธฐ ํŽธํ•˜๊ณ  ํ‘œํ˜„์ด ํ’๋ถ€ํ•œ ์ฝ”๋“œ๊ฐ€ ๋˜์–ด์•ผํ•œ๋‹ค.


4. ๊ทธ๋Ÿผ์—๋„

  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ฐ€๋…์„ฑ์ด๋‹ค.

5. ํ…Œ์ŠคํŠธ๋„ ํ•จ์ˆ˜๋‹ค.

  • ๋”ฐ๋ผ์„œ ํ•œ๊ฐ€์ง€ ์ผ๋งŒ ํ•ด์•ผํ•œ๋‹ค.

  • ํ…Œ์ŠคํŠธ ๋‹น ๊ฐœ๋… ํ•˜๋‚˜์”ฉ ํ…Œ์ŠคํŠธํ•˜๋ผ.


6. FIRST

  • Fast

    • ํ…Œ์ŠคํŠธ๊ฐ€ ๋น ๋ฅด์ง€ ์•Š์œผ๋ฉด ์™ธ๋ฉด ๋ฐ›์•„ ๊ฒฐ๊ตญ ํ…Œ์Šคํ„ฐ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค.
  • Independent

    • ๊ฐ ํ…Œ์ŠคํŠธ๋Š” ์„œ๋กœ ์˜์กดํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

    • ๊ฐ ํ…Œ์ŠคํŠธ๋Š” ์–ด๋–ค ์ˆœ์„œ๋กœ ์‹คํ–‰ํ•ด๋„ ์ž‘๋™ํ•ด์•ผ ํ•œ๋‹ค.

    • ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจ ํ•˜์˜€์„ ๋•Œ ๋ฌธ์ œ์˜ ์›์ธ์„ ์ฐพ๋Š” ๊ฒƒ์ด ๋ฌด์ฒ™ ์–ด๋ ค์›Œ์ง„๋‹ค.

  • Repeatable

    • ํ…Œ์ŠคํŠธ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.
  • Self-Validating

    • ํ…Œ์ŠคํŠธ๋Š” boolean ๊ฐ’์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด์•ผ ํ•œ๋‹ค.
  • Timely

    • ํ…Œ์ŠคํŠธ๋Š” ์ ์‹œ์— ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

    • ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ํ…Œ์ŠคํŠธํ•˜๋ ค๋Š” ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์ง์ „์— ๊ตฌํ˜„ํ•œ๋‹ค.


๐Ÿ“ํด๋ž˜์Šค

1. ํด๋ž˜์Šค๋Š” ์ž‘์•„์•ผ ํ•œ๋‹ค.

  • ํด๋ž˜์Šค๋Š” ํ•จ์ˆ˜์™€ ๋‹ค๋ฅด๊ฒŒ ๋ฌผ๋ฆฌ์ ์ธ ํฌ๊ธฐ๊ฐ€ ์•„๋‹Œ ์ฑ…์ž„์œผ๋กœ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

2. ํด๋ž˜์Šค ์ด๋ฆ„์€ ํ•ด๋‹น ํด๋ž˜์Šค ์ฑ…์ž„์„ ๊ธฐ์ˆ ํ•ด์•ผ ํ•œ๋‹ค.

  • ๊ทธ๋ ‡์ง€ ๋ชปํ•œ๋‹ค๋ฉด ํด๋ž˜์Šค์˜ ํฌ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ํฐ ๊ฒƒ์ด๋‹ค.
  • ํด๋ž˜์Šค ์„ค๋ช…์€ if, can, or, but์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  25๋‹จ์–ด ๋‚ด์™ธ๋กœ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.

3. ๋‹จ์ผ ์ฑ…์ž„ ์›์น™

  • ํด๋ž˜์Šค๋‚˜ ๋ชจ๋“ˆ์„ ๋ณ€๊ฒฝํ•  ์ด์œ ๊ฐ€ ๋‹จ ํ•˜๋‚˜๋ฟ์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™

4. ์‘์ง‘๋„

  • ํด๋ž˜์Šค๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ˆ˜๊ฐ€ ์ž‘์•„์•ผ ํ•œ๋‹ค.

  • ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ ๋ฉ”์„œ๋“œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์‘์ง‘๋„๊ฐ€ ๋†’์€ ๊ฒƒ์ด๋‹ค.

  • ๋งŒ์•ฝ ๋ช‡๋ช… ๋ฉ”์„œ๋“œ์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ๋งŽ๋‹ค๋ฉด ํด๋ž˜์Šค์˜ ํฌ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ํฌ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

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;
  }
}

๐Ÿ“์ฐฝ๋ฐœ์„ฑ

1.์ฐฝ๋ฐœ์  ์„ค๊ณ„๋กœ ๊น”๋”ํ•œ ์ฝ”๋“œ ๊ตฌํ˜„

๋Œ€๋‹ค์ˆ˜๋Š” ๋‹จ์ˆœํ•œ ์„ค๊ณ„ ๊ทœ์น™ ๋„ค ๊ฐ€์ง€๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ ํ’ˆ์งˆ์„ ํฌ๊ฒŒ ๋†’์—ฌ์ค€๋‹ค๊ณ  ๋ฏฟ๋Š”๋‹ค.

  1. ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

  2. ์ค‘๋ณต์„ ์—†์•ค๋‹ค.

  3. ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜๋„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

  4. ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ ์ˆ˜๋ฅผ ์ตœ์†Œ๋กœ ์ค„์ธ๋‹ค.

์œ„ ๋ชฉ๋ก์€ ์ค‘์š”๋„์˜ ์ˆœ์„œ ์ž…๋‹ˆ๋‹ค.


2.๋‹จ์ˆœํ•œ ์„ค๊ณ„ ๊ทœ์น™ 1 : ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ผ !

์„ค๊ณ„๋Š” ์˜๋„ํ•œ ๋Œ€๋กœ ๋Œ์•„๊ฐ€๋Š” ์‹œ์Šคํ…œ์„ ๋‚ด๋†“์•„์•ผ ํ•œ๋‹ค. (๋ฌธ์„œ๋กœ๋งŒ ์™„๋ฒฝํ•˜๋ฉด ์•ˆ๋จ)

ํ…Œ์ŠคํŠธ๋ฅผ ์ฒ ์ €ํžˆ ๊ฑฐ์ณ ๋ชจ๋“  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ํ•ญ์ƒ ํ†ต๊ณผํ•˜๋Š” ์‹œ์Šคํ…œ์€ โ€˜ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œโ€™ ์ด๋‹ค.

๐ŸŒŸ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ๋งŽ์„์ˆ˜๋ก ๊ฐœ๋ฐœ์ž๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ์‰ฝ๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. โ†’ ๋” ๋‚˜์€ ์„ค๊ณ„๊ฐ€ ์–ป์–ด์ง


๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’์œผ๋ฉด ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์›€

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋งŽ์ด ์ž‘์„ฑํ• ์ˆ˜๋ก ๊ฐœ๋ฐœ์ž๋Š” DIP์™€ ๊ฐ™์€ ์›์น™์„ ์ ์šฉํ•˜๊ณ  ์˜์กด์„ฑ ์ฃผ์ž…, ์ธํ„ฐํŽ˜์ด์Šค, ์ถ”์ƒํ™” ๋“ฑ๊ณผ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ˜๋‹ค. ๋”ฐ๋ผ์„œ ์„ค๊ณ„ ํ’ˆ์งˆ์€ ๋”์šฑ๋” ๋†’์•„์ง„๋‹ค๊ณ  ๋ณด๋ฉด๋œ๋‹ค. โฌ†๏ธ


*์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์—์„œ ๊ฒฐํ•ฉ๋„(coupling) ๋˜๋Š” ์˜์กด๋„๋Š” ์–ด๋–ค ๋ชจ๋“ˆ์ด ๋‹ค๋ฅธ ๋ชจ๋“ˆ์— ์˜์กดํ•˜๋Š” ์ •๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด๋‹ค.

*DIP๋ž€? ์˜์กด์„ฑ ์—ญ์ „ ์›์น™์ด๋ผ๋Š” ๋œป์ด๋‹ค.

  • ์ƒ์œ„ ๋ชจ๋“ˆ์€ ํ•˜์œ„ ๋ชจ๋“ˆ์— ์˜์กดํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

  • ์ถ”์ƒํ™”๋Š” ์„ธ๋ถ€ ์‚ฌํ•ญ์— ์˜์กดํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

  • ์˜์กด ๊ด€๊ณ„๋ฅผ ๋งบ์„ ๋•Œ ๋ณ€ํ™”ํ•˜๊ธฐ ์‰ฌ์šด ๊ฒƒ์— ์˜์กดํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ๋ณ€ํ™”ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์— ์˜์กด ํ•˜๋ผ๋Š” ์›์น™์ด๋‹ค.

๐ŸŒŸ โ€œํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๊ณ„์† ๋Œ๋ ค๋ผโ€ ๋ผ๋Š” ๊ฐ„๋‹จํ•˜๊ณ  ๋‹จ์ˆœํ•œ ๊ทœ์น™์„ ๋”ฐ๋ฅด๋ฉด ์‹œ์Šคํ…œ์€ ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„์™€ ๋†’์€ ์‘์ง‘๋ ฅ์ด๋ผ๋Š” ๋ชฉํ‘œ๋ฅผ ์ €์ ˆ๋กœ ๋‹ฌ์„ฑํ•œ๋‹ค. โ†’ ์ฆ‰, ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์„ค๊ณ„ ํ’ˆ์งˆ์ด ๋†’์•„์ง„๋‹ค. โฌ†๏ธ


3.๋‹จ์ˆœํ•œ ์„ค๊ณ„ ๊ทœ์น™ 2~4 : ๋ฆฌํŒฉํ„ฐ๋ง

ํ…Œ์Šคํฌ ์ผ€์ด์Šค๋ฅผ ๋ชจ๋‘ ์ž‘์„ฑํ–ˆ๋‹ค๋ฉด ์ด์ œ ์ฝ”๋“œ์™€ ํด๋ž˜์Šค๋ฅผ ์ •๋ฆฌํ•ด๋„ ๊ดœ์ฐฎ๋‹ค.

๊ตฌ์ฒด์ ์œผ๋กœ๋Š” ์ฝ”๋“œ๋ฅผ ์ ์ง„์ ์œผ๋กœ ๋ฆฌํŒฉํ„ฐ๋ง ํ•ด๋‚˜๊ฐ„๋‹ค. โ†’ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด์„œ ์‹œ์Šคํ…œ์ด ๊นจ์งˆ๊นŒ ๊ฑฑ์ •์€ No ! ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ.


๋ฆฌํŒฉํ„ฐ๋ง ๋‹จ๊ณ„์—์„œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ ํ’ˆ์งˆ์„ ๋†’์ด๋Š” ๊ธฐ๋ฒ•์ด๋ผ๋ฉด ๋ฌด์—‡์ด๋“  ์ ์šฉํ•ด๋„ ๊ดœ์ฐฎ๋‹ค.

์‘์ง‘๋„๋ฅผ ๋†’์ด๊ณ  โฌ†๏ธ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ  โฌ‡๏ธ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  ๐Ÿ–๏ธ ์‹œ์Šคํ…œ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ชจ๋“ˆ๋กœ ๋‚˜๋ˆ„๊ณ  ๐Ÿช“

ํ•จ์ˆ˜์™€ ํด๋ž˜์Šค ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  โฌ‡๏ธ ๋” ๋‚˜์€ ์ด๋ฆ„์„ ์„ ํƒํ•˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋ฒ•์„ ๋™์›ํ•œ๋‹ค. ๐Ÿฅณ


์ด ๋‹จ๊ณ„๋Š” ๋‹จ์ˆœํ•œ ์„ค๊ณ„ ๊ทœ์น™ ์ค‘ ๋‚˜๋จธ์ง€ 3๊ฐœ๋ฅผ ์ ์šฉํ•ด ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ , ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜๋„๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ณ , ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ ์ˆ˜๋ฅผ ์ตœ์†Œ๋กœ ์ค„์ด๋Š” ๋‹จ๊ณ„์ด๊ธฐ๋„ ํ•˜๋‹ค.


4.์ค‘๋ณต์„ ์—†์• ๋ผ!

์šฐ์ˆ˜ํ•œ ์„ค๊ณ„์—์„œ ์ค‘๋ณต์€ ์ปค๋‹ค๋ž€ ์ ์ด๋‹ค.

์ค‘๋ณต์€ ์ถ”๊ฐ€ ์ž‘์—…, ์ถ”๊ฐ€ ์œ„ํ—˜, ๋ถˆํ•„์š”ํ•œ ๋ณต์žก๋„๋ฅผ ๋œปํ•จ ใ… ใ…  ๐Ÿช“

์ค‘๋ณต์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ˜•ํƒœ๋กœ ํ‘œ์ถœ๋œ๋‹ค. ๋˜‘๊ฐ™์€ ์ฝ”๋“œ๋„ ๋‹น์—ฐํžˆ ์ค‘๋ณต์ด๋‹ค.

๋น„์Šทํ•œ ์ฝ”๋“œ๋Š” ๋” ๋น„์Šทํ•˜๊ฒŒ ๊ณ ์ณ์ฃผ๋ฉด ๋ฆฌํŒฉํ† ๋ง์ด ์‰ฌ์›Œ์ง„๋‹ค.


5.ํ‘œํ˜„ํ•˜๋ผ

์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์ ํŠธ ๋น„์šฉ ์ค‘ ๋Œ€๋‹ค์ˆ˜๋Š” ์žฅ๊ธฐ์ ์ธ ์œ ์ง€๋ณด์ˆ˜์— ๋“ค์–ด๊ฐ„๋‹ค.

์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ ๋ฒ„๊ทธ์˜ ์‹น์„ ์‹ฌ์ง€ ์•Š์œผ๋ ค๋ฉฐ ์œ ์ง€๋ณด์ˆ˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹œ์Šคํ…œ์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

๐Ÿ˜ก ํ•˜์ง€๋งŒ ์‹œ์Šคํ…œ์ด ์ ์ฐจ ๋ณต์žกํ•ด์ง€๋ฉด์„œ ์œ ์ง€๋ณด์ˆ˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹œ์Šคํ…œ์„ ์ดํ•ด ํ•˜๋Š๋ผ, ๋ณด๋‚ด๋Š” ์‹œ๊ฐ„์€ ์ ์  ๋Š˜๊ณ  ๋™์‹œ์— ์ฝ”๋“œ๋ฅผ ์˜คํ•ดํ•  ๊ฐ€๋Šฅ์„ฑ๋„ ์ ์  ์ปค์ง โ†’ ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ฝ”๋“œ๋Š” ๐Ÿ’›๊ฐœ๋ฐœ์ž์˜ ์˜๋„๋ฅผ ๋ถ„๋ช…ํžˆ ํ‘œํ˜„ํ•ด์•ผ ํ•œ๋‹ค.๐Ÿ’›

๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋ช…๋ฐฑํ•˜๊ฒŒ ์งค ์ˆ˜๋ก ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๊ทธ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›Œ์ง€๊ณ  ๊ฒฐํ•จ์ด ์ค„๊ณ  ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ์ด ์ ๊ฒŒ๋“ ๋‹ค.


6.์˜๋„๋ฅผ ๋ถ„๋ช…ํ•˜๊ฒŒ, ๋ช…๋ฐฑํ•œ ์ฝ”๋“œ๋ฅผ ์งœ๊ธฐ ์œ„ํ•ด์„  ?

  1. ์ข‹์€ ์ด๋ฆ„์„ ์„ ํƒํ•œ๋‹ค. (์ด๋ฆ„๊ณผ ๊ธฐ๋Šฅ์„ ์™„์ „ ๋”ดํŒ์œผ๋กœ ์งœ๋†“์ง€ ๋ง๋ž€ ์†Œ๋ฆฌ)

  2. ํ•จ์ˆ˜์™€ ํด๋ž˜์Šค ํฌ๊ธฐ๋ฅผ ๊ฐ€๋Šฅํ•œ ์ค„์ธ๋‹ค. ์ž‘์€ ํด๋ž˜์Šค์™€ ์ž‘์€ ํ•จ์ˆ˜๋Š” ์ด๋ฆ„ ์ง“๊ธฐ๋„ ์‰ฝ๊ณ , ๊ตฌํ˜„๋„ ์‰ฝ๊ณ , ์ดํ•ด๋„ ์‰ฝ๋‹ค.

  3. ํ‘œ์ค€ ๋ช…์นญ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋””์ž์ธ ํŒจํ„ด์€ ์˜์‚ฌ์†Œํ†ต๊ณผ ํ‘œํ˜„๋ ฅ ๊ฐ•ํ™”๊ฐ€ ์ฃผ์š” ๋ชฉ์ ์ด๋‹ค. ํด๋ž˜์Šค ์ด๋ฆ„์— ํŒจํ„ด ์ด๋ฆ„์„ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์ด ๋ฒ ์ŠคํŠธ โ†’ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ํด๋ž˜์Šค ์„ค๊ณ„ ์˜๋„๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›€

  4. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๊ผผ๊ผผํ•˜๊ฒŒ ์ž‘์„ฑํ•œ๋‹ค.

  5. ๋…ธ๋ ฅ !

  • ํ‘œํ˜„๋ ฅ์„ ๊ฐ€์žฅ ๋†’์ด๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ฐฉ๋ฒ•์€ ๋…ธ๋ ฅ์ด๋‹ค. ๋‚˜์ค‘์— ์ฝ”๋“œ๋ฅผ ์ฝ์„ ์‚ฌ๋žŒ์€ ๋ฐ”๋กœ ์ž์‹ ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ช…์‹ฌํ•˜์ž. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ž์‹ ์˜ ์ž‘ํ’ˆ์„ ์กฐ๊ธˆ ๋” ์‚ฌ๋ž‘ํ•˜์ž ! ํ•จ์ˆ˜์™€ ํด๋ž˜์Šค์— ์กฐ๊ธˆ ๋” ์‹œ๊ฐ„์„ ํˆฌ์žํ•˜์ž

7.๊ฒฐ๋ก 

๐Ÿ“ ๋” ๋‚˜์€ ์ด๋ฆ„์„ ์„ ํƒํ•˜๊ณ , ํฐ ํ•จ์ˆ˜๋ฅผ ์ž‘์€ ํ•จ์ˆ˜ ์—ฌ๋Ÿฟ์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ์ž์‹ ์˜ ์ž‘ํ’ˆ์— ์กฐ๊ธˆ๋งŒ ๋” ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ด์ž. ์ฃผ์˜๋Š” ๋Œ€๋‹จํ•œ ์žฌ๋Šฅ์ด๋‹ค.

ํด๋ž˜์Šค์™€ ํ•จ์ˆ˜ ์ˆ˜๋ฅผ ์ค„์ด๋Š” ์ž‘์—…๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ  ์˜๋„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ž‘์—…์ด ๋” ์ค‘์š”ํ•˜๋‹ค๋Š” ๋œป์ด๋‹ค.

์ด ์ฑ…์—์„œ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ๋ฒ•์€ ์ €์ž๋“ค์ด ์ˆ˜์‹ญ๋…„๋™์•ˆ ์Œ“์€ ๊ฒฝํ—˜์˜ ์ •์ˆ˜๋‹ค.
๋‹จ์ˆœํ•œ ์„ค๊ณ„ ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค๋ฉด ์šฐ์ˆ˜ํ•œ ๊ธฐ๋ฒ•๊ณผ ์›์น™์„ ๋‹จ๋ฒˆ์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

profile
์•„๋Š‘ํ•œ ๋‡Œ๊ณต๊ฐ„ ๐Ÿง 

0๊ฐœ์˜ ๋Œ“๊ธ€