r11 vs r12 | ||
---|---|---|
1 | [[분류:N위키:한국어]][[분류:시스템 소프트웨어]][[분류:웹 프로그래밍]][[분류:웹 서버]][[분류:웹 서버 프로그램]] | |
1 | 2 | ||<-2><tablealign=right><tablewidth=400><tablebgcolor=#fff,#1f2023><tablebordercolor=#333><colbgcolor=#333><colcolor=#fff> {{{+1 '''Coder™'''}}} || |
2 | 3 | || '''이름''' || Coder || |
3 | 4 | || '''기능''' || 서버사이드 [[N위키:한국어/Codescript|Codescript]] 렌더링 및 페이지 생성 || |
... | ... | |
12 | 13 | |
13 | 14 | == 개요 == |
14 | 15 | 원래 로컬 프로그램을 짜거나, 웹페이지를 구동시키는데 사용되는[* 이때 프로그램이 설치되어있는 환경이라면 프로그램을 통해, 설치되어있지 않다면 Javascript로 우회컴파일한다. 자세한 내용은 [[N위키:한국어/Codescript|Codescript]] 문서 참고.] Codescript를 서버사이드에서 사용할 수 있게 한 소프트웨어이다. Node.js와 같은 프로그램과 성격이 비슷하다고 볼 수 있다. |
15 | ||
16 | 16 | == 업데이트 내역 == |
17 | 17 | [include(N위키:틀/자세한 내용, 문서=N위키:한국어/Coder/패치내역)] |
18 | ||
19 | 18 | == 작동 구조 == |
20 | 19 | 먼저 Coder의 작동방식은 크게 세가지로 나뉜다. |
21 | 20 | 1. 빌드형 작동 방식 |
22 | 21 | 1. 동적 작동 방식 |
23 | 22 | 1. 프론트엔드 & 백엔드 작동 방식 |
24 | 23 | 먼저 간단히 설명해 보면, 빌드형 작동 방식은 이름에서 보이듯이 매 파일 변경마다[* 현재는 git과 로컬 파일 시스템을 지원한다.] 새로 빌드를 해 사용자에게는 정적 웹페이지만 돌려주는 형식이다. 동적 작동 방식은 '''매 요청'''시마다 프로그램을 해석해 조건문으로 다른 결과를 내놓는 형식이다. 마지막 프론트엔드 & 백엔드 작동 방식은, 프론트엔드를 먼저 내려보내주고, AJAX로 서버에서 최소값만 받아와 페이지를 다시 구성한다. |
25 | ||
26 | 24 | === 빌드형 작동 방식 === |
27 | 25 | 앞 문단에서 대략적인 방식을 알아보았으니 정확한 순서를 짚고 넘어가겠다. |
28 | 26 | 1. 사용자가 지정한 디렉토리[* 단, /root/ 경로는 예약으로 쓸 수 없다.]에 있는 파일의 값이 변경된다. |
... | ... | |
31 | 29 | 1. Coder는 파서를 돌려 Codescript를 정적 파일들로 변환한다. |
32 | 30 | 1. 변환한 파일들을 /root/ 디렉토리에 옮기면 적용 끝. |
33 | 31 | 이 방식은 방문자가 접속하는 속도가 빠르다는 장점이 있지만, 정적이기 때문에 로그인 등은 구현할 수 없으며, 파일 양이 방대한 경우 /root/를 삭제한 뒤 파싱하는 동안 500 Internal Server Error를 내뿜으며 접속이 안되기 때문에 트래픽이 많은 사이트에는 적합하지 않다. 그런데 통계상으로 이 기능을 사용하는 사이트가 전체의 58%나 된다! --아니 근데 쓰는 사이트가 몇개 안되잖아-- --그러네 듣보잡이다-- 아무래도 속도를 중요시 여기는 고객들의 요구를 반영한 것으로 보인다. |
34 | ||
35 | 32 | === 동적 작동 방식 === |
36 | 33 | 간단하다. 요청이 들어올 때 마다 Codescript를 파싱해 내보낸다. 이때 쿠키나 세션과 같은 매개변수로 조건문을 사용할 수 있다. 다만 서버의 부담이 세고 기본적으로 느리다는 단점이 있다. |
37 | ||
38 | 34 | === 프론트엔드 & 백엔드 작동 방식 === |
39 | 35 | Coder의 꽃이라고 부를 수 있는 기능. |
40 | 36 | Coder를 만든 [[nawega]]의 사이트들은 모두 이 기능을 사용한다. |
... | ... | |
48 | 44 | 1. HTML5 pushState API를 통해 주소를 변경한다. |
49 | 45 | 1. 요청을 받은 백엔드는 데이터베이스에서 페이지를 찾고, 있으면 제목 / 내용을 반환하고, 없으면 각 값에 null을 반환한다. |
50 | 46 | 1. 제목 / 내용이 있는 경우 브라우저에 표시하고, null이면 404 페이지를 표시한다. |
51 | ||
52 | [[분류:N위키:한국어]][[분류:시스템 소프트웨어]][[분류:웹 프로그래밍]][[분류:웹 서버]][[분류:웹 서버 프로그램]]냥 |