출처) http://sblog.netraweb.com/node-js-%EA%B0%95%EC%A2%8C-node-js-%EB%9E%80-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%86%8C%EA%B0%9C/

 

 

모든 내용은 위의 출처이며 node.js와 연결된 자세한 내용은 출처의 링크를 통하여 확인 할 수 있습니다.

 

 

■ node.js 란?

Node.js는 확장성 있는 네트워크 어플리케이션 개발에 사용되는 소프트웨어 플랫폼입니다. 특시 서버사이드에서 많이 사용되곤 합니다. 사용되는 언어로는 자바스크립트(Javascript)를 활용하며, Non-blocking I/O 와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있는 특징을 가지고 있습니다.

 

내장 HTTP 서버 라이브러리르 포함하고 있어 웹 서버에서 아파치 등의 별도 소프트웨어 없이 동작하는 것이 가능하며, 이를 통한 웹 서버의 동작에 있어 더 많은 통제에서 벗어나 여러가지 기능을 가능하게 합니다.

 

즉 Node.js 를 통해 웹어플리케이션이 더욱 발전하게 되었으며, 정적인 홈페이지 뿐만 아니라 쇼핑몰, 티켓 예메사이트, 블로그 등 data가 변하는 사이트를 만들 수 있으며, 여러 개발자들이 만든 프로그램과 게임을 웹상에서 구동시켜 안드로이드폰, 아이폰, 윈도우PC, 맥 등 플랫폼의 제약에 벗어나 어디든 상관없이 실행이 가능하게 해줍니다.

 

물론 단순히 웹에서 실행가능한 게임을 만들려면 javascript 만으로도 가능하지만 좀더 진화된 프로그램으로 실시간 온라인 채팅, 실시간 온라인 게임 등 실시간 기능을 넣거나, 로그인 기능을 넣어 유저를 관리하고 점수를 관리하는 데이터베이스 기능을 Node.js 를 통해 만들 수가 있습니다.

 

■ node.js 사용이유

Node.js 를 이해하려면 먼저 javascript를 배우셔야 합니다. 그 이유는 node.js는 javascript 기반으로 개조하여 만들어졌기 때문입니다.

 

Javscript는 C/C++, Java와 같은 프로그래밍 언어입니다. 하지만 이름에서 알 수 있듯이 Javascript는 독립적인 언어가 아니라 스크립트 언어입니다. 스크립트 언어는 특정한 프로그램 안에서 동작하는 프로그램이기 때문에 웹브라우저 프로그램 안에서만 작동을 하게 됩니다. 즉 웹브라우저(크롬, 파이어폭스, 사파리, 익스플로러 등등) 가 없으면 사용할 수 없는 프로그램이죠.

 

여기서 Node.js 가 나오는 이유가 됩니다. 즉 javascript를 웹 브라우저에서 독립시킨 것으로 Node.js를 설치하게 되면 터미널프로그램(윈도우의 cmd, 맥의 terminal 등)에서 node를 입력하여 브라우져 없이 바로 실행할 수 있습니다. 하지만 javascript에서 분리된 언어이기 때문에 문범은 같습니다. 이렇게 .node.js를 이용하여 웹브라우져와 무관한 프로그램을 만들 수 있게 되었고, 중요한 것은 node.js를 이용하여 서버를 만들 수 있다는 것입니다. 중요한 이유는 이전까지 server-clint 웹사이트를 만들 때 웹에서 표시되는 부분은 javascript를 사용하여 만들어야만 했으며, 서버는 ruby, java 등 다른 언어를 써서 만들어야 했는데, 마침내 한가지 언어로 전체 웹페이지를 만들 수 있게 된 것입니다.

'IT 용어 정리' 카테고리의 다른 글

MyBatis 란?  (0) 2019.09.26
NoSQL 이란?  (0) 2019.09.17
spring MVC 와 DispatcherServlet 의 정의  (0) 2019.09.14
front end와 back end의 정의  (0) 2019.09.13
AJP 란?  (0) 2019.09.13

출처) https://min-it.tistory.com/7

        https://mangkyu.tistory.com/18

 

■ spring MVC (Model View Controller) 

spring MVC는 웹 개발시 대부분으로 사용하는 모델2 방식의 구조이다. 모델2 방식이란 한마디로 표현하여 화면을 담당하는 View의 부분과 데이터를 처리하는 비즈니스 로직을 분리하여 생각한 개념이다. 디자이너와 개발자의 작업 분리가 되어있어 작업하기 편리하고 재사용이 가능한 구조이다.

 

MVC 가 뜻하는 의미는

M (Model) : 데이터를 처리하는 부분

V (View) : 화면을 담당하는 부분

C (Controller) : 요청을 처리하는 부분으로 뷰와 모델 사이의 통신역할을 담당

 

 

(Spring MVC DispatcherServlet) 출처:  https://min-it.tistory.com/7  [MIN-IT]

1. 클라이언트(사용자)의 모든 요청은 DispatcherServlet이 받는다.

 

2. DispatcherServlet은 hanlderMapping을 통해서 요청에 해당하는 Controller를

실행 시킨다.

 

3. Controller는 적절한 서비스 객체를 호출 시킨다.

 

4. Service는 DB처리를 위해  DAO를 이용하여 데이터를 요청 한다.

 

5.DAO는 mybatis를 이용하는 Mapper를 통해 작업 처리를 한다.

 

6. 결과(처리한 데이터)가 mapper->DAO->Service->Controller로 전달된다.

 

7. Contorller는 전달된 결과(처리된 데이터)를 View Resolver를 통해

전달 받을 View가 있는지 검색한다.

 

8. 전달 받은 View가 있다면 View에게 전달된 결과(처리된 데이터)를 전달한다.

 

9. View는 전달받은 결과(처리된 데이터)를 다시 DispatcherServlet에게 전달한다.

 

10. DispatcherServlet은 전달받은 결과(처리된 데이터)를 클라이언트에게 전달한다.

 

Front Controller는 서버로 들어오는 모든 요청을 받아서 처리한다. 공동처리 작업을 먼저 수행한 후 적절한 세부 컨트롤러에 작업을 위임해주고 예외시 일관된 방식으로 예외를 처리해주는 역할을 한다. 이와 같은 역할을 하기 때문에 각 컨트롤러 사이의 중복된 코드 문제나 협업시 개발자들의 개발 방식이 다른 경우 등을 해결할 수 있다.

 

 

■ DispatcherServlet

spring에서 정의한 Front Controller이다. 클라이언트에서 어떤 요청이 들어오면 톰캣과 같은 서블릿컨테이너가 요청을 받는데, 이때 제일 앞에서 서버로 들어오는 모든 요청을 처리하는 기능을 한다. MVC구조에서 함께 사용하는 패턴이다.

 

DispatcherServlet의 등장으로 web.xml의 역할이 상당히 축소되었는데, 기존에는 모든 서블릿에 대해 URL패밍을 활용하기 위해서 web.xml에 모두 등록해주어야 헀지만, DispatcherServlet이 해당 어플리케이션으로 들어오는 모든 요청을 핸들링해주면서 작업이 상당히 편리하게 되었다. 

 

'IT 용어 정리' 카테고리의 다른 글

NoSQL 이란?  (0) 2019.09.17
node.js 란 무엇인가  (0) 2019.09.14
front end와 back end의 정의  (0) 2019.09.13
AJP 란?  (0) 2019.09.13
JDBC (Java Database Connectivity) 란?  (0) 2019.09.13

출처) https://moolgogiheart.tistory.com/16

 

■ front end (프론트 엔드)

사용자(user)의 화면에 나타나는 웹 화면을 프론트엔드(Front-End) 영역이라 합니다. 쉽게 말하면 웹페이지를 그리는 기술이라고 말씀 드릴 수 있습니다. 이러한 영역을 설계하는 사람을 Front-End 개발자라고 합니다.

프론트엔드 파트는 UX designer, Web designer, Front-End developer로 구성됩니다. UX 디자이너는 사용자에게 최상의 편리한 경험을 제공하기 위해 사이트의 구성/기능을 담당합니다. Web 디자이너는 이를 디자인으로 멋지게 뽑아내는 것이고, 프론트엔드 개발자는 뽑아낸 디자인을 웹어플리케이션(Web application)으로 구현하는 것입니다.

프론트엔드 개발 시 주요하게 요구되는 스킬은 다음과 같습니다. HTML/CSS/JAVA SCRIPT와 같은 스킬 및 디자인적인 요소도 관여하게 됩니다.

 

■ back end (백 엔드)

백엔드(Back-End) 개발자는 눈에 보이지 않는 서버에서 작용하는 기술을 다루는 직군입니다. 백엔드는 UI나 GUI로 구성된 화면의 통신이나 요청에 대하여 DB나 인터페이스 등을 통해 시스템 구성 실체에 접근하는 것입니다.

백엔트 파트는 다양하게 나올 수 있는데 그 중의 몇 가지 예로 서버관리자, DB관리자, Back-End developer로 구성됩니다. 서버관리자는 서버 환경설정, 서버구성을 관리하는 것이고, DB관리자는 DB설계 Data관리, 최적화를 하는 것입니다. 백엔드 개발자는 서버를 코딩하는 것이죠. 

백엔드 개발 시에는 서버코딩, 서버상에서 DB활용, API제작 등이 주요한 부분이라고 볼 수 있습니다. 이 중에서 JAVA(자바)를 많이 사용하고 Spring 프레임워크 기반으로도 많이 사용합니다. 프레임워크(Frame Work)란 말 그대로 뼈대란 뜻입니다. JAVA 소스 코드를 객체지향 관점에서 더욱 효율적으로 활용할 수 있게 틀을 제공해주는 것이죠.

 

■ Full Stack (풀 스택)

풀스택 개발자란 쉽게 이야기해서 프론트엔드와 백엔드를 합친 것이라고 보시면 됩니다. 한 마디로 모든 것을 다 하는 개발자인 셈이죠. 뭐.. 다 한다고 다 좋은 것은 아니겠죠? 장점도 있고 단점도 있겠지만 상황에 따라서는 프론트와 백엔드를 구분해서 역할을 분담할 필요가 있을 때도 있고 어떤 상황에서는 풀스택 개발자가 필요한 경우도 있겠죠.

 

 

'IT 용어 정리' 카테고리의 다른 글

NoSQL 이란?  (0) 2019.09.17
node.js 란 무엇인가  (0) 2019.09.14
spring MVC 와 DispatcherServlet 의 정의  (0) 2019.09.14
AJP 란?  (0) 2019.09.13
JDBC (Java Database Connectivity) 란?  (0) 2019.09.13

출처) https://itmemo.tistory.com/238

        https://ganzi-tilong.tistory.com/7

        https://joont.tistory.com/55

 

mod_jk를 알기전에 AJP를 먼저 알아야 할듯 함

 

■ AJP 란?

AJP는 웹서버(Apache) 뒤에 있는 어플리케이션 서버로부터 웹서버로 들어오늘 요청을 위임할 수 있는 바이너리 프로토콜이다.

 

어플리케이션 서버로 핑을 할 수 있는 웹서버의 모니터링 기능을 지원한다.

 

웹 개발자들은 대체로 AJP를 여러 웹서버로 부터 여러개 어플리케이션 서버로의 로드 밸런스 구현에 이용한다. 세션들의 각각의 어플리케이션 서버 인스턴스의 이름을 갖는 라우팅 메카니즘을 사용하는 현재 어플리케이션 서버로 리다이렉트된다. 이 경우 어플리케이션 서버를 위한 리버스 프록시로 웹서버는 동작한다.

 

■ mod_jk 란?

아파치, 톰캣 연동을 위해 mod_jk라는 모듈을 사용하는데, 이는 AJP프로토콜을 사용하여 톰캣과 연동하기 위해 만들어진 모듈이다. mod_jk는 톰캣의 일부로 배포되지만, 아파치 웹서버에 설치하여야 한다.

 

동작방식

1. 아파치 웹서버의 httpd.conf에 톰캣 연동을 위한 설정을 추가하고 톰캣에서 처리할 요청을 지정한다.

2. 사용자의 브라우저는 아파치 웹서버(보통 포트80)에 접속해 요청한다.

3. 아파치 웹서버는 사용자의 요청이 톰캣에서 처리하도록 지정된 요청인지 확인 후, 톰캣에서 처리해야 하는 경우 아파치 웹서버는 톰캣의 AJP포트(보통 8009포트)에 접속해 요청을 전달한다.

4. 톰캣은 아파치 웹서버로부터 요청을 받아 처리한 후, 처리 결과를 아파치 웹서버에 되돌려 준다.

5. 아파치 웹서버는 톰캣으로부터 받은 처리 결과를 사용자에게 전송한다.

 

■ Apache와 Tomcat을 연동해야 하는 이유

Tomcat은 WAS 서버이지만 Web 서버의 기능도 갖추고 있는 WAS 서버입니다.

그러나 톰캣의 Web 서버 기능은 아파치보다 느린 속도처리를 보였고, 이로 인해 정적인 페이지는 Apache가 처리하고, 동적인 페이지를 Tomcat이 처리함으로써 부하를 분산하는 이유에서 Apache와 Tomcat을 연동하였습니다.

 

그러나 이는 옛날 얘기이고.. 지금은 Tomcat이 많이 발전해 Tomcat 내의 Web 서버가 아파치에 절대 뒤쳐지지

않을만큼의 역할을 수행합니다.

그럼에도 불구하고 아직도 Apache와 Tomcat을 연동하여 사용하는 이유는, 아파치 내에서만 설정할 수 있는 부분이라던가 아파치에서 제공하는 유용한 모듈들을 톰캣에서 사용할 수 없기 때문입니다.

 

'IT 용어 정리' 카테고리의 다른 글

NoSQL 이란?  (0) 2019.09.17
node.js 란 무엇인가  (0) 2019.09.14
spring MVC 와 DispatcherServlet 의 정의  (0) 2019.09.14
front end와 back end의 정의  (0) 2019.09.13
JDBC (Java Database Connectivity) 란?  (0) 2019.09.13

+ Recent posts