SlideShare a Scribd company logo
1 of 25
Download to read offline
Meteor Korea DEV School 2nd day 
특별한 Meteor 의 디렉토리
발표자 소개 
- 박승현 
- ppillip@gmail.com 
- http://digveloper.ppillip.com
특별한 Meteor 의 디렉토리 
1. 프로젝트 생성 
2. 폴더구조 
3. 로딩 
4. 추천하는 폴더구조
특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 
1. 설치합니다. 
- 서버로 부터 화일들을 다운로드 받아 설치 됩니다. 
- 우리는 따로 node 나 mongodb 를 설치 하지 않습니다.
특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 
2. 프로젝트를 생성합니다. 
- 프로젝트명(myProject)의 폴더가 자동생성됩니다. 
- 생성후 간단한 안내 메세지가 표시됩니다.
특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 
3. 프로젝트 폴더로 이동후 실행합니다.
특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 
4. 브라우저로 접속해봅니다 - http://localhost:3000/
특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 
5. 몽고디비에도 접속해봅니다.
특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 
5. 몽고디비에도 접속해봅니다. (robomongo)
특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 
5. 몽고디비에도 접속해봅니다. (robomongo)
특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 
5. 몽고디비에도 접속해봅니다.
특별한 Meteor 의 디렉토리 
1. 프로젝트 생성 
2. 폴더구조 
3. 로딩 
4. 추천하는 폴더구조
특별한 Meteor 의 디렉토리 – 2. 폴더구조 
1. 기본 폴더 및 화일은 그림과 같습니다.
특별한 Meteor 의 디렉토리 – 2. 폴더구조 
2. 다음과 같이 폴더를 생성합니다. 
- client(브라우저) 상에서 구동될 소스가 위치할 곳입니다. 
미티어가 오로지 클라이언트 소스로 인식합니다 
- html , css , javascript 화일들이 위치합니다. 
- if (Meteor.isClient) { ... } 과 같이 동작합니다.
특별한 Meteor 의 디렉토리 – 2. 폴더구조 
2. 다음과 같이 폴더를 생성합니다. 
- 클라이언트와 서버쪽 모두 동작할 화일들을 위치합니다. 
예) 각종 유틸, collection 정의된 화일, 공통 method 들 
** model 이란 폴더는 임의로 정한 폴더임 
Meteor.isClient 와 Meteor.isServer 모두 사용가능함
특별한 Meteor 의 디렉토리 – 2. 폴더구조 
2. 다음과 같이 폴더를 생성합니다. 
- 서버쪽에서만 사용될 리소스들을 넣어 둘수 있습니다. 
- Assets API 를 통해서 접근 할수 있습니다.
특별한 Meteor 의 디렉토리 – 2. 폴더구조 
2. 다음과 같이 폴더를 생성합니다. 
- public 폴더는 url 에서 “/” 로 서비스 합니다. 
- favicon.ico, robots.txt 화일들을 저장하기에 적합합니다. 
- meteor 이전에 client 사이드 화일을 재활용할수 있습니다. 
예) rest 처리하던 jQuery 사이트 , angularjs 사이트
특별한 Meteor 의 디렉토리 – 2. 폴더구조 
2. 다음과 같이 폴더를 생성합니다. 
- server 측 프로그램들이 위치합니다 
- publish 가 선언된 서버측 화일을 위치합니다. 
- 서버측 mehod 가 구현된 파일을 저장합니다. 
- if (Meteor.isServer) { ... } 과 같이 동작합니다.
특별한 Meteor 의 디렉토리 
1. 프로젝트 생성 
2. 폴더구조 
3. 로딩 
4. 추천하는 폴더구조
특별한 Meteor 의 디렉토리 - 로딩 
- 개발시에 순서에 민감한 코드들은 packages 폴더를 
이용하거나 Meteor.startup(서버,클라이언트 모두)를 
사용하여 코드를 작성할 것을 추천합니다. 
그러면 meteor 가 의존성 및 민감성을 관리 해줍니다 :) 
- grunt.js 같은 의존성 관리를 app 개발자가 직접 하지 않습니다. :) 
- 부득이하게 로딩 순서가 중요할 경우에만 참조합니다.:) 
(그런경우가 거의 없음!) 
(다음)
특별한 Meteor 의 디렉토리 - 로딩 
1. 하위 디렉토리의 파일을 먼저 로딩합니다. (루트는 마지막) 
2. 같은 위치의 파일과 폴더는 alphabetical order 를 따릅니다. 
3. alphabetical order 로딩후에 lib 디렉토리를 로딩합니다. 
4. main.* 화일은 제일 마지막에 로딩됩니다. 
** 일반적인 경우는 1~4까지를 고민할 일이 없습니다. 
# 결론 : “미티어는 빌드 할때 나름 rule 을 가지고 있구나” 를 알게 되었다 !
특별한 Meteor 의 디렉토리 
1. 프로젝트 생성 
2. 폴더구조 
3. 로딩 
4. 추천하는 폴더구조
특별한 Meteor 의 디렉토리 - 추천하는 폴더구조 
1. 루트레벨폴더 
customer/lib/ # 사용자 관련 
customer/client/ 
customer/server/ 
posts/lib/ # 포스트 관련 
posts/client/ 
posts/server/ 
2. 폴더안에 서버 클라이언트 구분 
lib/customer/ 
lib/posts/ 
client/customer/ 
client/posts/ 
server/customer/ 
server/posts/ 
3. 패키지로 관리 하기 
# 결론 # 
미티어는 프로젝트 중간에 
파일명, 폴더명 변경가능 
자신에 맞는 폴더로 
추후에 정리 가능 :)
특별한 Meteor 의 디렉토리 - 추천하는 폴더구조 
4. 저요? 
/server – method.js , method4angular.js , router.js , publish.js 
/client – 매뉴별로 폴더를 정하고 폴더안에 a.html,a.js 로 한쌍씩 넣었습니다. 
/public – angularjs 소스 파일 (meteor 로 넘어 바꾸기전 소스들) 
/model - 기본 collection api만을 사용한 코드. asser.js , schema.js , util.js 등등
- 질 문 
- 실 습

More Related Content

What's hot

막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)연웅 조
 
Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자용진 조
 
Jekyll and GitHub Pages
Jekyll and GitHub PagesJekyll and GitHub Pages
Jekyll and GitHub PagesYoungbin Han
 
Github pages - 1분만에 개인 홈페이지 배포하기
Github pages - 1분만에 개인 홈페이지 배포하기Github pages - 1분만에 개인 홈페이지 배포하기
Github pages - 1분만에 개인 홈페이지 배포하기Jessica Lee
 
루비온레일즈 API 서버 - 3) api 서버 CRUD
루비온레일즈 API 서버 - 3) api 서버 CRUD루비온레일즈 API 서버 - 3) api 서버 CRUD
루비온레일즈 API 서버 - 3) api 서버 CRUDJunghyun Park
 
피들러 신명대
피들러 신명대피들러 신명대
피들러 신명대ETRIBE_STG
 
막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js연웅 조
 
Servlet Architecture
Servlet ArchitectureServlet Architecture
Servlet ArchitectureJU Chae
 
[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화KyeongWon Koo
 
Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Circulus
 
웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해2minchul
 
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼Cheol Kang
 
자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)Yu Yongwoo
 
[141] react everywhere
[141] react everywhere[141] react everywhere
[141] react everywhereNAVER D2
 
Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)TaekSoon Jang
 

What's hot (20)

막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)
 
Nodejs4
Nodejs4Nodejs4
Nodejs4
 
Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자
 
Jekyll and GitHub Pages
Jekyll and GitHub PagesJekyll and GitHub Pages
Jekyll and GitHub Pages
 
Github pages - 1분만에 개인 홈페이지 배포하기
Github pages - 1분만에 개인 홈페이지 배포하기Github pages - 1분만에 개인 홈페이지 배포하기
Github pages - 1분만에 개인 홈페이지 배포하기
 
루비온레일즈 API 서버 - 3) api 서버 CRUD
루비온레일즈 API 서버 - 3) api 서버 CRUD루비온레일즈 API 서버 - 3) api 서버 CRUD
루비온레일즈 API 서버 - 3) api 서버 CRUD
 
피들러 신명대
피들러 신명대피들러 신명대
피들러 신명대
 
막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js
 
Servlet Architecture
Servlet ArchitectureServlet Architecture
Servlet Architecture
 
[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화
 
Node.js intro
Node.js introNode.js intro
Node.js intro
 
6.accounts
6.accounts6.accounts
6.accounts
 
Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초
 
웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해
 
Python module
Python modulePython module
Python module
 
Nest js 101
Nest js 101Nest js 101
Nest js 101
 
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
 
자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)
 
[141] react everywhere
[141] react everywhere[141] react everywhere
[141] react everywhere
 
Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)
 

Similar to 1. 미티어의 폴더구조

Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기KwangSeob Jeong
 
도커 이미지 레이어 구조
도커 이미지 레이어 구조도커 이미지 레이어 구조
도커 이미지 레이어 구조choi sungwook
 
안드로이드Jni 사용설치
안드로이드Jni 사용설치안드로이드Jni 사용설치
안드로이드Jni 사용설치Byungsun Lee
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기Ted Won
 
Spring di chapter2
Spring di chapter2Spring di chapter2
Spring di chapter2흥래 김
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드수정 김
 
Unity Auto Build iOS
Unity Auto Build iOSUnity Auto Build iOS
Unity Auto Build iOSGiseok Lee
 
몽고디비교육1일차
몽고디비교육1일차몽고디비교육1일차
몽고디비교육1일차seung-hyun Park
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1Ji-Woong Choi
 
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기Myungjin Lee
 
Realm 코딩카페 - 이종찬
Realm   코딩카페 - 이종찬Realm   코딩카페 - 이종찬
Realm 코딩카페 - 이종찬Lee-Jong-Chan
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTHosang Jeon
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTLOGISPOT
 
리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호ETRIBE_STG
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드chandler0201
 
우아한테크세미나-우아한멀티모듈
우아한테크세미나-우아한멀티모듈우아한테크세미나-우아한멀티모듈
우아한테크세미나-우아한멀티모듈용근 권
 
Custom Xcode Template (with VIPER)
Custom Xcode Template (with VIPER)Custom Xcode Template (with VIPER)
Custom Xcode Template (with VIPER)Bongwon Lee
 

Similar to 1. 미티어의 폴더구조 (20)

Ffmpeg for android
Ffmpeg for androidFfmpeg for android
Ffmpeg for android
 
Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기
 
도커 이미지 레이어 구조
도커 이미지 레이어 구조도커 이미지 레이어 구조
도커 이미지 레이어 구조
 
안드로이드Jni 사용설치
안드로이드Jni 사용설치안드로이드Jni 사용설치
안드로이드Jni 사용설치
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
 
Spring di chapter2
Spring di chapter2Spring di chapter2
Spring di chapter2
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
 
Unity Auto Build iOS
Unity Auto Build iOSUnity Auto Build iOS
Unity Auto Build iOS
 
System+os study 4
System+os study 4System+os study 4
System+os study 4
 
몽고디비교육1일차
몽고디비교육1일차몽고디비교육1일차
몽고디비교육1일차
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
 
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
 
TurboRepo
TurboRepoTurboRepo
TurboRepo
 
Realm 코딩카페 - 이종찬
Realm   코딩카페 - 이종찬Realm   코딩카페 - 이종찬
Realm 코딩카페 - 이종찬
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOT
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOT
 
리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드
 
우아한테크세미나-우아한멀티모듈
우아한테크세미나-우아한멀티모듈우아한테크세미나-우아한멀티모듈
우아한테크세미나-우아한멀티모듈
 
Custom Xcode Template (with VIPER)
Custom Xcode Template (with VIPER)Custom Xcode Template (with VIPER)
Custom Xcode Template (with VIPER)
 

Recently uploaded

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 

Recently uploaded (6)

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 

1. 미티어의 폴더구조

  • 1. Meteor Korea DEV School 2nd day 특별한 Meteor 의 디렉토리
  • 2. 발표자 소개 - 박승현 - ppillip@gmail.com - http://digveloper.ppillip.com
  • 3. 특별한 Meteor 의 디렉토리 1. 프로젝트 생성 2. 폴더구조 3. 로딩 4. 추천하는 폴더구조
  • 4. 특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 1. 설치합니다. - 서버로 부터 화일들을 다운로드 받아 설치 됩니다. - 우리는 따로 node 나 mongodb 를 설치 하지 않습니다.
  • 5. 특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 2. 프로젝트를 생성합니다. - 프로젝트명(myProject)의 폴더가 자동생성됩니다. - 생성후 간단한 안내 메세지가 표시됩니다.
  • 6. 특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 3. 프로젝트 폴더로 이동후 실행합니다.
  • 7. 특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 4. 브라우저로 접속해봅니다 - http://localhost:3000/
  • 8. 특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 5. 몽고디비에도 접속해봅니다.
  • 9. 특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 5. 몽고디비에도 접속해봅니다. (robomongo)
  • 10. 특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 5. 몽고디비에도 접속해봅니다. (robomongo)
  • 11. 특별한 Meteor 의 디렉토리 – 1. 프로젝트 생성 5. 몽고디비에도 접속해봅니다.
  • 12. 특별한 Meteor 의 디렉토리 1. 프로젝트 생성 2. 폴더구조 3. 로딩 4. 추천하는 폴더구조
  • 13. 특별한 Meteor 의 디렉토리 – 2. 폴더구조 1. 기본 폴더 및 화일은 그림과 같습니다.
  • 14. 특별한 Meteor 의 디렉토리 – 2. 폴더구조 2. 다음과 같이 폴더를 생성합니다. - client(브라우저) 상에서 구동될 소스가 위치할 곳입니다. 미티어가 오로지 클라이언트 소스로 인식합니다 - html , css , javascript 화일들이 위치합니다. - if (Meteor.isClient) { ... } 과 같이 동작합니다.
  • 15. 특별한 Meteor 의 디렉토리 – 2. 폴더구조 2. 다음과 같이 폴더를 생성합니다. - 클라이언트와 서버쪽 모두 동작할 화일들을 위치합니다. 예) 각종 유틸, collection 정의된 화일, 공통 method 들 ** model 이란 폴더는 임의로 정한 폴더임 Meteor.isClient 와 Meteor.isServer 모두 사용가능함
  • 16. 특별한 Meteor 의 디렉토리 – 2. 폴더구조 2. 다음과 같이 폴더를 생성합니다. - 서버쪽에서만 사용될 리소스들을 넣어 둘수 있습니다. - Assets API 를 통해서 접근 할수 있습니다.
  • 17. 특별한 Meteor 의 디렉토리 – 2. 폴더구조 2. 다음과 같이 폴더를 생성합니다. - public 폴더는 url 에서 “/” 로 서비스 합니다. - favicon.ico, robots.txt 화일들을 저장하기에 적합합니다. - meteor 이전에 client 사이드 화일을 재활용할수 있습니다. 예) rest 처리하던 jQuery 사이트 , angularjs 사이트
  • 18. 특별한 Meteor 의 디렉토리 – 2. 폴더구조 2. 다음과 같이 폴더를 생성합니다. - server 측 프로그램들이 위치합니다 - publish 가 선언된 서버측 화일을 위치합니다. - 서버측 mehod 가 구현된 파일을 저장합니다. - if (Meteor.isServer) { ... } 과 같이 동작합니다.
  • 19. 특별한 Meteor 의 디렉토리 1. 프로젝트 생성 2. 폴더구조 3. 로딩 4. 추천하는 폴더구조
  • 20. 특별한 Meteor 의 디렉토리 - 로딩 - 개발시에 순서에 민감한 코드들은 packages 폴더를 이용하거나 Meteor.startup(서버,클라이언트 모두)를 사용하여 코드를 작성할 것을 추천합니다. 그러면 meteor 가 의존성 및 민감성을 관리 해줍니다 :) - grunt.js 같은 의존성 관리를 app 개발자가 직접 하지 않습니다. :) - 부득이하게 로딩 순서가 중요할 경우에만 참조합니다.:) (그런경우가 거의 없음!) (다음)
  • 21. 특별한 Meteor 의 디렉토리 - 로딩 1. 하위 디렉토리의 파일을 먼저 로딩합니다. (루트는 마지막) 2. 같은 위치의 파일과 폴더는 alphabetical order 를 따릅니다. 3. alphabetical order 로딩후에 lib 디렉토리를 로딩합니다. 4. main.* 화일은 제일 마지막에 로딩됩니다. ** 일반적인 경우는 1~4까지를 고민할 일이 없습니다. # 결론 : “미티어는 빌드 할때 나름 rule 을 가지고 있구나” 를 알게 되었다 !
  • 22. 특별한 Meteor 의 디렉토리 1. 프로젝트 생성 2. 폴더구조 3. 로딩 4. 추천하는 폴더구조
  • 23. 특별한 Meteor 의 디렉토리 - 추천하는 폴더구조 1. 루트레벨폴더 customer/lib/ # 사용자 관련 customer/client/ customer/server/ posts/lib/ # 포스트 관련 posts/client/ posts/server/ 2. 폴더안에 서버 클라이언트 구분 lib/customer/ lib/posts/ client/customer/ client/posts/ server/customer/ server/posts/ 3. 패키지로 관리 하기 # 결론 # 미티어는 프로젝트 중간에 파일명, 폴더명 변경가능 자신에 맞는 폴더로 추후에 정리 가능 :)
  • 24. 특별한 Meteor 의 디렉토리 - 추천하는 폴더구조 4. 저요? /server – method.js , method4angular.js , router.js , publish.js /client – 매뉴별로 폴더를 정하고 폴더안에 a.html,a.js 로 한쌍씩 넣었습니다. /public – angularjs 소스 파일 (meteor 로 넘어 바꾸기전 소스들) /model - 기본 collection api만을 사용한 코드. asser.js , schema.js , util.js 등등
  • 25. - 질 문 - 실 습