MEAN Stack을 가지고 서비스를 만드는데 사용을 하려면 어떤 순서로 익혀야 할까? 각각의 기술을 따로 배우는 것은 어차피 전문서적들이 있기 때문에 여기서 다시 상세히 설명하는 것은 의미가 없을 것 같고, 서비스를 기획, 개발, 런칭까지의 과정을 알아보자. 모든 과정의 내용은 웹 서비스쪽에 공개되어 공유될 것이다
Sprint-1) Full Stack 개발자 되기
- MEAN 개념과 개요
- MEAN 이외에 알아야 할 것들
+ JavaScript
+ Bootstrap (or Zurb Foundation)
+ Mongoose
Sprint-1) 개발 준비 단계
- 로컬 개발 환경 만들기
+ Vagrant + Linux 환경 구성하기
+ 개발환경에 Node.js, MongoDB 설치하기
+ Trello 에서 Scrum 개발하기
- MEAN Stack 개발도구 개발환경에 설치하고 익히기
+ Yeoman : 클라이언트 라이브러리관리 및 배포 Grunt, Bower, Yo 설치하기
+ NPM : 서버 라이브러리 관리
- Git & GitHub 저장소 만들기
+ Git Branch 전략
+ GitHub 사용방법
- 클라우드 환경에 배포하여 테스트 하기
+ Cloud Development(Nitrous.io) 를 통한 협업개발 및 테스트하기
+ Heroku같은 PaaS에 배포하여 테스트하기
Sprint-1) MEANK Stack 개발 환경 구성하기
- SRS 작성하기
+ Software Request Requirement란 무엇인가?
+ Trello 에 소프트웨어 요구사항 정의서 작성하기
+ Balsamiq 도구 사용하여 Wireframe & Mockup 그리기 화면 그리기
- AngularJS Scaffolding 코드 사용하기
+ angular-generator 알아보기
+ angular 기본골격 만들기
+ NodeJS로 테스트 하기
- MEAN Stack 테스트 전략
+ AngularJS에서의 테스트 방법 : Karma Framework
+ NodeJS에서의 테스트 방법 : Mocha 그외
Sprint-2) 서비스 프로토타입 개발하기
- 가장 중요한 화면 설계하기
+ 클라이언트 화면 Mockup 구체화 하기
+ NodeJs에서 처리 할 RESTful API 설계하기
+ MongoDB 에 저장 할 Document Schema 설계하기
- MongoDB Store 개발 및 테스트
+ Dynamic Schema, Embedded vs Reference 에 대한 이해
+ Mongoose 기반으로 Schema 만들기
+ Test Framework 이용한 Model 단위 테스트하기
- Node.js 기반 RESTful API 개발 및 테스트
+ RESTful API 코드 뼈대 만들기 in NodeJS
+ Test Framework 이용한 서비스 단위 테스트하기
+ RESTful Client 테스트 도구 또는 curl 로 호출 테스트하기
- Angular.js 기반 화면 개발 및 테스트
+ AngularJS와 Bootstrap 이용하여 화면 구성하기
+ AngularJS 애플리케이션 구조 개발 및 RESTful API 서비스 개발
+ Test Framework 이용한 화면 단위 테스트하기
- Heroku 같은 PaaS에 올려서 통합 테스트 하기
Sprint-3) 서비스 개발 반복하기
- 반복하기
+ sprint-01에서 반복하였던 과정을 지속하기
- 메인 및 로그인 화면 만들기
+ Bootstrap의 다양한 도구 활용
+ OAuth 기능 로그인 하기
- 채팅기능 만들기
+ 채팅 Mockup 만들기
+ NodeJS Socket.io API 구현
+ MongoDB 채팅 Schema 설계
+ AngularJS Socket.io 멀티 케스팅 구현
+ Bootstrap 통한 화면 구현 및 AngularJS 연동
- Heroku 같은 PaaS에 올려서 프로토타입 테스트 하기
Sprint-3) 서비스 런칭하기
- 서비스 일일 빌드시스템 구성하기
+ Travis (또는 Jenkins)기반 자동 배포 기능 만들기
+ Travis 에서 빌드된 것을 클라우드시스템(PaaS) 자동 배포하기
- 런칭 페이지 만들기
+ GitHub Pages를 이용한 런칭 만드는 방법
+ Bootstrap을 이용하여 런칭 페이지만들어 GitHub에 반영하기
- 모니터링 하기
+ 클라이언트 AngularJS Log 모니터링 하기
+ NodeJS Log 모니터링 하기
+ MEAN Stack 운영 및 장애 모니터링 전략
Next Project) MEAN Stack Advanced
- 채팅기능 고도화하기
+ SNS 서비스 아키텍쳐들 알아보기
+ 대용량 데이터를 처리를 위한 아키텍쳐 설계하기
- NodeJS + Redis + MongoDB 연동하기
+ Redis 알아보기
+ NodeJS-Redis 연동하기
- 정제된 데이터 RDBMS와 연동하기
+ NodeJS - MySQL 연동하기
+ MongoDB의 MapReduce를 이용하여 데이터 마이닝하기
+ NodeJS에서 MongoDB 마이닝 데이터 MySQL에 넣기
- SNS 서비스 운영 고도화
+ NodeJS와 Nginx 연동하기
+ NodeJS를 Proxy 서버로 만들어 Clustering 하기
+ MongoDB Sharding 구조 만들기
+ Redis Master/Slave구조 만들기
- 유지보수 전략
+ 테스트 환경과 프로덕션 환경의 재구성
+ NodeJS Scale-out 확장 전략
+ MongoDB Sharding 및 Data Backup 전략
+ Redis Scale-out 전략
- 빅데이터의 활용
+ 개인화를 위한 데이터 활용 방안
+ MongoDB Integration Framework을 이용한 MapReducing
전체 서비스를 만들고 런칭하기까지 참 많은 것들을 익히고 개발해야 하지만, 누군가에게 의미있는 가치를 줄 수 있는 SNS(Social Network Service)를 할 수 있다는 것에 만족을 느낀다.
'AngularJS > Start MEAN Stack' 카테고리의 다른 글
[MEAN Stack] Community 서비스 (0) | 2014.01.02 |
---|---|
[MEAN Stack] UX를 간편하게 구현하자 (0) | 2013.12.15 |
[MEAN Stack] Angular.js 개요 (3) | 2013.12.05 |
[MEAN Stack] 스타트업을 위한 서비스개발 기술 스택 (0) | 2013.11.20 |
[MEAN Stack] MongoDB, Express.js, Angular.js, Node.js Stack (0) | 2013.09.04 |