티스토리 뷰

Review

웹 뉴비의 Angular 1년 -중-

그랩그랩 2017. 10. 26. 15:24


지난 글 : 웹 뉴비의 Angular 1년 -상-


  3학년을 지내는 1년은 내 15년 학교 생활 중에 가장 재밌었던 1년이 아닌가 싶다. ( 사실 초등학교 때는 기억도 잘 안나서 재밌었는지 어땠는지 잘 모르겠다. ) 힘들기는 엄청 힘들었지만, 그만큼 엄청 재미있었고 남는 것도 많이 있었다. 하지만 3학년 2학기가 끝나 가던 어느 날 여느 때와 마찬가지로 자기 전에 멍 때리고 있던 중 문득 이런 생각이 들었다. 이렇게 4학년이 되고 졸업을 하게 되면, 내가 웹으로 먹고 살 수 있을까 라는 생각이 들었다. A+을 받기는 했지만, 시스템 프로젝트를 수행하면서 실제로 코딩한 시간 보다 Angular를 익히는 시간, 중간 발표를 하면서 약판 시간이 더 많기 때문에( 나와 내 친구는 지금 생각해도 진짜 약을 잘 팔았다. ) 내 실제 실력에 의구심을 가지고 있는 상태였다. 그래서 한 해를 쉬면서 실력을 기를 수 있는 계기가 되었으면 좋겠다는 생각을 했다. 그렇게 학기가 끝나고 휴학을 했다.


  사실 실력을 기를 계기가 되었으면 하는 생각에서 휴학을 했지만, 막막하긴 했다. 개발 회사를 운영하고 계시는 선배의 회사에 작은 자리를 차지하면서 어깨넘어로 배워야지 라는 생각을 하긴 했지만, 그렇게 해서는 일 년동안 죽도 밥도 안되고 알바만 하다가 끝나지 않을까라는 생각이 들기도 했다. 그러던 중 그 선배의 회사에 나가면서 있던 중에 선배가 먼저 회사에서 돈을 받으면서 일해보지 않겠냐는 말을 했다. 나에게는 너무나도 고마운 제안이었지만, 아직은 돈을 받고 뭔가 할 수 있는 실력이 아니라고 생각했다. 내 생각에는 아직 레벨 1인 초보 모험가인데 전투 용병 길드에 가입 권유를 받은 것 같았다. 처음에는 아직 제가 실력이 부족한 것 같아서요 라는 대답을 했지만, 다른 선배와 술을 마시면서 그런 얘기를 하면서 생각이 바뀌어 같이 일을 하기로 결정했다.


  회사에는 정식 직원이라기 보다 알바나 인턴으로 들어갔다. 어차피 1년 뒤에 다시 학교 생활을 하러 가야했기도 했고, 졸업하면 서울로 갈 것이라는 막연한 이야기를 계속 했었기 때문에 그렇게 하기로 했다. 불규칙적으로 얼굴을 내비쳤던 회사에는 정기적인 출근 시간, 퇴근 시간이 생겼고, 내 자리도 더 넓어졌다. 그리고 프론트 앤드 개발자로서 첫 번째 회사, 첫 번째 프로젝트를 시작했다.


  첫 번째 프로젝트는 대출 관리 사이트를 만드는 것이었다. 회사 내부에서 사용하는 것이기 때문에 디자인에 크게 구애를 받지 않았고, 데이터를 정확하고 쉽게 볼 수 있도록 보여주는 것이 주된 목표였다. 첫 상업적인 특성을 띈 프로젝트였기 때문에 더 잘해야겠다는 생각이 들었다. 하지만 이 때부터 내가 아직 레벨 1 초보 모험가였구나 라는 생각을 하게된다.


  수 많은 폼, 수 많은 데이터, 수 많은 요구사항이 매일 나를 괴롭혔다. 내 것에 갇혀 시스템이 지금 어떻게 돌아가는지 머릿속에 들어오지 않았다. 그리고 보지 못한 알 수 없는 오류들도 내 발목을 잡았다. 하나 하나 Stackoverflow에 찾고 물어보며 프로젝트를 수행했다. 이 프로젝트는 어느 정도 완성을 했을 때는 시스템이 어떻게 돌아가는지 어느 정도 감을 잡았고, Angular에 대한 내 지식도 더 늘어나고 나 스스로의 폴더링 규칙이나 다른 코딩 규칙들이 어느 정도 세워졌다. 그리고 Angular에 속한 기능들의 장단점이 하나 둘 보이기 시작했다. 이 프로젝트는 아직도 요구사항이 하나 둘 추가가 되지만, 그 때마다 처음부터 다시 만들고 싶다는 생각이 드는 프로젝트다. 하지만 이 프로젝트를 수행하면서 실무에서는 이런 식으로 일을 하는 구나, Angular를 더 잘 쓰려면 이렇게 하면되겠구나 하는 등 나 스스로 레벨 업을 했다고 느낀다. 한 레벨 3정도는 되지 않았을까.


  첫 번째 프로젝트가 마무리가 되어갈 때 쯤, 두 번째 프로젝트를 연달아 진행했다. 두 번째 프로젝트는 채팅 웹 앱이었다. 비밀 유지를 중점으로 한 채팅 앱이었다. 이 프로젝트를 하면서는 데이터 업데이트 방법이라던지 UI/UX에 대해 생각을 하게된 프로젝트였다. 또 FCM과 Service Worker를 처음 써보게 되었고 Service Worker를 알아보면서 PWA에 대해 알게 되어 서울에서 열린 PWA RoadShow에 참석하는 계기가 된다. 하지만 이 때 까지도 아직 모듈이나 Lazy Loading에 대한 개념이 없었기 때문에 앱의 초기 로딩은 길다. 이 때 사용한 라이브러리와 *ngFor의 이해 부족으로 발생한 이벤트 바인딩 성능 이슈 때문에 Memory Leak을 찾기 위해 크롬의 개발자 도구를 이용해 프로파일링 하는 방법을 배우게 된다.


  두 번째 프로젝트를 하면서 Angular 관련 책들이 나오기 시작했고, 그 책들이 발매 된다는 소식이 보이면 구매를 하거나 학교 도서관에 신청을 해서 하나하나 다 봤다. 그 중에서 나는 '쉽고 빠르게 배우는 Angular'가 사전식으로 되어 있어서 공식문에 있는 내용이 이해가 안되면 한번씩 보곤했다. 이것 말고는 바이킹이 그려져 있는 Angular 책은 입문은 뗀 사람들이 보면 좋은 내용들이 들어있다.


  두 번째 프로젝트도 끝나고 잠깐 텀이 있을 때 시스템 프로젝트를 했던 게임 추천 시스템을 리뉴얼 하고 싶다는 생각이 들었다. 이전의 것은 되기만 하면 된다는 마인드로 주먹구구식으로 만들었지만, 더 잘 만들어서 서비스를 하고 싶었다. 그래서 내 AWS에 환경을 셋팅하고 개발을 시작했다. 서버 단에서 데이터 핸들링 로직들은 모두 Rxjs로 만들었기 때문에 이걸 하면서 Rxjs를 잘 쓸 수 있게 된 것 같다. 지금 그 리뉴얼 작업은 잠깐 멈춰 있는데 그 이유는 로직에 들어가는 데이터를 할 수 있는 만큼 최적화를 해서 AWS 프리티어에서 실행했는데 그 로직이 도는 동안은 서비스가 멈추기 때문에 실제 서비스를 할 수 있는 수준이 아니였다. 이후에 결과값을 데이터베이스에 캐싱하는 등 몇가지 방법을 추가 했지만 정상적인 서비스라고 말할 수는 없었다. 그렇게 시간이 날때마다 리뉴얼 작업을 했지만 현재는 프리티어도 끝난 상태라 더 이상 진행할 수가 없다.


  텀 동안 학교를 다닐 때 있었던 연구실의 선배와 코딩 모임을 만들었고, 여름 방학 동안 인원을 모아서 팀 별로 프로젝트를 진행하는 걸 했다. 우리 팀은 학교 실습실 예약 시스템을 만들었다. 개발 후기는 여기서 볼 수 있다. 웹을 처음 해보는 친구들과 진행한 프로젝트였기 때문에 같은 팀원이라기 보다 멘토의 느낌으로 진행한 프로젝트였다. 이 프로젝트를 진행하면서 폴더링 규칙을 더 엄격하게 만들었고, 모듈이나 lazy loading을 찾아봤었기 때문에 여기서 모든 것을 적용해보고 괜찮으면 다음에도 사용해야겠다 라는 생각을 하게 됐다. 결과는 지금도 Lazy Loading을 잘 쓰고 있다. 이 프로젝트는 여름 방학이 끝나는 마지막 날 학회에게 인계를 해서 지금도 버그 없이 잘 사용하고 있다.


  세 번째와 네 번째 프로젝트는 거의 동시에 진행했는데 둘 다 대시보드였다. 하나는 전력 대시보드, 하나는 가스 측정 대시보드. 대출 관리 시스템도 데이터를 잘 보여주면 되는 것이었지만, 대시보드와는 차원이 다른 문제였다. 한 화면에 최대한 간단한, 최대한 알기 쉽게 데이터와 그래프를 보여줘야 했다. D3.js를 이용해서 그래프를 그리는데 이것도 한 주가 걸렸다. 데이터가 수 천건이 넘게 되다 보니 데이터를 리로드하는 로직이나, 그래프를 리로드 하는 것들도 신경을 써야 했다. 엔터프라이즈용 이란 건 이런 걸 말하는구나 라는 걸 수박 겉핥기 정도 할 수 있었다.


  이런 식으로 일 년동안 프로젝트가 진행됐다. 레벨 1 초보 모험가는 전투 용병 길드에 들어갔고 고수들과 부대끼며 칼질 하는 것 활 쏘는 것 마법 부리는 것을 어깨 넘어 배우고 나에게 주어진 퀘스트를 진행하다 보니 어느정도 성장한 것 같다. 하지만 아직 전직의 때는 오지 않았다.


다음 글 : 웹 뉴비의 Angular 1년 -하-

댓글
Total
Today
Yesterday
공지사항
최근에 올라온 글
최근에 달린 댓글