๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/๊ตญ๋น„์ง€์›

[D+05] ์—ฐ์‚ฐ, ์กฐ๊ฑด๋ฌธ

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2022. 9. 23.

 

 

๊ตญ๋น„์ง€์› D+05

-  ์—ฐ์‚ฐ, ์กฐ๊ฑด๋ฌธ -

 


 

์—ฐ์‚ฐ

์šฐ๋ฆฌ๊ฐ€ ์ˆ˜ํ•™์—์„œ ์•Œ๊ณ ์žˆ๋Š” ์—ฐ์‚ฐ์˜ ์˜๋ฏธ๋Š” ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์•Œ๊ณ  ์žˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ปดํ“จํ„ฐ์—์„œ์˜ ์—ฐ์‚ฐ์€ ๋ฌด์—‡์„ ์˜๋ฏธํ• ๊นŒ?

์ปดํ“จํ„ฐ์—์„œ ์—ฐ์‚ฐ์€ ์ปดํ“จํ„ฐ ๋ช…๋ น์–ด ๋™์ž‘๋ฐฉ์‹์ด๋ผ๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ๋ช…๋ น๊ณผ ์ฒ˜๋ฆฌํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ๋„์ง‘์–ด ๋‚ด๋Š”๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

 

์ปดํ“จํ„ฐ์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ผ๋Š” ๋ช…๋ น์ด ์ฃผ์–ด์กŒ์„๋•Œ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋Š”์ง€ ์•Œ์•„๋ณด์ž.

 

๋ช…๋ น Instruction์€ Opcode์™€ Operand ๋‘ํŒŒํŠธ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค.

Opcode๋Š” Operation code๋กœ ๋ช…๋ น์ด ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋ช…๋ น์ฝ”๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, Operand๋Š” ํ”ผ์—ฐ์‚ฐ์ž๋กœ Opcode๊ฐ€ ์—ฐ์‚ฐํ•  ๋Œ€์ƒ๋“ค์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์ด๋•Œ์˜ Operand๋Š” 1๊ฐœ๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๊ณ  ์ตœ๋Œ€ 4๊ฐœ๊นŒ์ง€๋„ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

 

์˜ˆ๋ฅผ๋“ค์–ด์„œ ์„ค๋ช…์„ ํ•ด๋ณด์ž๋ฉด ์—ฌ๊ธฐ ํ•ด๋‹น์‹์„ ๋ณ€์ˆ˜ a์— ๋‹ด๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค.

 

a์•ˆ์— ๊ฐ’์„ ๊ณผ์ •์„ ์„ค๋ช…ํ•ด๋ณด์ž๋ฉด, ์šฐ๋ฆฌ๋Š” Instruction์—์„œ Opcode์•ˆ์—๋Š” ๋”ํ•œ๋‹ค๋Š” ๋ช…๋ น์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ๊ณ  ๋จผ์ € 4์™€ 5๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ Operand์•ˆ์— ๋„ฃ์–ด์„œ CPU์—๊ฒŒ๋„˜๊ฒจ์ฃผ๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด CPU๋Š” ๋ฐ์ดํ„ฐ๊ฐ’์„ ๊ธฐ์–ตํ•˜๊ธฐ ์œ„ํ•ด ๋ ˆ์ง€์Šคํ„ฐ์•ˆ์— ๋„ฃ์–ด์ฃผ๊ณ  OP-code๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ALU(์—ฐ์‚ฐ์žฅ์น˜)์—์„œ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋”ํ•˜๋Š” ๋ช…๋ น์„ ํ†ตํ•ด์„œ 9๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ’์„ ๋‹ค์‹œ ๋ ˆ์ง€ํ„ฐ ์•ˆ์— ๋‹ด์•„์ฃผ๊ฒŒ๋œ๋‹ค.

๊ทธ ์ดํ›„์—” intํ˜•์ธ(4byte) a๋ฅผ ๋ฐ์ดํ„ฐํƒ€์ž…์— ๋งž๊ฒŒ ํฌ๊ธฐ๋ฅผ ๋งŒ๋“ค์–ด ์ค€ ๋‹ค์Œ 9๋ผ๋Š” ๋ฐ์ดํ„ฐ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ฒŒ ๋œ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋๋‚œ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ธฐ์กด a๊ฐ’์— 10์„ ๋”ํ•ด์ฃผ๋Š” ๊ณผ์ •์„ ์ถ”๊ฐ€๋กœ ํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ ์ด๋•Œ ์šฐ๋ฆฌ๋Š” ๋ ˆ์ง€์Šคํ„ฐ ์•ˆ์— ์ด๋ฏธ a์˜ ๊ฐ’ 9๋ผ๋Š” ๊ฐ’์„ ๊ฐ€์ง€๊ณ ์žˆ๊ธฐ์— 10๋งŒ ๋ช…๋ น์„ ํ†ตํ•ด ๋ ˆ์ง€์Šคํ„ฐ์— ๋„ฃ์–ด์ค€ ๋‹ค์Œ์— ๋‹ค์‹œ ์—ฐ์‚ฐ์žฅ์น˜๋ฅผ ํ†ตํ•ด ์–ป์–ด๋‚ธ ๊ฐ’์„ ๋ ˆ์ง€์Šคํ„ฐ์— ๊ฐ’์„ ๋„ฃ์€ ํ›„ ๋ฒ„์Šค๋ฅผ ํƒ€๊ณ ๋‚œ ๋‹ค์Œ์— ๋ฉ”๋ชจ๋ฆฌ์•ˆ์— ์žˆ๋Š” a๋ฅผ ์ฐพ์•„ ๊ฐ’์„ ๋‹ค์‹œ ๋„ฃ์–ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์—ฐ์‚ฐ์˜ ์ข…๋ฅ˜

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

 

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„

๊ฐ•์‚ฌ๋‹˜๊ป˜์„œ ์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ณ ๋ คํ•ด์•ผ ์ดํ•ด๋˜๋Š” ์ฝ”๋“œ๋ฅผ ํ”ผํ•ด์„œ ๊ด„ํ˜ธ๋ฅผ ํ†ตํ•ด ์šฐ์„ ์ˆœ์œ„๋ฅผ ์„ค์ •ํ•ด ๊ฐ€๋…์„ฑ(readability)์„ ๋†’์ด๋Š” ๊ฒƒ์ด ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋ง์”€ํ•˜์…จ๊ธฐ์— ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ํŒจ์Šคํ•œ๋‹ค.

 


์กฐ๊ฑด๋ฌธ

์šฐ๋ฆฌ๊ฐ€ ์•Œ์•„๋ณธ ์กฐ๊ฑด๋ฌธ์€ if๋ฌธ๊ณผ switch๋ฌธ์ด ์žˆ๋‹ค.

์ƒํ™ฉ์— ์ƒ๊ด€์—†์ด ์กฐ๊ฑด๋ฌธ์ด ํ•„์š”ํ•˜๋ฉด ์–ด๋–ค๊ฒƒ์„ ์“ฐ๋˜ ์ƒ๊ด€์€ ์—†์ง€๋งŒ if๋ฌธ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ํŠน์ •๋ฒ”์œ„๋ฅผ ํ‘œํ˜„ํ•ด์•ผํ• ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, switch๋ฌธ์€ ํŠน์ •๊ฐ’์„ ํ‘œํ˜„ํ•ด์•ผํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์™•์ด๋ฉด ์ด๋Ÿฌํ•œ ์กฐ๊ฑด์— ๋”ฐ๋ผ์„œ ์‚ฌ์šฉํ•ด ์ฃผ๋Š” ๊ฒƒ์ด ์ข€ ๋” ํŽธํ•  ๊ฒƒ์ด๋‹ค.

 

• ์กฐ๊ฑด๋ฌธ - if๋ฌธ

// ์กฐ๊ฑด๋ฌธ - if๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

//#1. if
// ์กฐ๊ฑด์‹์— ํ•ด๋‹น๋œ๋‹ค๋ฉด ์‹คํ–‰๋ฌธ์„ ์‹คํ–‰์‹œํ‚ค๊ณ  ๋‚˜์™€
if(์กฐ๊ฑด์‹) {
	์‹คํ–‰๋ฌธ;
    ์‹คํ–‰๋ฌธ;
    ...
}

//#2. if-else
// ์กฐ๊ฑด์‹์— ํ•ด๋‹น๋œ๋‹ค๋ฉด ์‹คํ–‰๋ฌธ1์„ ์‹คํ–‰์‹œํ‚ค๊ณ ,
// ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์‹คํ–‰๋ฌธ2๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ณ  ๋‚˜์™€
if(์กฐ๊ฑด์‹) {
	์‹คํ–‰๋ฌธ1;
}
else {
	์‹คํ–‰๋ฌธ2;
}

//#3. if-else if - else
// ์กฐ๊ฑด์‹์— ํ•ด๋‹น๋œ๋‹ค๋ฉด ์‹คํ–‰๋ฌธ1์„ ์‹คํ–‰์‹œํ‚ค๊ณ ,
// ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ ์กฐ๊ฑด์‹์— ํ•ด๋‹นํ•˜๋Š” ๊ณณ์„ ์ฐพ์•„ ์‹คํ–‰๋ฌธ์„ ์‹คํ–‰์‹œํ‚ค๊ณ ,
// ๊ทธ์–ด๋””์—๋„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด else๋ฌธ์— ์žˆ๋Š” ์‹คํ–‰๋ฌธ์„ ์‹คํ–‰์‹œํ‚ค๊ณ  ๋‚˜์™€
if(์กฐ๊ฑด์‹) {
	์‹คํ–‰๋ฌธ1;
}
else if(์กฐ๊ฑด์‹1) {
	์‹คํ–‰๋ฌธ;
}
else if(์กฐ๊ฑด์‹2) {
	...
}
else {
	์‹คํ–‰๋ฌธ;
}
.

์กฐ๊ฑด๋ฌธ์€ if, else, else if ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด๋•Œ์˜ else if์™€ else๋Š” ํ•„์š”์—†์„ ๊ฒฝ์šฐ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, else if๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์กฐ๊ฑด์— ๋งž๊ฒŒ ์—ฌ๋Ÿฌ๊ฐœ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.

 

• ์กฐ๊ฑด๋ฌธ - switch ๋ฌธ

// ์กฐ๊ฑด๋ฌธ - switch๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

//#1. case๋ณ„๋กœ break๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค.
// ๋ณ€์ˆ˜๊ฐ’์ด ๊ฐ’1์ด๋ผ๋ฉด ์‹คํ–‰๋ฌธ1๋Œ๋ฆฌ๊ณ  break๋งŒ๋‚˜๋ฉด ์กฐ๊ฑด๋ฌธ์—์„œ๋‚˜์™€
// ๋ณ€์ˆ˜๊ฐ’์ด ์–ด๋””์—๋„ ์—†์œผ๋ฉด default๋ฌธ์— ์žˆ๋Š” ์‹คํ–‰๋ฌธ ๋Œ๋ฆฌ๊ณ  break๋งŒ๋‚˜๋ฉด ์กฐ๊ฑด๋ฌธ๋‚˜์™€
switch(๋ณ€์ˆ˜){
	case ๊ฐ’1:
    	์‹คํ–‰๋ฌธ1;
        break;
    case ๊ฐ’2:
    	์‹คํ–‰๋ฌธ2;
        break;
    default:
    	์‹คํ–‰๋ฌธ3;
        break;
}

//#2. case๋ฅผ ๋ฌถ์€ ๋‹ค์Œ break๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค.
// ๋ณ€์ˆ˜๊ฐ’์ด ๊ฐ’1์ด๊ฑฐ๋‚˜ ๊ฐ’2์ด๋ฉด ์‹คํ–‰๋ฌธ1๋Œ๋ฆฌ๊ณ  break๋งŒ๋‚˜๋ฉด ์กฐ๊ฑด๋ฌธ๋‚˜์™€
// ๋ณ€์ˆ˜๊ฐ’์ด ์–ด๋””์—๋„ ์—†์œผ๋ฉด default๋ฌธ์— ์žˆ๋Š” ์‹คํ–‰๋ฌธ ๋Œ๋ฆฌ๊ณ  break๋งŒ๋‚˜๋ฉด ์กฐ๊ฑด๋ฌธ๋‚˜์™€
switch(๋ณ€์ˆ˜){
	case ๊ฐ’1:
    case ๊ฐ’2:
    	์‹คํ–‰๋ฌธ1;
        break;
    case ๊ฐ’3:
    	์‹คํ–‰๋ฌธ2;
        break;
    default:
    	์‹คํ–‰๋ฌธ4;
        break;
}

switch๋ฌธ์—์„œ ์ค‘์š”ํ•œ๊ฑด ๊ฐ case๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•  ๊ฒฝ์šฐ ๊ฐ ์‹คํ–‰๋ฌธ์„ ์ž‘์„ฑํ•˜๊ณ  ๋ฐ”๋กœ break๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๊ณ , ๋งŒ์•ฝ ์—ฌ๋Ÿฌ๊ฐœ์˜ case๊ฐ€ ๊ฐ’์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋ฉด case๋ฅผ ๋ฌถ์–ด์„œ ๊ฐ™์€ ์‹คํ–‰๋ฌธ์ด ๋‚˜์˜ค๊ฒŒ ์„ค์ •ํ•˜๊ณ  ๊ทธ๋‹ค์Œ์— break๋ฅผ ๊ฑธ์–ด์ค˜์•ผ ํ•œ๋‹ค.

 

์ฝ”๋“œ๋ฅผ ์ž˜ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

โ‘  ์ƒ์‹์ ์œผ๋กœ ๊ตฌํ˜„ํ• ๊ฒƒ

→ ์—…๋ฌด์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ• ๋•Œ ๋‚˜๋งŒ์˜ ์‹ ๋ฐ•ํ•œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋‹ค์Œ์— ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด์•ผํ•˜๋Š” ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋‚˜์˜ ์†”๋ฃจ์…˜์ด ๋ˆ„๊ตฐ๊ฐ€์—๊ฒ ํ”„๋ผ๋ธ”๋Ÿผ์ด ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๋ช…์‹ฌํ•˜์ž.

 

โ‘ก ๋ฌธ์ œ์— ์ œ์‹œ๋˜์–ด์žˆ๋Š” ๊ฐ’์„ ์ž„์˜๋กœ ๋ณ€๊ฒฝํ•˜์ง€ ๋ง๊ฒƒ

→ ์˜ˆ๋ฅผ๋“ค์–ด ๋งŒ์•ฝ 20์„ธ๋ถ€ํ„ฐ 30์„ธ๊นŒ์ง€๋ผ๊ณ  ํ•˜๋Š” ํ‘œํ˜„์„ 20์„ธ ์ด์ƒ 30์„ธ ์ดํ•˜๊ฐ€ ์•„๋‹ˆ๋ผ 20์„ธ ์ด์ƒ 31์„ธ๋ฏธ๋งŒ์ด๋ผ๊ณ  ํ‘œํ˜„ํ–ˆ์„๋•Œ ํ‹€๋ฆฐ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€๋Š” ์•Š๊ฒ ์ง€๋งŒ ๋‹ค๋ฅธ์‚ฌ๋žŒ์ด ๋‚˜์˜ ์ฝ”๋“œ๋ฅผ ๋ณด์•˜์„๋•Œ ๊ฐ€๋…์„ฑ์ด ์ข‹์ง€ ์•Š์„ ๋ฟ๋”๋Ÿฌ ์‹ ๋ขฐ์„ฑ์„ ์žƒ์–ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ œ์‹œ๋œ ๋ฌธ์ œ๋‚ด์—์„œ ๊ฐ’์„ ํ™œ์šฉํ•˜๋„๋ก ํ•˜์ž.

 

โ‘ข ์ˆ˜์ง์„ ์„ ์‚ฌ์šฉํ•˜์ž

→ ์กฐ๊ฑด๋ฌผ์„ ํ‘œํ˜„ํ• ๋•Œ ์ฝ”๋“œ๋กœ ๋ฐ”๋กœ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ์ˆ˜์ง์„ ์œผ๋กœ ์กฐ๊ฑด์„ ํ‘œํ˜„ํ•ด๋ดค์„๋•Œ ๋จผ์ € ๋‚˜์˜ ๋…ผ๋ฆฌ์— ๋ชจ์ˆœ์ด ์—†๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ œ์‹œ๋œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋…ผ๋ฆฌ์ ์ธ ๋ชจ์ˆœ์ด ์žˆ๋Š”์ง€ ์—†๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ์ˆ˜์ง์„ ์„ ๊ทธ๋ฆฌ๋„๋ก ํ•˜์ž.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€