모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 게시물ID : humorbest_1089729
    작성자 : 멋쟁이슈도
    추천 : 36
    조회수 : 4671
    IP : 220.117.***.253
    댓글 : 10개
    베스트 등록시간 : 2015/07/04 17:14:34
    원글작성시간 : 2015/07/02 20:27:45
    http://todayhumor.com/?humorbest_1089729 모바일
    Node.js, Mongodb, Socket.io를 이용한 채팅 구현하기
    옵션
    • 본인삭제금지
    <div>안녕하세요. </div> <div>컴퓨터 공학부 3학년 대학생입니다.</div> <div>전역 후 복학하기 전에 뭘 할까 하다가</div> <div>집에서 굴러다니는 저사양 컴퓨터로 웹서버 구현 후 채팅 프로그램을 만들어 보자 하고 </div> <div>무작정 시작하게 되었습니다.</div> <div>맨땅에 해딩이지만, 우리에겐 naver가 있기 때문에 맨땅에 서칭!</div> <div>서칭 서칭을 통해서 채팅처럼 실시간 통신에는 APM 보다는 <strong>MEAN(MongoDB, Express.js, AngularJS , Node.js)</strong>을 </div> <div>사용하는게 좋다는걸 보고 해본적 없는 MongoDB, Node.js를 시작했습니다.</div> <div>사실 예제를 보고 그대로 따라하면 되지만, 2주간 구글링을 하면서 당했던 맨붕과 </div> <div>추후에 저처럼 채팅 예제를 Node.js와 MongoDB로 해보고 싶은 사람들을 위해 기록을 남깁니다.</div> <div>사실 이 예제에는 Express.js와 AngularJS가 필요없기 때문에 하진 않았지만, 해야 될텐데 배울만 한데 있을까요???</div> <div> </div> <div><strong><font color="#c00000">(저는 윈도우7-64비트에서 개발을 했습니다. 추후 리눅스에서 하게 되면 다시 글을 올리겠습니다.)</font></strong></div> <div><strong><font color="#c00000"></font></strong> </div> <div><strong>1. 개발 환경 구축.</strong></div> <div>- 여기서 제가 2주간 맨붕을 당했습니다 ㅠㅠ</div> <div>   1) Node.js 및 MongoDB 설치</div> <div>      - <a target="_blank" href="http://www.Nodejs.org" target="_blank">www.Nodejs.org</a> / <a target="_blank" href="http://www.mognodb.org" target="_blank">www.mognodb.org</a> 에서 각각 자기 PC사양에 맞게 다운받으면 됩니다.</div> <div>      - 다운 받은 후 설치하면 됩니다. (사실 잘 모르니 Next 해서 넘겨서 설치하면 됩니다. 경로 설정은 Custom을 통해서 하면 됩니다.)</div> <div>   2) MongoDB를 서비스에 등록하기.</div> <div>      - MongoDB의 Bin폴더를 Path에 등록해도 되지만, 그렇게 하기보다는 작업관리자 창에 서비스에 Demon처럼 돌아가게 했습니다.</div> <div>      - 첫번째로 프로젝트를 만들고 싶은 곳에 폴더를 생성 후 이름을 넣습니다. (저는 D:\에 chat이라는 폴더를 만들었습니다.)</div> <div>      - 프로젝트 폴더 안에 DB전용 폴더를 생성합니다. (저는 D:\chat\에 MongoDB 폴더 생성) </div> <div>      - 메모장을 키고 그 폴더 안에 mongod.cfg라는 파일을 다른이름으로 저장합니다. 안에는 Log파일 Path와 DB의 Path 경로를 저장 할 수 있습니다.</div> <div>      - mongod.cfg에 저는 MongoDB 폴더 안에 log 폴더 생성 후 mongod.log가 저장되고 디비 저장 경로를 설정해 줬습니다.</div> <div>                              logpath=d:\chat\MongoDB\log\mongod.log</div> <div>                              dbpath=d:\chat\MongoDB\db</div> <div>         다음과 같이 mongod.cfg에 입력하고 저장하게 되면 log파일과 db가 저장될 경로가 지정됬습니다.</div> <div>      - 이제 cmd창을 키고 아레와 같이 입력하면 서비스에 등록이 됩니다.</div><pre style="border-top-style:none;overflow:auto;white-space:pre;border-bottom-style:none;text-transform:none;word-spacing:0px;color:rgb(34,34,34);padding-bottom:24px;padding-top:24px;font:14px/24px 'Source Code Pro', monospace;border-right-style:none;padding-left:12px;margin:24px 0px;border-left:rgb(73,71,71) 5px solid;display:block;letter-spacing:normal;padding-right:12px;text-indent:0px;"><span class="s2" style="color:rgb(64,112,160);">"C:\Mongodb\bin\mongod.exe"</span> <span class="p">-</span><span class="n">-config</span> <span class="s2" style="color:rgb(64,112,160);">"D:\chat\MongoDB\mongod.cfg"</span> <span class="p">-</span><span class="n">-install</span></pre> <div>        (여기서 Mongod의 경로를 지정 해 주고, 프로젝트 안의 Mongod.cfg 경로를 지정해 줘서 서비스를 등록합니다.)</div> <div> </div> <div>     - 서비스에 등록후 cmd창에서 아래와 같이 입력하면 서비스가 시작되면서 컴퓨터에서 MongoDB가 데몬처럼 돌아갑니다.</div><pre style="border-top-style:none;overflow:auto;white-space:pre;border-bottom-style:none;text-transform:none;word-spacing:0px;color:rgb(34,34,34);padding-bottom:24px;padding-top:24px;font:14px/24px 'Source Code Pro', monospace;border-right-style:none;padding-left:12px;margin:24px 0px;border-left:rgb(73,71,71) 5px solid;display:block;letter-spacing:normal;padding-right:12px;text-indent:0px;"><span class="n">net</span> <span class="n">stop</span> <span class="n">MongoDB</span></pre> <div>     - 그 후 cmd에서 mongo라고 입력하면 바로 MongoDB가 실행됩니다. (dbpath를 따로 입력 할 필요가 없음.)</div> <div> </div> <div>   3) git 설치 후 Node.js 세팅.</div> <div>     - git을 설치해줍니다. git을 설치 하는 이유는 저도 잘 모르지만, 지금 업데이트 된 버전의 Socket.io가 문제가 있기 때문에</div> <div>       그냥 npm install socket.io로 설치하게 되면 오류가 납니다. 따라서 npm install automattic/socket.io로 설치를 해야 되는데, </div> <div>       그냥 cmd 창에서 하면 오류가 납니다. 그래서 git을 설치하면 따로 console창이 cmd처럼 뜨는데 여기서 Node.js를 구동하면 됩니다.</div> <div>       (git을 사용하는 이유를 자세히 좀 알려주세요 ㅠㅠ)</div> <div>     - 프로젝트 폴다 안에 메모장을 킨 후 package.json으로 다른이름 저장! (저의 경우 D:\chat\)</div> <div> </div> <div>{<br>  "name": "chat-test",<br>  "version": "0.0.0",<br>  "private": true,<br>  "scripts": {<br>    "start": "node ./bin/www"<br>  },<br>  "dependencies": {<br>    "body-parser": "~1.12.4",<br>    "cookie-parser": "~1.3.5",<br>    "debug": "~2.2.0",<br>    "ejs": "~2.3.1",<br>    "express": "~4.12.4",<br>    "mongodb": "^2.0.35",<br>    "mongojs": "^1.0.1",<br>    "morgan": "~1.5.3",<br>    "serve-favicon": "~2.2.1",<br>    "socket.io": "automattic/socket.io"<br>  }<br>}<br>       요로콤 저장 해주면 됩니다. 이게 뭐냐면 페키지라고 해서 나중에 이것만 들고 다른 컴퓨터에 가면 일일히 npm install *** 할 필요 없이</div> <div>       npm install 이렇게만 입력해 주면 페키지 안의 파일들이 자동적으로 설치됩니다. 그리고 만약 node_modules이 업데이트가 됬다면</div> <div>       별도로 재설치 할 필요 없이 페키지 안에서 버전만 업데이트 시켜 준 후 npm update를 해주면 자동으로 업데이트 됩니다. </div> <div>       <strong>즉 페키지만 관리해주면 됨으로 좋음.</strong></div> <div><strong></strong> </div> <div>       - 여튼 이렇게 만들고 package.json을 저장하고 git화면에서 npm install 을 입력하게 되면 뾰로롱~ 이번 예제에서 필요한 모듈이 자동으로 설치</div> <div>         됩니다.</div> <div> </div> <div>       - 개발환경 구축 끝!! </div> <div> </div> <div><strong>2. 예제 작성! </strong></div> <div>      1) 유투브에 예제를 따라서 하면 됩니다.</div> <div>         - <a target="_blank" href="https://www.youtube.com/playlist?list=PLfdtiltiRHWHZh8C2G0xNRbcf0uyYzzK" target="_blank">https://www.youtube.com/playlist?list=PLfdtiltiRHWHZh8C2G0xNRbcf0uyYzzK</a>_ <- 유투브 경로에요.</div> <div> </div> <div><strong>3. 완성!</strong></div> <div style="text-align:left;"><img class="chimg_photo" style="border-top:medium none;border-right:medium none;border-bottom:medium none;border-left:medium none;" alt="서버 정상작동.png" src="http://thimg.todayhumor.co.kr/upfile/201507/1435836445d6rfe1KctqDLCh1jqddcgTbVOH.png" width="800" height="867"></div> <div style="text-align:left;"><img class="chimg_photo" style="border-top:medium none;border-right:medium none;border-bottom:medium none;border-left:medium none;" alt="연결.png" src="http://thimg.todayhumor.co.kr/upfile/201507/1435836445BRQChzMolwEEwvjKIPZZhhmobo.png" width="800" height="450"></div> <div style="text-align:left;"><img style="border-top:medium none;border-right:medium none;border-bottom:medium none;border-left:medium none;" alt="DB저장.png" src="http://thimg.todayhumor.co.kr/upfile/201507/1435836444SfZyxbDBTSpPLsa.png" width="677" height="442"></div>
    출처 여러 예제와 도움과 구글링을 통해 직접 만듦.
    1 채팅 예제 : 유투브 예제(https://www.youtube.com/playlist?list=PLfdtiltiRHWHZh8C2G0xNRbcf0uyYzzK_)

    이 게시물을 추천한 분들의 목록입니다.
    [1] 2015/07/02 20:33:26  113.30.***.8  샅바뚱띠  632681
    [2] 2015/07/02 21:11:16  112.171.***.226  유테디어  607183
    [3] 2015/07/02 23:06:05  39.125.***.43  snoopycode  520587
    [4] 2015/07/03 01:03:14  210.114.***.21  프로그래머  53975
    [5] 2015/07/03 04:23:06  183.101.***.60  파랑나비  101056
    [6] 2015/07/03 04:31:57  61.77.***.168  ♔♕♖♗♘♙  530879
    [7] 2015/07/03 08:44:06  59.6.***.11  하윤아빠  90971
    [8] 2015/07/03 11:26:27  68.100.***.150  섹시스님  114419
    [9] 2015/07/04 15:47:48  124.217.***.19  thebar.kr  115126
    [10] 2015/07/04 17:14:34  210.180.***.43  사닥호  425608
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.


    현재 게시판의 베스트게시물입니다.  
    번호 제 목 이름 날짜 조회 추천
    1113341
    중국에서는 프로그래머들의 사기진작을 위해 치어리더를 고용... [55] 펌글 가르마탄루피 15/08/27 10:53 14428 62
    1112397
    컴공과의 모험 [3] 펌글 null값 15/08/24 23:45 6788 24
    1111877
    오래된 SI업체의 두 부류 [12] enoeht 15/08/23 18:56 8005 50
    1110385
    뻘글주의 - 갓 취업한 사람들을 위한 오늘의 조언 [10] 구차니 15/08/20 12:06 5057 26
    1107834
    소스코드에서 본 최고의 코멘트들.txt [14] nipa0711 15/08/14 18:05 7118 38
    1107505
    [저격] 일단 JAVA좀 배우지 마세요! [46] 하까요 15/08/13 20:34 12630 49
    1104183
    친구들끼리 대회나가보니 개발이 얼마나 어려운지도 알았고 얼마나 [7] 크짱맨 15/08/05 23:16 5460 21
    1102924
    어셈블리용 IDE 개발을 시작합니다. [22] 중용자 15/08/02 23:05 2985 37
    1102342
    오퍼 받았습니다!! [23] MioLiquid 15/08/01 15:26 3742 18
    1101812
    프게님들, 제 코드 좀 봐주세요. [17] 취중코딩 15/07/31 02:44 3801 34
    1100709
    고급 개발자로 가기위해 반드시 봐야할 책들 [70] 나이쓰한넘 15/07/28 10:40 7737 114
    1099619
    취직했습니다!!!!!! [20] 매애애 15/07/25 22:19 4373 32
    1099571
    구현된 에뮬레이터 화면과 정상 출력되는 게임들 [16] 중용자 15/07/25 19:56 5673 33
    1093515
    광희 프로그래머설 [14] 펌글 이똑똑 15/07/12 19:45 7094 16
    1093054
    뻘글] 몇날며칠을 고생한 메모리 누수를 잡았습니다! [21] 물어라이코스 15/07/11 20:16 5613 45
    1092687
    [푸념]저는 프로그래머이고 개발이 즐거웠습니다. [27] 창작글 훼초코보 15/07/10 22:41 5637 45
    1092025
    그림판으로 코딩하기.gif [21] 사닥호 15/07/09 16:35 7632 31
    1091865
    어셈블리 최적화 [18] 중용자 15/07/09 10:01 4056 25
    1091503
    향후 FASM 라이브러리를 배포할 생각입니다. [12] 중용자 15/07/08 15:33 2235 31
    Node.js, Mongodb, Socket.io를 이용한 채팅 구현하기 [10] 본인삭제금지 멋쟁이슈도 15/07/04 17:14 4671 36
    1088950
    내가 지금 노는 건가, 일을 하는 건가. TIS-100 [11] BePositive 15/07/02 20:37 7120 55
    1088025
    [뻘글]문서화의 중요성 [21] 방울터메이도 15/06/30 19:30 4136 44
    1088019
    개발시 쓸만한 유틸들.. [23] 창작글 해싱 15/06/30 19:22 5057 60
    1085640
    새벽중에 과제에 현상금 걸었다가 글삭튀하신분~ [109] 반복문 15/06/25 17:31 7022 134
    1084709
    sudo [18] 펌글 REGENTAG 15/06/23 22:34 3896 32
    1084386
    졸업 후 1년 반... 취업 성공했어요 >.< [18] 나데시코♥ 15/06/23 10:00 5179 35
    1079757
    프로그램이나 컴퓨터는 쉬운게 아닙니다. [15] 구차니 15/06/14 20:40 5951 53
    1079597
    프로그램 배포 - 움짤 제작기 SmallCam [26] 옥시기 15/06/14 14:59 5552 101
    [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [다음10개▶]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈