
클린코드란? C++의 창시자 Bjarne Stroustrup는 아래와 같이 클린코드의 정의를 설명했습니다. 저는 코드가 우아하고 효율적이어야 한다고 생각합니다. 로직은 간단하고 버그가 숨기 어렵게 만들어야 하며, 종속성을 최소화하여 유지보수를 쉽게 하고, 명확한 전략에 따라 오류 처리를 완료하고, 원칙 없는 최적화로 코드를 지저분하게 만들지 않도록 최적에 가까운 성능을 제공해야 합니다. 깔끔한 코드는 한 가지 일을 잘 해냅니다. 우아하고 효율적이며 로직은 간단하고 버그가 숨기 어렵고 종속성을 최소화하여 유지보수를 쉽게 blah, blah, blah... 😂😂😂 정말 좋은 글을 무례할지도 모르지만 아래와 같이 간단하게 정리하겠습니다. 디버깅이 쉬운 코드 사이드 이펙트를 고려한 코드 기능을 추가하기 쉬운 코..

블럭(Blocking) / 넌블럭(Non-blocking)Blocking과 Non-blocking의 중요한 포인트는 바로 제어권입니다, 바로 예시를 보시죠. Blocking(블럭) : 자신의 작업을 하다가 다른 주체의 작업이 시작되면 끝날 때까지 기다렸다가 끝이 나면 자신의 작업을 시작합니다. 🙎🏻♂️ : 선생님!, 숙제 다 해왔어요. 검사해 주세요! 🙋🏻♀️ : 그랭, 숙제 검사하는 동안 거기서 딱 기다려. 즉, 호출된 함수가 자신의 일이 끝날 때까지 제어권을 가지고 있습니다. 호출한 함수에게 바로 돌려주지 않고 끝나고 제어권을 돌려주죠.Non-blocking(넌블럭) : 다른 주체와 관계없이 자신이 제어권을 가지고 있습니다. 🙎🏻♂️ : 선생님!, 숙제 다 해왔어요. 검사해 주세요! 🙋🏻♀️ ..