SlideShare une entreprise Scribd logo
1  sur  41
VisualPrinting & Mediclip 개선안
IT 임익환
목차
문제점 및 개선 방법
1. 로그인
2. 보안 약점
3. 서버 구조
4. Sample 파일
5. 파일 구조 문제점
6. 신규 생성 방식 개선(Medip)
7. List 페이지
8. 서버 구동 명령어
9. 예정 계획
로그인
목차
1. 기존 로그인 문제
2. 문제점 자료화면
3. 개선 자료화면
로그인 문제
 무작위 아이디와 비번을 입력하여도
로그인이 성공하는 문제 존재 (기존)
- 로그인이 성공하면 새로운 회원 폴더를 생성해 버림(수정 시급)
 라이선스 서버 api의 인증을 거치도록 수정 완료 (현재)
- 서버 세션에 로그인 정보 저장
문제점 자료
무작위 입력해도
로그인 성공
개선 완료된 모습
1. 아디 비번 확인
2. 예외 처리 완료
3. 세션 기능 추가
보안 약점
목차
1. 보안 취약점 (url parameter)
2. 개선 방향
3. 개선 시 side effect 해결 방법
기존 url 문제점
1. 주소에 회원 아이디 노출
- url의 parameter 통한 데이터 조회 방식
2. 다른 회원 아이디 입력시 진입가능
- 개인 의료 데이터 노출 위험
url 문제 수정
변경 방식
1. 데이터 조회 방식 변경
- 기존 방식 : url parameter 활용
- 신(新)방식 : 서버 메모리에 세션으로 아이디 값을
저장, 세션 값을 통해 데이터 조회
문제점
Visual Printing의 목적 : 환자와 자료 링크 공유
개선하면 문제 : url parameter를 없애서 바로 진입
불가능 -> 취지에 맞지 않음
기존 방식 문제 : 주소창에 아이디만 바꾸면 다른 회원
자료 접속 가능
해결방법
1. url parameter를 사용한다.
2. url의 개인정보 부분을 암호화한다.
3. 조회 할 때에는 복호화 하여 조회한다.
서버 구조문제
목차
1. 현재 서버 구조
2. 구조의 문제점
3. 개선 방향
현재 구조 – 두 개의 백엔드 (큰 문제 없는 것처럼 보임)
View 서버 파일 서버
View만 담당 파일 저장처리만
담당
구조 문제점
View 서버 파일 서버
1. 요청
2. View 서버 폴더에
파일 저장
 A가 요청을 B로 보내면
요청 받은 B는 파일을
A에 저장함
2. 파일 불러오기
(view 서버 파일을 불러옴)
3. 파일 요청 / 전송
0. html 파일 안의
Js 에서 모든 요청
html 파일을
render
A B
단일서버 MVC 패턴으로 개선
단방향 데이터
파일처리
단일 서버
 불필요한 과정을 없애고,
하나의 서버 내에서 처리
 대신 로직 분리를 위해
MVC 패턴 적용 필요
MVC패턴
결론
현재 : HTML 내부의 <script> 태그를 활용하여 모든
api 요청을 하고 있음.
 개선 : 서버 내에서 요청을 수행한 뒤 HTML에는 필요
값만 전달하는 방식 (MVC 패턴)
결론
기존 : HTML 안의 JavaScript에서 모든 요청 응답
변경 : 서버 => HTML <script> 최소화
Mediclip Sample 문제
현재 구조 및 개선 방향
목차
Sample
 회원 최초 로그인 시 Sample 생성
 새로운 메디클립은 Sample을 기반으로 추가 생성 << 문제되는 부분
Sample 오류
1. 유저마다 첫 로그인 시
개인 폴더에 생성
2. 이미 만들어진 Sample 수정
불가능
3. 잘못된 Sample 최초 생성 시
새로운 메디클립 생성 문제 발생
개인 폴더
Sample 생성 방식 변경
 1. 최상위 경로에 Sample 을 둔다
 2. 가입시 매번 생성하는 대신 공통 Sample 참조
 용량 절약, Sample 문제시, 수정 용이
파일 참조 문제
목차
1. Mediclip 페이지 및 작동방식
2. Sample 문제 수정 불가 이유
3. 개선 방향
메디클립 페이지
(index_mediclip)
Index_mediclip
 내부 js 에서 파일 절대 경로를
참조하여 3D 페이지 생성
Sample 문제 개선 불가
1. HTML 파일 내부의 JS 에서 절대 경로를 통해
데이터를 가져오는 구조
2. 데이터는 항상 같은 경로에서 가져오며,
경로를 변경하면 과거 데이터 읽기 불가능
3. 문제 개선을 위해 sample 을 다른 경로에
만들면 과거 기능 동작 x
 데이터 구조를 개선한 신버전 필요
기존 Mediclip 폴더의 JS파일들 생성 방식
1. 회원 stl 파일을 토대로 생성
2. stl 파일을 파싱 후 데이터 값을
JS 파일 생성하여 배열 안에 저장.
문제점 :
1. 데이터가 5개의 파일에 흩어져 있어서 관리가 어려움
2. JS 형태로 만들어서 변수 중복 선언 오류 나타남
개선 방향
1. 데이터를 JSON 형태로 하나의 파일에 저장한다.
- JS형태로 인한 변수 선언 오류 피할 수 있음.
- 관리가 쉽다.
2. JSON을 서버 내에서 parse하여 HTML에 뿌려준다.
- 기존 방식 : HTML에 JS파일 바로 삽입
VisualPrinting 생성 구조 개선
(Medip 부분)
목차
1. VisualPrinting 생성 과정
2. 문제점 및 개선방향
현재 VisualPrinting 생성하기 순서
1. Medip에서 VisualPrinting 생성하기를 누른다.
2. Stl/Data/회원아이디 폴더 내부에 현재 시간 폴더생성
3. 그 안에 nrrd, stl, js 파일을 ftp로 전송
회원 폴더 내부
시간 폴더 내부
Stl, nrrd, js
생성하기 폴더생성
문제점
1. 회원이 가진 데이터 개수가 많아지면,
보기 힘들 정도로 길어짐.
개선 :
1.아이디 폴더 안에 visualPrinting 폴더로
경로 변경
2. js로 전송하는 files.js를 json 형태로 전송 필요
list 페이지
목차
1. 기존 리스트 생성과정
2. 개선방향
기존 visualPrinting 리스트 생성 방식
1. 유저가 visualprinting & mediclip 로그인 함.
2. 그 유저의 아이디를 토대로 폴더를 찾아냄
3. 폴더 리스트를 읽은 뒤,
visualprinting_url_list.js 파일을 생성하여,
폴더 이름 값을 JS 변수에 저장함.
문제 : 리스트 삭제, 변경 시 문제 발생, 가독성 x
Visualprinting_url
_list.js 내부
개선 방식
방법1. 목록을, js파일이 아닌, JSON 파일로 저장
(js 파일로 변수 선언할 경우, 변수 겹침 발생)
(가독성 ↑)
방법2. 목록 파일을 만들지 않고, 바로 현재 목록 불러오기
(node.js 의 파일읽기 기능 사용)
방법3. DB사용(stl, nrrd를 저장해야 하는 구조상 어려울 수
있음)
서버 구동 명령어
목차
1. 기존 서버 명령어
2. 신규 서버 명령어
3. 선택 자유
기존 서버 명령어 (forever)
서버 목록 보기
sudo node forever list (Test NAS Server)
sudo forever list (Service NAS Server/연구소 NAS Server)
서버 종료
sudo node forever stop uid sudo forever stop uid (Service NAS Server/연구소 NAS Server)
서버 구동(SRFserver)
서버 구동 명령 : sudo node forever start /volume1/SRF/srfserver/app.js (Test NAS Server)
강제 서버구동 명령 : sudo forever start --minUptime 1000 --spinSleepTime 1000 /volume1/SRF/srfserver/app.js –d false (Service NAS
Server/연구소 NAS Server)
서버 구동(stl)
서버 구동 명령: sudo node forever start /volume1/SRF/stl/app.js
강제 서버구동 명령 : sudo forever start --minUptime 1000 --spinSleepTime 1000 /volume1/SRF/stl/app.js –d false (Service NAS
Server/연구소 NAS Server)
신규 서버 구동 명령어 (pm2)
-서버 시작하기
sudo pm2 start /volume1/SRF/stl/app.js
또는 sudo pm2 start /volume1/SRF/원하는 경로 파일
-원하는 이름으로 서버 시작하기
sudo pm2 start 경로 --name 원하는이름
-서버 리스트 보기 (서버 아이디 볼 수 있음)
sudo pm2 list 또는 sudo pm2 status
-서버 로그보기
sudo pm2 log 서버아이디
- 서버 아이디는 리스트 보기에 나옴.
-서버 멈추기 - 서버 소멸시키기 - 전체 서버 죽이기
sudo pm2 stop 서버아이디 sudo pm2 delete 서버아이디 sudo pm2 kill
-서버 껐다가 재시작 - 무중단 재시작(추천)
sudo pm2 restart 서버아이디 sudo pm2 reload 서버아이디
선택은 자유
Pm2, forever : 같은 기능의 라이브러리, 선택은 자유
Pm2의 장점 :
서버 로그(log)
변경사항 실시간 반영(watch),
무 중단 재시작 기능 제공(reload)
보기 좋은 인터페이스
예정 사항
목차
신규 포트
앞서 말한 방식을 적용하면, 기존 기능에 문제 발생
∴ 기존 프로젝트는 포트 2999에 현상 유지
새로운 프로젝트를 생성하여 방식 적용 후
새로운 포트에 배포하여 운영.
서버에 두개의 버전이 공존

Contenu connexe

Similaire à visualPrinting 개선안(22.4.04).pptx

프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용중선 곽
 
테스트개선지원 사례 - 웹어플리케이션대상
테스트개선지원 사례 - 웹어플리케이션대상테스트개선지원 사례 - 웹어플리케이션대상
테스트개선지원 사례 - 웹어플리케이션대상SangIn Choung
 
[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략
[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략
[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략Cyworld AppStore (SK Communications)
 
Migration to Azure Database for MySQL
Migration to Azure Database for MySQLMigration to Azure Database for MySQL
Migration to Azure Database for MySQLrockplace
 
Ksh portfolio
Ksh portfolioKsh portfolio
Ksh portfolioSunhoKo2
 
제품소개서 (Pastel editor)
제품소개서 (Pastel editor)제품소개서 (Pastel editor)
제품소개서 (Pastel editor)Kevin Hyun
 
제품소개서( Pastel Editor)
제품소개서( Pastel Editor)제품소개서( Pastel Editor)
제품소개서( Pastel Editor)Kevin Hyun
 
DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)WhaTap Labs
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
비동기 파일 로딩
비동기 파일 로딩비동기 파일 로딩
비동기 파일 로딩Bongseok Cho
 
0222 사내세미나_오정민 스프링인액션
0222 사내세미나_오정민 스프링인액션0222 사내세미나_오정민 스프링인액션
0222 사내세미나_오정민 스프링인액션DataUs
 
Spark performance tuning
Spark performance tuningSpark performance tuning
Spark performance tuninghaiteam
 
Node.js 20버전에 변경된 점들.pdf
Node.js 20버전에 변경된 점들.pdfNode.js 20버전에 변경된 점들.pdf
Node.js 20버전에 변경된 점들.pdfSeung kyoo Park
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교Woo Yeong Choi
 
Varargs perf ibmwas_comp_v02
Varargs perf ibmwas_comp_v02Varargs perf ibmwas_comp_v02
Varargs perf ibmwas_comp_v02JungWoon Lee
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드cranbe95
 

Similaire à visualPrinting 개선안(22.4.04).pptx (20)

프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
 
테스트개선지원 사례 - 웹어플리케이션대상
테스트개선지원 사례 - 웹어플리케이션대상테스트개선지원 사례 - 웹어플리케이션대상
테스트개선지원 사례 - 웹어플리케이션대상
 
[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략
[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략
[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략
 
Php이메일 시온
Php이메일 시온Php이메일 시온
Php이메일 시온
 
Migration to Azure Database for MySQL
Migration to Azure Database for MySQLMigration to Azure Database for MySQL
Migration to Azure Database for MySQL
 
Ksh portfolio
Ksh portfolioKsh portfolio
Ksh portfolio
 
제품소개서 (Pastel editor)
제품소개서 (Pastel editor)제품소개서 (Pastel editor)
제품소개서 (Pastel editor)
 
제품소개서( Pastel Editor)
제품소개서( Pastel Editor)제품소개서( Pastel Editor)
제품소개서( Pastel Editor)
 
DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
Portfolio
PortfolioPortfolio
Portfolio
 
비동기 파일 로딩
비동기 파일 로딩비동기 파일 로딩
비동기 파일 로딩
 
0222 사내세미나_오정민 스프링인액션
0222 사내세미나_오정민 스프링인액션0222 사내세미나_오정민 스프링인액션
0222 사내세미나_오정민 스프링인액션
 
주키퍼
주키퍼주키퍼
주키퍼
 
Spark performance tuning
Spark performance tuningSpark performance tuning
Spark performance tuning
 
Node.js 20버전에 변경된 점들.pdf
Node.js 20버전에 변경된 점들.pdfNode.js 20버전에 변경된 점들.pdf
Node.js 20버전에 변경된 점들.pdf
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교
 
Varargs perf ibmwas_comp_v02
Varargs perf ibmwas_comp_v02Varargs perf ibmwas_comp_v02
Varargs perf ibmwas_comp_v02
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
 
Portfolio
PortfolioPortfolio
Portfolio
 

visualPrinting 개선안(22.4.04).pptx

  • 1. VisualPrinting & Mediclip 개선안 IT 임익환
  • 2. 목차 문제점 및 개선 방법 1. 로그인 2. 보안 약점 3. 서버 구조 4. Sample 파일 5. 파일 구조 문제점 6. 신규 생성 방식 개선(Medip) 7. List 페이지 8. 서버 구동 명령어 9. 예정 계획
  • 3. 로그인 목차 1. 기존 로그인 문제 2. 문제점 자료화면 3. 개선 자료화면
  • 4. 로그인 문제  무작위 아이디와 비번을 입력하여도 로그인이 성공하는 문제 존재 (기존) - 로그인이 성공하면 새로운 회원 폴더를 생성해 버림(수정 시급)  라이선스 서버 api의 인증을 거치도록 수정 완료 (현재) - 서버 세션에 로그인 정보 저장
  • 6. 개선 완료된 모습 1. 아디 비번 확인 2. 예외 처리 완료 3. 세션 기능 추가
  • 7. 보안 약점 목차 1. 보안 취약점 (url parameter) 2. 개선 방향 3. 개선 시 side effect 해결 방법
  • 8. 기존 url 문제점 1. 주소에 회원 아이디 노출 - url의 parameter 통한 데이터 조회 방식 2. 다른 회원 아이디 입력시 진입가능 - 개인 의료 데이터 노출 위험
  • 10. 변경 방식 1. 데이터 조회 방식 변경 - 기존 방식 : url parameter 활용 - 신(新)방식 : 서버 메모리에 세션으로 아이디 값을 저장, 세션 값을 통해 데이터 조회
  • 11. 문제점 Visual Printing의 목적 : 환자와 자료 링크 공유 개선하면 문제 : url parameter를 없애서 바로 진입 불가능 -> 취지에 맞지 않음 기존 방식 문제 : 주소창에 아이디만 바꾸면 다른 회원 자료 접속 가능
  • 12. 해결방법 1. url parameter를 사용한다. 2. url의 개인정보 부분을 암호화한다. 3. 조회 할 때에는 복호화 하여 조회한다.
  • 13. 서버 구조문제 목차 1. 현재 서버 구조 2. 구조의 문제점 3. 개선 방향
  • 14. 현재 구조 – 두 개의 백엔드 (큰 문제 없는 것처럼 보임) View 서버 파일 서버 View만 담당 파일 저장처리만 담당
  • 15. 구조 문제점 View 서버 파일 서버 1. 요청 2. View 서버 폴더에 파일 저장  A가 요청을 B로 보내면 요청 받은 B는 파일을 A에 저장함 2. 파일 불러오기 (view 서버 파일을 불러옴) 3. 파일 요청 / 전송 0. html 파일 안의 Js 에서 모든 요청 html 파일을 render A B
  • 16. 단일서버 MVC 패턴으로 개선 단방향 데이터 파일처리 단일 서버  불필요한 과정을 없애고, 하나의 서버 내에서 처리  대신 로직 분리를 위해 MVC 패턴 적용 필요
  • 18. 결론 현재 : HTML 내부의 <script> 태그를 활용하여 모든 api 요청을 하고 있음.  개선 : 서버 내에서 요청을 수행한 뒤 HTML에는 필요 값만 전달하는 방식 (MVC 패턴)
  • 19. 결론 기존 : HTML 안의 JavaScript에서 모든 요청 응답 변경 : 서버 => HTML <script> 최소화
  • 20. Mediclip Sample 문제 현재 구조 및 개선 방향 목차
  • 21. Sample  회원 최초 로그인 시 Sample 생성  새로운 메디클립은 Sample을 기반으로 추가 생성 << 문제되는 부분
  • 22. Sample 오류 1. 유저마다 첫 로그인 시 개인 폴더에 생성 2. 이미 만들어진 Sample 수정 불가능 3. 잘못된 Sample 최초 생성 시 새로운 메디클립 생성 문제 발생 개인 폴더
  • 23. Sample 생성 방식 변경  1. 최상위 경로에 Sample 을 둔다  2. 가입시 매번 생성하는 대신 공통 Sample 참조  용량 절약, Sample 문제시, 수정 용이
  • 24. 파일 참조 문제 목차 1. Mediclip 페이지 및 작동방식 2. Sample 문제 수정 불가 이유 3. 개선 방향
  • 26. Index_mediclip  내부 js 에서 파일 절대 경로를 참조하여 3D 페이지 생성
  • 27. Sample 문제 개선 불가 1. HTML 파일 내부의 JS 에서 절대 경로를 통해 데이터를 가져오는 구조 2. 데이터는 항상 같은 경로에서 가져오며, 경로를 변경하면 과거 데이터 읽기 불가능 3. 문제 개선을 위해 sample 을 다른 경로에 만들면 과거 기능 동작 x  데이터 구조를 개선한 신버전 필요
  • 28. 기존 Mediclip 폴더의 JS파일들 생성 방식 1. 회원 stl 파일을 토대로 생성 2. stl 파일을 파싱 후 데이터 값을 JS 파일 생성하여 배열 안에 저장. 문제점 : 1. 데이터가 5개의 파일에 흩어져 있어서 관리가 어려움 2. JS 형태로 만들어서 변수 중복 선언 오류 나타남
  • 29. 개선 방향 1. 데이터를 JSON 형태로 하나의 파일에 저장한다. - JS형태로 인한 변수 선언 오류 피할 수 있음. - 관리가 쉽다. 2. JSON을 서버 내에서 parse하여 HTML에 뿌려준다. - 기존 방식 : HTML에 JS파일 바로 삽입
  • 30. VisualPrinting 생성 구조 개선 (Medip 부분) 목차 1. VisualPrinting 생성 과정 2. 문제점 및 개선방향
  • 31. 현재 VisualPrinting 생성하기 순서 1. Medip에서 VisualPrinting 생성하기를 누른다. 2. Stl/Data/회원아이디 폴더 내부에 현재 시간 폴더생성 3. 그 안에 nrrd, stl, js 파일을 ftp로 전송 회원 폴더 내부 시간 폴더 내부 Stl, nrrd, js 생성하기 폴더생성
  • 32. 문제점 1. 회원이 가진 데이터 개수가 많아지면, 보기 힘들 정도로 길어짐. 개선 : 1.아이디 폴더 안에 visualPrinting 폴더로 경로 변경 2. js로 전송하는 files.js를 json 형태로 전송 필요
  • 33. list 페이지 목차 1. 기존 리스트 생성과정 2. 개선방향
  • 34. 기존 visualPrinting 리스트 생성 방식 1. 유저가 visualprinting & mediclip 로그인 함. 2. 그 유저의 아이디를 토대로 폴더를 찾아냄 3. 폴더 리스트를 읽은 뒤, visualprinting_url_list.js 파일을 생성하여, 폴더 이름 값을 JS 변수에 저장함. 문제 : 리스트 삭제, 변경 시 문제 발생, 가독성 x Visualprinting_url _list.js 내부
  • 35. 개선 방식 방법1. 목록을, js파일이 아닌, JSON 파일로 저장 (js 파일로 변수 선언할 경우, 변수 겹침 발생) (가독성 ↑) 방법2. 목록 파일을 만들지 않고, 바로 현재 목록 불러오기 (node.js 의 파일읽기 기능 사용) 방법3. DB사용(stl, nrrd를 저장해야 하는 구조상 어려울 수 있음)
  • 36. 서버 구동 명령어 목차 1. 기존 서버 명령어 2. 신규 서버 명령어 3. 선택 자유
  • 37. 기존 서버 명령어 (forever) 서버 목록 보기 sudo node forever list (Test NAS Server) sudo forever list (Service NAS Server/연구소 NAS Server) 서버 종료 sudo node forever stop uid sudo forever stop uid (Service NAS Server/연구소 NAS Server) 서버 구동(SRFserver) 서버 구동 명령 : sudo node forever start /volume1/SRF/srfserver/app.js (Test NAS Server) 강제 서버구동 명령 : sudo forever start --minUptime 1000 --spinSleepTime 1000 /volume1/SRF/srfserver/app.js –d false (Service NAS Server/연구소 NAS Server) 서버 구동(stl) 서버 구동 명령: sudo node forever start /volume1/SRF/stl/app.js 강제 서버구동 명령 : sudo forever start --minUptime 1000 --spinSleepTime 1000 /volume1/SRF/stl/app.js –d false (Service NAS Server/연구소 NAS Server)
  • 38. 신규 서버 구동 명령어 (pm2) -서버 시작하기 sudo pm2 start /volume1/SRF/stl/app.js 또는 sudo pm2 start /volume1/SRF/원하는 경로 파일 -원하는 이름으로 서버 시작하기 sudo pm2 start 경로 --name 원하는이름 -서버 리스트 보기 (서버 아이디 볼 수 있음) sudo pm2 list 또는 sudo pm2 status -서버 로그보기 sudo pm2 log 서버아이디 - 서버 아이디는 리스트 보기에 나옴. -서버 멈추기 - 서버 소멸시키기 - 전체 서버 죽이기 sudo pm2 stop 서버아이디 sudo pm2 delete 서버아이디 sudo pm2 kill -서버 껐다가 재시작 - 무중단 재시작(추천) sudo pm2 restart 서버아이디 sudo pm2 reload 서버아이디
  • 39. 선택은 자유 Pm2, forever : 같은 기능의 라이브러리, 선택은 자유 Pm2의 장점 : 서버 로그(log) 변경사항 실시간 반영(watch), 무 중단 재시작 기능 제공(reload) 보기 좋은 인터페이스
  • 41. 신규 포트 앞서 말한 방식을 적용하면, 기존 기능에 문제 발생 ∴ 기존 프로젝트는 포트 2999에 현상 유지 새로운 프로젝트를 생성하여 방식 적용 후 새로운 포트에 배포하여 운영. 서버에 두개의 버전이 공존