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 패턴 적용 필요
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파일 바로 삽입
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 형태로 전송 필요
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를 저장해야 하는 구조상 어려울 수
있음)
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)
보기 좋은 인터페이스