D +2
어제 조사(?ㅋㅋ)해 본 결과 i18n을 사용하는 것이 보편적인 방법인 것 같다. i18n을 이용하여 다국화 처리된 웹페이지를 구현하려고 한다. 일단 오늘 찾아봐야 할 것들을 간단하게 정리하고 시작해 보았다.
① i18n과 i18next의 차이
② jquery.i18n.properties는?
③ express란?
④ node.js+express로 적용하는 법 집중적으로 찾아보기
⑤ 간단한 코드 같은 것들 따라해 보기(할 수 있다묜...★)
1) i18n과 i18next의 차이
* i18n(Internationalization)이란 지역의 언어들과 문화 설정에 맞도록 지정하기 위해 소프트웨어를 준비하는 과정이다.
* i18next는 자바스크립트에서 쓰여진 internationalization-framework이다. i18next는 보간(interpolation), 형식 지정, 컨텍스트 처리에 대한 표준 i18n기능(이상)을 제공한다.
-> 여기서 그럼 framework란? 프로그램의 기본 구조 즉, 뼈대라는 의미로, 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것을 말한다. 원하는 기능 구현에만 집중하면 되기 때문에 기본 기능만 갖추도록 구현하여 빠르게 개발 할 수 있다. 그렇기 때문에 프레임 워크만으로는 실행이 불가능하며, 기능을 추가해야 하는데 이때에는 프레임 워크가 정의한 규칙을 준수하여 만들어야 한다. (php는 라라벨, java는 spring, nodejs는 express를 주로 사용함)
-> i18n과 i18next는 그냥 같은 건데 i18next가 프레임 워크라 더 적용이 쉬운 방법인 것 같으다... 일단 나으ㅣ 생각...
2) jquery.i18n.properties는?
3) express란?
* node.js는 JavaScript 기반으로 구성된 서버 사이드 서비스를 JavaScript로 구현할 수 있게 만든 것이며, npm은 node.js 기반의 모듈을 모아둔 저장소이다.
* Express.js는 node.js를 위한 빠르고 간편한 웹 프레임 워크이다.
<<Express.js 시작해보기>>
node.js를 설치하고 패키지를 초기화해 주었다. (프로젝트 관리를 보다 쉽게 하기 위함이다)
위 과정을 마치면 작업 디렉토리에 package.json이 생성되어 있다. package.json은 앱에 적용된 모듈에 대한 관리를 위한 파일이다.
그 다음 Express JS를 사용하기 위해 npm명령어를 실행하여 express 모듈을 설치해 주었다.
여기서 --save의 의미는 npm install명령어의 옵션이며, 설치되는 모듈은 json파일 내에 dependencies 목록에 자동으로 추가된다.
->설치 완료 : express 웹프레임워크를 사용할 수 있다!
app.js(express에서 권장하는 명칭이다) 파일 저장 후 node 생성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //모듈 import : express를 파일에 include하고, require함수의 리턴값을 받음 var express = require('express'); var app = express(); //라우트 지정(url 구성) //클라이언트가 서버에 주소를 요청할 때 어떠한 문서를 응답하겠다는 것을 연결하는 작업을 함(라우팅) app.get('/', function(req,res){ //send는 res객체의 메소드로 사용자 요청에 대한 응답을 보내는 메소드 res.send('Hello world') }); //서버가 클라이언트로부터의 요청받을 준비가 되었을 때 콜백함수 동작 app.listen(3000, function(){ console.log("Connected 3000port~!~!") }); |
아래와 같이 노드를 생성해주고 localhost:3000으로 들어가보면 Hello world가 뜨는 것을 볼 수 있다!
4) node.js +express로 적용하는 법 집중적으로 찾아보기
* ejs 파일은 무엇? npm을 이용하여 외부 모듈을 설치하는데, 이 모듈이 ejs모듈이다. ejs는 템플릿 엔진으로, 템플릿을 읽어 엔진의 문법과 설정에 따라서 파일을 HTML 형식으로 변환시키는 모듈이다. HTML에서 <% %>를 사용하여 서버의 데이터를 주고받으며 사용하거나 코드를 실행할 수 있다.
태그 |
설명 |
<%= 값 %> |
작성한 데이터를 그 자리에 쓰는 태그이다. 그 값 그대로 화면에 출력된다. |
<%- 값 %> |
위 태그와 같지만 HTML관련 태그는 이스케이프 처리되지 않고 그대로 쓰인다. 코드 전체(파일)가 구현된다. |
* 미들웨어란 무엇? 작은 단위 모듈로 요청과 응답을 처리하는 함수 형태를 말하는데 이 함수의 주기는 request-response 주기로 종료된다. 응답을 완수하기 전까지 중간에 다른 일 처리가 가능하다. express는 여러 개의 미들웨어로 구성되어 있으며 express 프레임워크에서 사용할 수 있는 중간 처리 목적의 소프트웨어이다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
[node.js 관련 용어 정리]
* 모듈이란 외부에 영향을 받지 않는 독립된, 재사용이 가능한 코드들의 묶음 즉 라이브러리이다. JAVA에서는 class가, javaScript에서는 function이 모듈 기능을 담당하고 있다. node.js에서는 파일로 구분되어, 코드가 다른 파일과 같은지에 따라 모듈이 나눠지게 된다. 즉, 코드 내용이 다르면 모듈도 다르다.
* require() 함수 : require 메소드를 통해 외부 모듈을 가져올 수 있다. require()함수는 module.exports를 리턴한다. exports는 단순히 module.exports를 참조한다. 사용형식만 다를뿐이다. <require('파일 경로 또는 모듈');> 형식으로 사용한다.
[참고 : https://medium.com/@flsqja12_33844/require-exports-module-exports-%EA%B3%B5%EC%8B%9D%EB%AC%B8%EC%84%9C%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1d024ec5aca3]
* 라우팅이란 어플리케이션 엔드 포인트(URI)의 정의와 URI가 클라이언트 요청에 응답하는 방식을 말한다. (이젠 좀 기억하자!)
* URI : 인터넷에 있는 원을 나타내는 유일한 주소
<기본적인 라우팅 코드>
1 2 3 4 5 6 7 8 9 10 11 | var express = require('express'); var app = express(); app.get('/users', function (req, res) { res.send('list of users') }); | cs |
* express객체를 담고 있는 app 변수의 함수 네가지
app.post()
app.get()
app.put()
app.delete()
이 함수들의 첫 번째 파라미터는 서버자원을 가리키는 URI 문자열을, 두 번째 파라미터는 라우팅 로직함수를 콜백형태로 구현한다.
= 내일 라우팅 정리 다시 하고, 코드 이해 완벽히 하기
= node.js 책 가져오기
'동계현장실습' 카테고리의 다른 글
19.01.14 월요일 (0) | 2019.01.14 |
---|---|
19.01.11 금요일 (0) | 2019.01.11 |
19.01.10 목요일 (0) | 2019.01.10 |
19.01.09 수요일 (0) | 2019.01.09 |
19.01.07 월요일 (0) | 2019.01.07 |