Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

coding etude

201007 [commonJS & express] 본문

Javascript TIL

201007 [commonJS & express]

코코리니 2020. 10. 6. 22:12

commonJS 란? 

 : Javascript 를 모듈화 하기 위해서 필요한 API를 정의한 표준 라이브러리.

 

여기서 모듈화라는 말은 참 어려운 말인것 같다... 정확하게 정의된 의미기 아닌것 같아서 여기저기 둘러 봤지만 딱히 찾을 수가 없었다.. 그래서 내가 내린 결론은 모듈화라는것은 일정한 영역(scope)을 정의(definition)해서 사용(usage)하는 것이다. Javascript를 예로 들면 하나의 js 파일은 그 고유의 영역을 가지고 있고 그 파일의 범위를 export로 정의한 다음 어디에서나 require 를 사용해서 가져와 사용하는것!! 이라고 정의를 내리려고 한다.

 

정의를 설명하려고 했는데 결국 사용법을 모두 설명한것과 같은느낌이다...

 

위에서 설명한 방법과 같이 여러 개의 파일은 export/require 를 이용해서 사용하는 것이 commonJS 인것이다.

하지만 여기서 중요한 것은 export를 사용할때는 module.export 와 숏컷인 export를 혼합해서 사용하면 안된다는 점이다. export 는 module.export 를 참조하는 숏컷이기 때문에 둘을 혼용하면 export는 무시된다. 

또 하나, module.export는 객체를 할당 할 수 있지만 export는 변수이기 때문에 객체를 할당 할 수 없다. 

이 두가지는 꼭 명심해 두자!!

 

에피타이져로 commonJS를 알봤는데.. 이제 본격정그올 express 에 대해서 알아보도록 하자.

 

express란?

 : 웹 및 모바일 애플리케이션을 위한 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크로 HTTP 유틸리티 메소드 및 미들웨어를 통해 쉽고 빠르게 강력한 API를 작성할 수 있다.

 

라고 공식홈페이지에 나와있다.  말인즉, http 메소드와 유틸리티를 이용하여 Node.js 를 더 간결하고 빠르게 사용하게 도와주는 라이브러리 라는 말이다.

 

확실히 express로 작성하면 굉장히 직관적이고 코딩도 상당히 간결해 진다. 또한 commonJS 를 따르고 있어서 모듈화 작업도 사용 할 수 있어서 엄청난 장점을 가지고 있다.

 

사용방법은 node.js 를 사용하는것보다 더 단순한 메소드와 유틸리티를 가지고 있다. 한번 비교해 보면서 작성예시를 살펴보자.

//const http = require('http')  // 어떤 규약을 사용 할지 모듈을 가져와야 한다.
const express = require('express')// http 대신 express 를 가져온다.
const app = express() // 실행값을 준다
const bodyparser = require('body-parser')
const cors = require('cors')

app.use(cors()) // cors 를 해결하기 위해 사용
app.use(bodyparser) // 이기능은 검색해 보자

app.get(/*TODO*/)
app.post(/*TODO*/)

이전 포스팅의 node.js 의 코드보다 상당히 간결해 지고 직관적이란것을 알 수 있다. 또한 express는 자체적으로 error 처리를 진행 하는 기능이 있다. 하지만, 오류의 내용을 추가 하고자 한다면 추가도 가능 하다는 장점도 있다.

 

express의 사용은 여기서 끝낸다... 라고 하면 얼마나 간결하고 좋을까.. 하지만 아직 봐야할 내용이 많이 남아 있다. 

특히 공식홈페이지의 미들웨어와 API 의 내용을 숙지 해야 한다는 것이다. 

굉장히 직관 적이고 편리한 기능 들이 많다. 특히 bodyParser 나 cors 같은 미들웨어들은 use 라는 메소드로 사용만 한다면 굉장히 간결한 코딩을 할 수 있게 해준다. 많은 미들웨어와  API를 일일이 설명 할 수는 없고 공식홈페이지에서 확인해 보고 익혀두자!! 생각보다 간결하게 나와 있지만.. 여러번 보다보면 이해하는 날이 오지 않을까....?? 한다 ...ㅎ

 

그럼 여기서 말하는 미들웨어(middleware)에 대해서 간략하게 알아보자!!

미들웨어는 소프트웨어와 운영체제 사이에서 조정과 중개 역활을 하는 소프트웨어 라고 정의 되어 있다.

이말은 뭐냐 하면 어떤 프로그램을 사용하는데 그 운영체제와 프로그램 사이에서 주고받는 것들을 중간에에서 조정/변환/관리 를 해주는 또다른 프로그램이라는 말인것다...

예를들어 10진수를 사용하는 프로그램이 있는데 전송된 데이터들이 2진수라면?? 10진수를 구동하는 프로그램 내에서 받은 data들을 10진수로 변환 시켜주고 그 변환한 데이터를 사용해야 한다는 것이다. 하지만 2진수를 10진수로 사용하는 미들웨어를 설치해서 10진수 프로그램에서 사용한다면 단순하게 미들웨어를 거친 data를 사용만 하면 되는 것이다. 

 

미들웨어가 없을 때
미들웨어 사용 시

위의 예시처럼 미들웨어를 설치 해서 사용만 한다면 소프트웨어를 다루는 입장에서는 한손 덜기 때문에 조금더 편하고 간결한 업무를 진행 할 수 있는 것이다. 

그래서 결론은 미들웨어와 그에 따른 메소드를 어느정도 숙지 후에 사용하자는 것이다!! 끝!!

 

ps. 분기(router)에 대한 개념과 사용 방법도 꼭 숙지 해야 한다!!

'Javascript TIL' 카테고리의 다른 글

201026 [MVC / ORM / sequelize]  (0) 2020.10.26
201026 [SQL]  (0) 2020.10.26
201006 [Server / node.js]  (0) 2020.10.06
201006 [Client / Server]  (0) 2020.10.06
200927 [동기 / 비동기 (synchronous / asynchronous)]  (0) 2020.09.27