๊ด€๋ฆฌ ๋ฉ”๋‰ด

Hey Tech

[Java] Syntactic Sugar ์˜๋ฏธ์™€ ์‚ผํ•ญ์—ฐ์‚ฐ์ž ํ™œ์šฉ ๋ฐฉ๋ฒ• ๊ณต์œ ! ๋ณธ๋ฌธ

SW ๊ฐœ๋ฐœ/Java

[Java] Syntactic Sugar ์˜๋ฏธ์™€ ์‚ผํ•ญ์—ฐ์‚ฐ์ž ํ™œ์šฉ ๋ฐฉ๋ฒ• ๊ณต์œ !

Tony Park (ํ† ๋‹ˆ) 2021. 11. 17. 23:54
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ก ํ•™์Šต ๋ชฉํ‘œ

Syntactic Sugar์˜ ์˜๋ฏธ์™€ Java์—์„œ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ดํ•ดํ•œ๋‹ค.

Syntactic Sugar๋ž€?

์œ„ํ‚คํ”ผ๋””์•„์—์„œ ๊ฐ€์ ธ์˜จ Syntactic Sugar ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

In computer science, syntactic sugar is syntax within a programming language that is designed to make things easier to read or to express. It makes the language "sweeter" for human use: things can be expressed more clearly, more concisely, or in an alternative style that some may prefer.

 

์ฆ‰, Syntactic Sugar๋ž€ ์ฝ”๋“œ๋ฅผ ๋”์šฑ ๊ฐ„๊ฒฐํ•˜๊ณ , ๋ช…ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑํ•จ์œผ๋กœ์จ

๊ฐ€๋…์„ฑ๊ณผ ์˜๋ฏธ ์ „๋‹ฌ๋ ฅ์„ ๋†’์ด๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.

์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด sugar code์™€ ๊ทธ๋ ‡์ง€ ์•Š์€ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Syntactic sugar ๋ถ€์กฑ ์ฝ”๋“œ

int a = 10;
int b = 20;
int res;
// if~else ๊ตฌ๋ฌธ ํ™œ์šฉ ์˜ˆ
if (a > b) {
    res = a + b;
    } else {
    res = a - b;
}
System.out.println(res);

์œ„์—๋Š” ๋‘ ์ •์ˆ˜์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•ด ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ฒฐ๊ด๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

if~else ๊ตฌ๋ฌธ์„ ํ™œ์šฉํ•ด ๊ฐ ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Java์—์„œ๋Š” ์ด์ฒ˜๋Ÿผ if~else ๊ตฌ๋ฌธ์„ ํ™œ์šฉํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ ๋Œ€๋‹ค์ˆ˜์—์„œ๋Š” ์‚ผํ•ญ์—ฐ์‚ฐ์ž ํ™œ์šฉ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

Sugar ์ฝ”๋“œ

int a = 10;
int b = 20;
int res;
// ์‚ผํ•ญ์—ฐ์‚ฐ์ž ํ™œ์šฉ
res = a>b ? a+b : a-b;
System.out.println(res);

5๋ฒˆ์งธ ๋ผ์ธ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด, ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๋”์šฑ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ž€?

์‚ผํ•ญ์—ฐ์‚ฐ์ž๋Š” if~else ๋ฌธ์˜ ์„ธํŠธ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ํŽธํ•ฉ๋‹ˆ๋‹ค.

๋™์ž‘ ๋ฐฉ์‹์„ ๋ณด๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ๊ฑด๋ฌธ ? ์กฐ๊ฑด๋ฌธ์ด true ์‹œ ์ˆ˜ํ–‰ํ•  ์—ฐ์‚ฐ : ์กฐ๊ฑด๋ฌธ์ด false ์‹œ ์ˆ˜ํ–‰ํ•  ์—ฐ์‚ฐ

๋งจ ์•ž์— ์กฐ๊ฑด๋ฌธ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์กฐ๊ฑด๋ฌธ ๋’ค์— ๋ฌผ์Œํ‘œ ๊ธฐํ˜ธ์™€ ์ฝœ๋ก  ๊ธฐํ˜ธ(:) ์‚ฌ์ด์—๋Š” ์กฐ๊ฑด๋ฌธ์ด true์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋  ๋ฌธ์žฅ์„ ์ž…๋ ฅํ•˜์„ธ์š”.

์ฝœ๋ก  ๋’ค์—๋Š” ์กฐ๊ฑด๋ฌธ์ด false์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋  ๋ฌธ์žฅ์„ ์ž…๋ ฅํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์‚ผํ•ญ์—ฐ์‚ฐ์ž ์žฅ์ 

if(3>2) {
    System.out.println("ํ˜ธ๋ž‘์ด");
}else{
    System.out.println("์ฝ”๋ผ๋ฆฌ");
    }

if ๋‚ด ์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ผ ๊ฒฝ์šฐ, ํ˜ธ๋ž‘์ด๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ถœ๋ ฅํ•˜๊ณ ,

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

๋ฌด๋ ค 5์ค„์ด๋‚˜ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

System.out.println( 3>2 ? "ํ˜ธ๋ž‘์ด" : "์ฝ”๋ผ๋ฆฌ");

์•ž์„œ ๋ฐฐ์šด ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ์กฐ๊ฑด๋ฌธ์— ๋”ฐ๋ผ ํ˜ธ๋ž‘์ด๋ฅผ ์ถœ๋ ฅํ• ์ง€, ์ฝ”๋ผ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

ํ›จ์”ฌ ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ง๊ด€์ ์œผ๋กœ ๋ณด์ด์‹œ์ฃ ?

์ด์ฒ˜๋Ÿผ ์ฝ”๋“œ๋Š” ๋‚˜์™€ ๋™๋ฃŒ๊ฐ€ ์‰ฝ๊ณ  ์ง๊ด€์ ์„ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐ•์กฐ๋“œ๋ฆฌ์ž๋ฉด,

if~else ๊ตฌ๋ฌธ์ด ๋“ฑ์žฅํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ์ž์—ฐ์Šค๋ ˆ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ๊ฒƒ์„ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค.


์˜ค๋Š˜์€ Syntactic sugar์˜ ์˜๋ฏธ์™€ ์ด๋ฅผ ์œ„ํ•ด ์‚ผํ•ญ์—ฐ์‚ฐ์ž ํ™œ์šฉ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต์œ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํฌ์ŠคํŒ… ๋‚ด์šฉ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์•„๋ž˜์— ํ”ผ๋“œ๋ฐฑ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์˜คํ›„๋„ ์ฆ๊ฑฐ์šด ํ•˜๋ฃจ ๋ณด๋‚ด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๊ณ ๋ง™์Šต๋‹ˆ๋‹ค :)

728x90
๋ฐ˜์‘ํ˜•