여씨의 개발이야기

[개발일기] Syntactic sugar!! 이거 정말 달달해서 혹하네 ㅋ 본문

📕 Note

[개발일기] Syntactic sugar!! 이거 정말 달달해서 혹하네 ㅋ

yeossi 2022. 2. 14. 12:59

JS 강의를 듣는 도중에 나온 "Syntactic sugar". 직역하자면 문법적 설탕. 말 그대로 정말 달달하고도 매혹적인 놈이다ㅋ 정의를 내려보자면,

사람이 이해 하고 표현하기 쉽게 디자인된 프로그래밍 언어 문법. 또는 프로그래밍 언어를 더욱 더 간결하고 명확하게 표현이 가능하도록. 즉, sweeter하게 사용 할 수 있도록 도와주는 문법을 "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.

출처 : https://en.wikipedia.org/wiki/Syntactic_sugar

 

Syntactic sugar - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Programming language syntax designed for ease of use In computer science, syntactic sugar is syntax within a programming language that is designed to make things easier to read or to e

en.wikipedia.org

대표적인 예로 count++;가 있으며, TypeScript가 Syntactic Sugar의 특징을 가졌다고도 한다. 또한 ES6의 Class도 Syntactic Sugar라고 할 수 있다.

이 용어를 알고 있지는 않았지만, 뭔가 많이 낯이 익길래 기억을 더듬어보니, C#을 처음 배웠을 때 얕게 공부를 한 경험이 있었다. 

// Syntactic Sugar
var name = side == "BUY" ? "LONG" : "SHORT";

// else
var side = "Foo";   // or "BUY" or "SELL" or whatever
var name = "NEITHER";

switch (side)
{
    case "BUY":
        name = "LONG";
        break;
    case "SELL":
        name = "SHORT";
        break;
    default:
        throw new Exception();
}

한 눈에 봐도 긴 Switch case 구문을 짧고 효과적으로 한 줄로 요약했기 때문에 괜히 "sugar"라고 붙인게 아니란 생각이 들게 만든다. 정말 달달한 놈이다ㅋ

But, 요즘엔 이렇게 작성하는 방법을 지양하자는 추세가 되었다. 왜...? 이렇게 소스가 짧아진 것을 한 눈에 볼 수 있는데? 개발자가 빨리 개발할 수 있도록, 개발 퍼포먼스를 높일 수 있는 최고의 방법 아니어요?

🤔 "Sugar"는 많이 섭취할수록 당뇨에 걸리기 쉽대요,,,

소스의 양이 늘어날수록 복잡하고, 가독성을 떨어뜨릴 수 있다. 처음 소스를 작성할 경우에 Sugar를 사용하는 만큼 개발 속도를 높일 수 있어 좋겠지만, 양이 점점 많아지면서 소스가 짧아진 만큼 이를 해석하는 시간도 오래 걸릴 수 있으며, 다른 개발자가 이 소스를 분석할 경우에도 난감한 상황이 생길 수 있다. 또한 클래스에서 정의한 속성과 메서드를 데코레이터 안에서 완전히 다른 용도로 변경할 위험도 있다. 그러므로 적절히, 규모가 크지 않은 기능을 제작할 경우에만 사용하는 것이 좋다는 필자의 개인적인 생각이다. 일회용의 짧은 코드로 끝낼 경우에는 Sugar가 실질적으로 큰 문제가 되진 않을 것 같다.

Comments