haileyjpark

[Udemy X 글또] <클린코드 자바스크립트(JavaScript)> 수강후기 본문

카테고리 없음

[Udemy X 글또] <클린코드 자바스크립트(JavaScript)> 수강후기

개발하는 헤일리 2024. 5. 13. 01:15
반응형

 

개발자 글쓰기 커뮤니티인 글또의 9기에 참여하면서, 감사하게도 Udemy에서 쿠폰을 받아 강의를 들을 수 있는 기회가 주어졌고, 

나는 아래의 두 가지 강의를 수강했다. 강의 개요 페이지로 연결되는 아래의 링크를 통해서 강의에 대한 자세한 설명을 볼 수 있다.

앱개발 강의에 대한 수강 후기 에서는 해당 강의에 대한 후기와 Udemy 플랫폼의 UI에 대한 경험 후기를 전반적으로 적어보았고,

이번에는 자바스크립트 강의에 대한 후기만 간략하게 남겨보고자 한다. 

 

Requirements

강의를 듣기 전 참고해야 할 사항은 아래와 같다.

  • JavaScript 기본적인 문법 이해가 필요합니다.
  • JavaScript로 간단한 앱을 개발해본 경험이 있으면 더욱 좋습니다.
  • 프론트엔드 생태계에 대한 간단한 기본 이해가 필요합니다.
     

수강 대상

강의 개요에 나와있는 수강 대상은 아래와 같다.

 

자바스크립트로 코드를 작성하며 이런 경험이 있으신가요?

  1. Next.js, SWR, React Query, Recoil, TypeScript 들어본 기술들은 다 배워야할 것 같은데 지금 현재 내 실력을 가늠하지 못하겠다.
  2. React, Angular, Vue 등의 도구를 사용하며 예상처럼 동작하지 않아 어려웠던 경험을 마주한 적이 있다.
  3. 구글링으로 급하게 문제를 해결은 하지만 동작 원리에 관심을 가지지 않는다.
  4. 팀내 사수, 리드 개발자 그리고 유명한 네임드 개발자들의 성향을 그대로 따라한다.
  5. 유명한 JavaScript 코드 스타일 가이드만을 보고 맹목적으로 따른다.
  6. 대중적으로 Vanilla JavaScript 의 중요성을 강조하고 있는데 그 이유를 피부로 느껴보지 못했다.

 

클린코드라는 책은 언젠간 꼭 다 읽어봐야지라는 마음으로 계속 미루고 있었는데, 현재 회사에서의 주 개발언어인 자바스크립트로 클린코드에 대한 강의를 하고 있을 뿐만 아니라, 강의 개요에 나와있는 수강 대상자 부분에서 아래의 내용을 보고 이거 나네.... 하는 생각에 수강을 신청하게 되었다.

  • 팀내 사수, 리드 개발자 그리고 유명한 네임드 개발자들의 성향을 그대로 따라한다. 
  • 유명한 JavaScript 코드 스타일 가이드만을 보고 맹목적으로 따른다.

팀 내에서 잘 규격화되고 있는 코드 컨벤션이 있고, 코드 리뷰 룰을 엄격하게 가지고 가는 편이라 코드 컨벤션이 잘 지켜지고 있기도 하고, 더더욱 나는 백엔드 파트에서 막내라서 현재의 코드 컨벤션에 큰 의문을 가지고 있던 터라 이 강의가 많이 도움이 될 것 같았고, 실제로 많은 도움이 되었다고 생각한다.

 

강의 구성

 

강의는 약 11시간 분량으로, 자바스크립트의 클린코드를 다루는 강의라기에는 약간 많게 느껴질 수 있지만, 이미 자바스크립트로 개발한 경험이 꽤나 있으신 분들이라면 듣고 싶은 챕터만 취사 선택해서 들을 수 있고, 강사님의 말이 많이 빠르지 않아서 배속으로 듣게 되면 사실 시간이 크게 오래 걸리는 편은 아닌 것 같다.

 

 

도움이 된 포인트

사실 모든 경우에서 나쁘고 모든 경우에서 좋은 것들이 없기 때문에, 그런 것들을 최적화하는 것이 클린코드의 의의라고 생각하는데,

내가 코드를 작성할 때 A의 경우에서 효율적인 것을 B의 경우에도 적용하고 있는 케이스들이 왕왕 있어왔다는 것을 강의를 수강하면서 깨달았다.

많은 포인트에서 그러했는데, 분기다루기 챕터에서 부정조건문을 지양하는 것이 좋다는 내용이 나오는 것을 예로 들어보려고 한다.

부정조건문 지양하기

[부정조건문을 지양하는 것이 좋은 이유]

    1. 생각을 여러번 해야할 수 있다.

    2. 프로그래밍 언어 자체로 if문이 처음부터 오고 true부터 실행시킨다.

// 숫자일 때만 동작하는 조건문을 부정조건문으로 작성했을 때
if(!isNaN(3)){
    console.log('숫자입니다.')
}


function isNumber(num){
    return !Number.isNaN(num) && typeof num === 'number'
}

// 함수를 만들어 부정조건문을 피한 경우 - 가독성이 좋아진다.
if(isNumber(3)){
    console.log('숫자입니다.')
}


const isCondition = true;
const isNotCondition = false;

// 아래와 같이 else - if로 뒤집어서 프로그래밍 하지 않음. 프로그래밍 자체적으로 if - else로 동작함
else(isCondition){
    console.log('참인 경우에만 실행')
} if {
    console.log('거짓인 경우에만 실행')
}

 

위와 같이, 사람이 하는 일이기 때문에 부정조건문을 많이 사용하게 되면 헷갈릴 수가 있다.

 

실제로 나의 경우에도, 복잡한 로직이 많이 포함되어 있고 양이 굉장히 많은 PR의 코드리뷰를 하다보면 간단한 것들도 놓치게 되고 아주 작은 부분들까지 꼼꼼하게 봐야하므로 약간 뇌가 피로해지는(?) 경우가 있었다.

때문에 복잡한 로직이 많은 서비스의 경우 최대한 가독성 좋게 코드를 작성하는 것이 주요 임무(?) 중 하나인 것을 잘 알고 있다.

 

[그럼 부정조건문은 대체 언제 쓰나요?]

    1. early return 사용할 때

    2. 유효성 검증 (Form Validation)

    3. 보안 혹은 검사하는 로직

 

팀에서는 early return에서 주로 부정 조건문을 쓰는데, 이 때에는 확실히 부정조건문이 편리한 감이 있다. 

나는 early return이 아닌 경우에도 종종 의식의 흐름대로 부정 조건문을 쓴 적이 있는데, 코드 리뷰시에 팀원 분들이 코멘트를 달아주신 적이 있다. 이번 강의를 수강하고 나서 다시 한번 되짚어보게 되고, 앞으로도 주의해서 신경쓰는 부분 중 하나가 될 것 같다.

 

전반적인 후기

사실 위에서 언급한 부정조건문 외에도 도움이 되었던 포인트들이 굉장히 많다.

이 부분은 강의 후기로 다 적기에는 양이 많아질 것 같아 추후에 별도로 글을 하나 더 작성해보려고 한다!

 

확실히 JavaScript를 처음 배우시는 분들이 아니라 많이 사용해보신 분들에게 클린코드를 되새기고 지금까지의 코드 스타일을 점검해보는 용도로 좋을 것 같은 강의이다.

이 강의를 들을 후에 리팩토링 해야할 나의 코드들이 떠올라서 부끄러워졌고, 팀원 분들의 코드에서 항상 볼 수 있었던 패턴들과 코드리뷰에서 코멘트 받았던 내용들도 강의에서 많이 나와있어서 역시 다시 한번 이 팀에서 일하고 있다는 것에 감사함을 느꼈다...

 

Udemy의 강의는 한번 수강 신청을 하면 오래 들을 수 있기 때문에 나중에 다시 두고두고 들을 수 있어서 좋은 것 같다.

JavaScript로 개발하시는 분들은 꼭 한번 들어보시면 좋을 것 같다!