본문으로 바로가기
반응형

극악의 러닝 커브로 명성을 떨치고 있는 앵귤러! 진정 학습 난이도가 높을까요?

이번 글에서는 앵귤러의 러닝 커브에 대해서 어느정도인지, 간략하게 다루어보도록 하겠습니다. 물론 어디까지나 개인 의견이므로 누구에게나 통용되는 사항은 아닙니다.

 

 

정말일까

 

1. 통설 (說)

인터넷에 프론트엔드 프레임워크를 비교하는 Vs. 류의 글을 찾아보면 백이면 백 다음과 같은 말들이 나와있습니다.

 

"앵귤러는 학습 커브가 steep 하다!"

 

다른 프레임워크나 라이브러리 (Vue, React)를 다뤄보지 않고 Angular만 다뤄본 입장에서 정확하지는 않겠지만,

앵귤러 자체의 절대적 측면에서의 기준으로 어느 정도는 맞다고 할 수 있을 것 같습니다.

난이도는 둘째치고, 기본적으로 공부해야 할 분량이 많거든요.

 

NgModule

Component

Service

Directive

Typescript

RxJS

Form

HTTPClient

Routing

Animation

Angular-CLI

Angular Material

.

.

.

 

더욱이, 기존의 일반적인 웹 개발과 비교하면 다소 이질적인, 무언가 처음부터 끝까지 앵귤러스러움을 강요한다는 점은 부인할 수 없습니다.

냉정하게 이야기하면, 세세한 것까지 이미 앵귤러 방식의 가이드가 정해져 있기 때문에 일단 무언가를 시작해 보기 위해서 알아야 하는 분량이 제법 된다는 것이겠죠?

 

2. 블랙박스

뭐... 편하다면 그정도 불편함은 감수할 수 있습니다.

 

그런데... 사용하다 보면 가끔은

 

여기서는 도대체 왜 이렇게 해야 하는지 속시원히 알기 어렵습니다. 

튜토리얼을 보긴 하는데 왜 이런 식으로 해야 하는지 잘 이해하지 못하니 참으로 답답합니다. 

그렇다고 앵귤러 코어를 뜯어서 공부할 능력은 안됩니다. (개인 역량의 한계도 한몫합니다. ㅜㅜ)

 

약간 블랙박스를 바탕으로 두고 코딩하고 있는 느낌이랄까요?

 

내가 너희를 위해 모든것을 준비했으니 그것에 따라 코딩을 하면 된다.

 

이러면 되는데 왜 되는 건지 애매하고

이건 또 왜 안되는지 아리송 할 따름이고...

 

무거운 프레임워크라면 사용 자체는 좀 쉽고 심플하게 해 주시면 안 될까요...?

 

3. 구글: 그들만의 리그.

공식 앵귤러 문서는 이상하게 어렵습니다. 잘 정리된 듯하면서도 기이할 정도로 머릿속에 잘 들어오지 않아요.

Vue.js의 공식 문서를 잠깐 봤을 때 바로 체감할 수 있었던 '쉬움'과 달리 Angular.io의 내용은 처음 접하기에는 너무 어렵습니다. 

 

문서를 볼 때마다

 

나는 난독증인가... 아니면 바보인가...

 

자괴감이 들곤 합니다. (구글의 문서들은 다 잘 안 읽혀요...)

 

울고 싶어라

 

앵귤러를 자랑(?) 하기 위해 지나치게 복잡하게 만든다고 해야 할까요? 개발자들의 과도한 친절이 오히려 초기 접근을 어렵게 하는 것 같습니다. 엣지 케이스에 대한 커버를 위해 학습량이 늘어나는 것 같기도 합니다.

 

구구단 공부 중인데 미적분을 알려주는 느낌이랄까요?

 

아주 세세한 부분은 몰라도 일단 진행할 수 있는데 말이죠.

 

나는 아직은 그렇게 too much 한 기능이 필요 없어요...

 

약간은 시작부터 질리게 만드는 경향이 있어 보입니다. 

 

4. 그럼에도 불구하고

상당히 부정적으로 서술했지만, 다른 라이브러리보다는 완전한 프레임워크에 가깝다는 점을 고려하면, 어느 정도 수긍할 수 있는 면도 있습니다. 꼭 그렇게 어렵기만 한건 아닌 이유를 몇 가지 들어보겠습니다.

 

모두 알 필요는 없어요

여전히 이해가 잘 되지 않는 앵귤러 문법들이 있습니다. 하지만, 그 많은 앵귤러의 기능을 알지 못하고 일부만 알고 있다고 해도 어지간한 애플리케이션은 만들 수 있습니다.

  • 기본적인 모듈, 컴포넌트, 라우팅, 서비스의 사용법만 익혀도 대부분의 애플리케이션 기능 구현이 가능합니다. 고급 스킬을 위한 세세한 사항은 나중에 파악하고 리팩토링 해나가도 되지 않을까요?
  • RxJS도 자주 사용하는 몇 가지만 우선 공부하면 개발에 큰 어려움은 없습니다.
  • TypeScript를 잘 몰라도 JavaScript만 알고 있다면 우선은 큰 어려움 없이 사용할 수 있습니다.

하나씩 진행하다 보면, 처음에는 이해되지 않던 앵귤러의 방식이 어느 정도는 공감할 수 있게 바뀌는 경우도 종종 있는 것 같습니다. 그러다 보면 코딩도 점점 앵귤러 최적화가 되겠죠?

 

한글판 등장

고마운 분의 도움으로 앵귤러 한글 사이트(angular.kr)가 생겼습니다. (Vue.js가 부럽지 않다.!)

 

https://han41858.tistory.com/48

 

angular.kr 사이트를 오픈합니다.

안녕하세요. 한장현입니다. 회사를 다녀서 그렇기도 하지만 블로그에 거의 글을 쓰지 않았습니다. 작년에는 Angular 메이저 버전 업데이트과 관련된 글 2개가 전부였네요 ㅎ 그동안 이런걸 만들고 있었습니다. 이..

han41858.tistory.com

 

저와 같이 영어 문서가 싫은 분은 좀 더 쉽게 앵귤러에 접근할 수 있는 좋은 레퍼런스입니다. 아무래도 모국어로 읽는 글이 더 쉬운 법이죠!

 

Stackblitz.

컴파일해야 하는 앵귤러의 특성상 웹에서는 쉽게 예제를 살펴보기 힘들었는데, STACKBLITZ가 등장한 후에 쓸만한 예제들이 많이 보이는 것 같습니다. 에디터도 Visual Studio Code와 거의 동일하니까 별로 거부감 없이 바로 코드를 공부하고 실행해 볼 수 있습니다. 매번 내 PC에 설치해서 연습해야 하는 수고도 덜어줍니다.

 

Angular CLI

프로젝트, 파일 생성, 라이트 서버는 Angular-CLI!

앵귤러의 모듈, 파일 구조 관한 문제를 상당 부분 처리해줍니다. 컴포넌트를 생성하면 부모 폴더 따라가면서 모듈에 알아서 추가도 해주고, 파일명, 클래스명에 템플릿, SCSS까지… 알아서 잘 생성해줍니다.

Angular CLI의 완성도는 높은 편으로, 개발 속도와 편의성이 만족할만한 수준으로 개선됩니다.

 

개발 환경 자체에 신경 쓸 시간이 확 줄어드는 느낌입니다.

 

맺음말

앵귤러의 어려움에 대해서 상당한 불평불만을 늘어놓긴 했지만, 이제는 어느 정도 만족하는 상태입니다. (Angular 6 이후...?) 버전 관리도 어느 정도 체계가 잡힌 것 같고요.

 

프레임워크라서 처음에 더 많은 오버 헤드와 러닝 커브가 있을 수 있지만 관리 측면에서의 노력은 상당 부분 줄여줍니다.  그리고...

앞에서도 살짝 언급했지만 사실 그 많은 기능을 다 알 필요도 없이 극히 일부만 알아도 일단은 어지간한 코딩은 가능합니다. 너무 모든 것을 알기보다는 차근차근 쉬운 기능부터 사용하다 보면... 좀 더 쉽게 앵귤러와 친숙해질 수 있지 않을까요?

 

앵귤러... 그렇게 어렵지 않아요!

Angular JS보다는 나아요...

 

확실히 Angular JS보다는...

출처: https://www.reddit.com/r/angularjs/comments/2s9mzf/my_angularjs_learning_curve_s/

 

반응형