개발 요약

  • 총 2인 개발 중 백엔드 개발 담당
  • 관심 블로그 크롤링 / BackOffice 페이지 편의성 기능 / 에러 관리

Stack

  • OS : Amazon Linux, Ubuntu 14.04 (using AWS EC2)
  • Language : Ruby, Javascript
  • Framework : Rails
  • DBMS : Mysql (using AWS RDS)

주요 개발사항

  • 블로그 크롤러
    • 25분만에 약 11만개의 학원 블로그 크롤링
    • 대상 블로그 업데이트 유무 판단
    • 기존에 작성한 포스팅과 중복 여부 판단(홍보용 포스팅 제거)
    • 제목, 태그 등을 통해 관심 없는 포스팅 제외
  • BackOffice
    • 관리자 페이지 커스터마이징(기존에는 rails admin 라이브러리 이용) 및 주소 검색 api 연동
    • 네이버 지도 검색 및 파싱 자동화(Chrome headless, Selenium) -> BackOffice 연동
    • Slack webhook 연동으로 DAU, WAU, MAU 및 조회수 확인 기능
    • 050 api 연동, 안심번호 자동 매칭 기능 추가
  • 기타
    • Error Tracking, Notification 툴 도입(RollBar)
    • Jira 로 Issue 관리 담당, 에러 핸들링 매뉴얼 작성
    • 개발환경 구축 매뉴얼 작성 (Capistrano)
  • 성과 : 크롤러 개발 후 검색 유입 증가로 2달만에 MAU 5,000에서 10,000으로 2배 증가

기타 사항

  • 입사 당시 개발팀이 혼자였기 때문에 많은 시행착오를 겪으면서 개발을 했다.
  • 크롤러 개발 중에 서버 과부하로 인해 서버를 꺼트린(…) 경험이 있다.
  • 현재는 node.js 기반으로 변경하였으나, 크롤러는 여전히 내가 만든 것을 사용 중.

배운 것들

  • 문서화의 중요성 : 개발 당시 기존 프로젝트를 리뉴얼하는 과정이었기 때문에, 정말 오래전에 만들어진 버전 이후로는 문서화가 제대로 되어있지 않아 고생을 꽤 많이 했다. Readme를 통해 한 눈에 알 수 있는 Model Spec 정의 및 Controller 기능 정의 등이 반드시 필요하고 아무리 급해도 클래스 다이어그램, 시스템 흐름도 정도는 꼭 만들어두어야 한다는 것을 깨달았다.
  • 단위 Test Code 작성의 중요성 : 단위 Test Code를 꼭 작성해야 빠르게 문제 해결이 가능하다는 것을 알았다. 코드를 수정할 때마다 전체 프로그램을 돌리는 것 만큼 어리석은 짓은 없다.
  • Rails asset pipeline에 대한 이해 : 수많은 image와 markup, javascript를 이용하는 실무에서 Framework가 정적인 asset을 어떻게 처리하는지에 대한 이해는 굉장히 중요하다는 것을 느꼈다.
  • AWS의 실무활용 : 서비스중인 서버를 터트려가면서 몸소 터득한 AWS 활용 방법. AWS의 서비스들을 아주 조금은 내가 그린 그림대로 구성할 줄 알게 되었다. (RDS - EC2 - S3)

번외

일 하게된 계기

한창 멋쟁이 사자처럼 6기 운영진 활동을 하던 중, 멋사 출신 기업인 강남엄마에서 채용 공고를 냈다. 한창, 스타트업만이 가능한 시장구조 변화를 꿈꾸고있던 차에 실무 경험도 쌓을 겸 지원해보았다.

첫 면접에서는 풀타임으로 일할 수 없다는 조건때문에 그냥 돌아오게 되었지만, 대표님이 계속 같이해보고 싶다는 생각이 드셨다고 한다.(기분 좋으라고 한 말이겠지만) 연락을 받고 다시 면접을 보고 기술면접 후 채용이 되어 학기중 파트타임 직원으로 시작하여 방학 풀타임 개발을 뛰게되었다.

느낀 점

  • 주니어는 무조건 많이 배울 수 있고, 일을 많이 할 수 있는 곳으로 가야한다. 그래야 실력이 늘 것 같다.
  • 크롤러를 개발하면서 효율적인 알고리즘 작성에 대한 필요성을 아주 절실하게 느꼈다.