1.WEB 서버와 WAS 서버의 차이


-WEB 서버 : HTML, CSS, js, jpg 등 정적인 데이터를 처리하는 웹서버 입니다.


WEB Server로 가장 많이 쓰는 프로그램으로는 Apache재단의 Apache가 있고, Microsoft사의 IIS, nginx등이 있습니다.


웹서버의 아파치나 IIS 와 같은 소프트웨어는 HTML/CGI 나 기타 웹 문서들을 HTTP 규약에 따라 웹 클라이언트와 주고받으며 통신하는 것이 주 역할


-WAS(Web Application Server) 서버: JSP, ASP, PHP 등 사용자의 입력을 받아 서버에서 무언가를 처리하고 그 결과를 보여주는 동적인 데이터를 처리하는 웹서버 입니다.


WAS로 가장 많이 쓰는 프로그램으로는 BEA사의 Web Logic, IBM사의 Web Sphere, T-max사의 Jeus, Tomcat, Redhot사의 JBoss 등이 있습니다.


WAS는 규모가 크고 엔터프라이즈 환경에 필요한 트랜잭션, 보안, 트래픽관리, DB커넥션 풀, 사용자 관리 등등의 다양하고 강력한 기능을 제공하는 S/W 를 의미



1.1 WAS 구성

사용자 요청(웹 브라우저) -> 웹 서버 -> WAS(동적 처리) -> 웹 서버 -> 사용자 응답 메세지(웹 브라우저)


<출처: https://ithub.tistory.com/101 [Fall in IT.]>

 



WAS는 정적,동적 처리 둘다 가능하지만 정적처리를 WAS가 하게되면 부하가 많이 걸려서 좋지 않음


* WAS, Web Server를 따로 두고 쓰는 이유가 성능때문으로 알고 있으나, 

톰캣5.5 이상부터는 httpd의 native모듈을 사용해서 정적파일을 처리하는 기능을 제공하는데 이것이 순수 아파치 Httpd만 사용하는 것과 비교해서 성능이 전혀 떨어지지 않는다고 한다. 

그럼에도 톰캣앞에 아파치를 두는 이유는 하나의 서버에서 php애플리케이션과 java애플리케이션을 함께 사용하거나, httpd 서버를 간단한 로드밸런싱을 위해서 사용해야 할 때 필요하기 때문이라고 한다.



2.아파치 웹서버와 아파치 톰켓의 차이


-아파치 웹서버 : WEB 서버


-아파치 톰켓: WAS 서버 ( WEB 서버 내장 )


 

3.언어별 웹서버 구성


-(JAVA) JSP, Servlet  -> 아파치 톰켓 -> WAS 서버 (WEB서버 내장)


-(C,C++) PHP -> RWAPM -> WAS 서버 (WEB서버 내장)


-(MFC, .NET) ASP, ASPX -> IIS ->WAS 서버 (WEB서버 내장)



출처: https://jeong-pro.tistory.com/84 [기본기를 쌓는 정아마추어 코딩블로그]

출처 : https://blog.naver.com/2evergr/60181185157


우리는 오래전에 이미 수많은 개발 언어를 기반으로 원하는 환경에 적합한 개발했던 경험이 있었다.

Assemble, C, Basic, C++, Java, Pascal, Cobol, C#, Delphi 등.. 본인도 오래전에 여기에 있는 모든 언어들을 기반으로 대학에서 수업도 받았고 숙제도 했었다. 


그 당시에는 이 정도의 언어면 충분하다고 생각했었다. 그리고 웹 관련 개발 언어(JavaScript, PHP, ASP, JSP 등)에 대한 관심은 많지 않았고, 특히 JavaScript에 대한 천시하는 분위기까지 있었다. 


그런데 IT 환경 변화는 분명히 있었고, 기술 개발도 매우 빠르게 변해가는 모습이었다. 


분명한 것은 환경은 변화하고 있다는 것이다. 

따라서, 오래전 구식화된 모습의 개발 언어로 변화하는 기술에 대응하는 것에는 무리가 따르기 마련이다. 

그렇다면 환경에 적합한 개발 언어 및 프래임워크의 필요성은 두말할 나위가 없다.


새로운 언어를 개발하는 건 쉽지 않은 일이다. 

개발자들에게 사랑받는 언어가 되기까지는 오랜 시간이 필요하다. 

많은 수고가 필요함에도 주요 업체(Apple, MS, Google 등)은 왜 직접 프로그래밍 언어를 개발했을까? 


일단 개발 생태계를 확보하는 전략으로 풀이할 수 있다. 

수없이 개발되고 있는 하드웨어에 적합한 형태의 앱 개발이 이루어져야 한다. 즉, 해당 하드웨어로 표현하고자 정보를 구현하기 위해서는 수많은 개발자와 함께 앱 개발 생태계를 만들고, 그로 인한 부가가치를 창출해야 한다. 


이러한 생태계를 보다 적극적으로 지원하기 위해 애플 및 많은 업체들은 좋은 프로그래밍 언어와 프레임워크를 기업 차원에서 직접 지원할 수 밖에 없는 구조가 되었다. 


애플은 최근 스위프트를 iOS와 OS X 뿐만 아니라 애플와치 운영체제인 ‘와치OS(watchOS)’, 그리고 애플TV를 위한 운영체제 ‘TVOS’에 가장 적합한 언어를 선보이고 있다. Google은 Android 및 JavaScript를 기반으로 하드웨어에서 사용할 수 있는 양질의 콘텐츠를 앱 생태계에서 끌어올려는 것으로 보인다.


새로운 시대에 필요한 기능을 예전 언어로 구현하기 힘들기 때문이다. C, 자바, 오브젝티브 C등 기존에 많이 사용된 언어들은 10~30년 전에 개발된 언어들이다. 과거에는 모바일 기기도 없었고, 수많은 사용자들이 스마트 기기와 웹사이트에 몰리지도 않았다. 이미지, 동영상 등 사용자가 소비하는 콘텐츠도 과거와 많이 달라지고 있다. 

최근엔 새로운 기능과 현대 시대에 맞는 프로그래밍 방식을 언어 차원에서는 지원하는 경우가 늘고 있다. 

즉, 애플의 스위프트를 비롯해 구글이 만든 ‘고(Go)’, 모질라재단이 만든 ‘러스트(Rust)’, 젯브레인이 만든 ‘코틀린(Kotlin)’ 등이 대표적이다. 

우리가 매일 접속하는 웹사이트는 크게 3가지 요소로 구성된다. 

‘HTML(Hyper Text Markup Language)’, ‘CSS(Cascading Style Sheets)’, ‘자바스크립트(Javascript)’다. 

- HTML은 웹페이지의 큰 뼈대를 제공하고, 

- CSS는 색깔이나 글씨체와 같은 디자인 요소를 관리한다. 

- 자바스크립트는 크로스 플랫폼(crossplatform)6, 객체지향 스크립트 언어로 웹페이지의 동작을 담당한다. 

예를 들어 자바스크립트를 이용하면 ‘버튼을 클릭하면 밑에 날짜를 보여줘’라는 식의 명령을 내릴 수 있다.

자바스크립트를 이용하면 웹에 풍부한 효과를 넣을 수 있지만, 2000년대 초반만 해도 자바스크립트는 개발자들에게 무시당하는 언어였다. 별다른 기능도 없고, 성능도 별로 좋지 않았기 때문이다. 하지만 최근 몇 년 사이에 다양한 자바스크립트 프레임워크와 라이브러리가 생기면서 자바스크립트 생태계는 크게 확장되고 있으며, 그 위상도 점점 높아지고 있다.

프로그래밍 입문자들은 자바스크립트와 자바(Java)가 서로 비슷한 기술이라고 생각하곤 한다. 두 언어 모두 자바라는 단어를 사용하기 때문이다. 하지만 자바스크립트는 자바와는 전혀 관계가 없다. 언어를 만든 사람부터 기능과 사용법까지 완전히 다르다.

자바스크립트는 브랜든 아이크(Brendan Eich)가 개발했다. 브랜든 아이크는 1995년 넷스케이프에 근무하면서 자바스크립트 개념을 만들었다. 그는 처음에는 자바스크립트가 아닌 ‘모카(Mocha)’라는 이름을 붙였다. 모카는 1995년 12월 ‘라이브 스크립트(LiveScript)’라는 이름으로 바뀌었는데, 당시 자바가 큰 인기를 끌자 마케팅 효과를 노려 이름을 자바스크립트로 변경했다. 이후 자바스크립트 기술이 다양하게 발전했고, 이에 대한 표준과 명세를 ECMA 인터내셔널에서 관리하고 있다.


Java와 비교한 JavaScript

자바스크립트와 자바 비교 <출처: (CC-BY-SA) MDN(Mozilla Developer Network)




배우기 쉽고 확장성 높지만, 보안엔 취약해

자바스크립트는 다양한 장점과 단점을 가진다. 


먼저 장점부터 살펴보자. 

자바스크립트는 컴파일 과정이 없기 때문에 다른 언어와 비교했을 때 빠른 시간 안에 스크립트 코드를 작성할 수 있게 도와준다. 기존 C나 자바 언어와 달리 굉장히 단순한 구조와 원칙을 가지고 있기 때문에 초보 개발자들이 쉽게 배우고 이해할 수 있다.


예를 들어 자바스크립트 코드 안에서는 변수, 클래스 및 메소드를 선언하지 않아도 되고, 메소드가 ‘public’, ‘private’ 또는 ‘protected’인지 구분하지 않아도 된다. 이러한 특징은 개발자마다 서로 다른 방식으로 코드를 짜는 부작용도 있다. 그래서 구글이나 에어비앤비 같은 기업들은 ‘자바스크립트 스타일 가이드’라는 문서를 따로 만들어 읽기 쉽고 실수를 피할 수 있는 자바스크립트 작성법을 공개하기도 했다. 자바스크립트는 웹에 특화된 기술이기 때문에 운영체제나 플랫폼에 상관없이 잘 작동되고 확장성도 높다. 


단점은 성능이나 보안 측면이다. 

일단 내부에서 제공되는 기능이 제한적이고, 관련된 개발도구도 적은 편이다. 또한 자바스크립트는 HTML 소스코드에 함께 작성되면서 소스코드가 외부로 공개되는데, 이 과정에서 보안 취약점이 발생할 수 있다.


‘개발자가 가장 관심 많이 갖는 언어’로 꼽혀

깃허브에 작성된 소스코드 언어 종류. 2013년 이후 자바스크립트가 가장 많이 활용되고 있다. <출처: 깃허브 블로그>

개발자들의 대표 커뮤니티인 스택오버플로우는 2015년 157개국에 있는 사용자 2만6천여명에게 다양한 기술 관련 설문조사를 실시했다. 그 결과 자바스크립트는 ‘스위프트’와 함께 개발자들이 가장 많이 관심을 가지는 언어로 뽑혔다. 스택오버플로우는 설문조사 결과를 발표하면서 “자바스크립트는 가장 많이 사용하고 있는 프로그래밍 언어이며, 노드JS와 앵귤라JS가 눈에 띄게 성장하고 있다”라고 밝혔다. 오픈소스 개발자들이 많이 모이는 깃허브에서도 “자바스크립트가 소스코드 저장소에서 가장 많이 활용되고 있다”라는 통계를 공개했다. 그만큼 자바스크립트가 눈에 띄게 성장하고 있다는 뜻이다. 오픈소스 커뮤니티처럼 개인 개발자가 만든 기술도 많지만, 기업이 직접 자바스크립트 기술을 배포해 사용자를 모으는 경우도 적잖다.

특히 최근에는 자바스크립트 관련 라이브러리나 프레임워크가 개발자들 사이에서 큰 화제다. 위키피디아에 올라온 ‘자바스크립트 라이브러리 목록’을 보면 관련된 기술이 90여개인데다 데이터과학, 이용자조작화면(UI), 서버 등 활용 분야도 다양하다. 다음은 최근 큰 인기를 끄는 자바스크립트 기술들이다.

자바스크립트 관련 기술들 로고 <출처: 각 홈페이지>



해당 영역을 선택하시면 가이드 사이트로 이동합니다. 

Vue.js Guide


JavaScript


https://m.post.naver.com/viewer/postView.nhn?volumeNo=17110897&memberNo=15488377&vType=VERTICAL


자바 스크립트 세계가 빠르게 움직이기 때문에 JavaScript 관련된 프레임워크를 이해할 필요가 있다.


React.JS

React에서는 모든 것이 JavaScript만으로 매우 심플하고 우아한 느낌을 준다. 


React.js는 사용자 인터페이스를 만들기 위한 자바스크립트 라이브러리다. 

페이스북이 만든 기술로, 2013년에 공개됐다. 

커스텀 태그, 가상 DOM, 단방향 데이터 바인딩 기능을 제공해 주목을 받고 있다. 

워드프레스, 넷플릭스가 리액트JS를 사용하고 있다.

리액트JS 기술의 강점은 모바일 쪽에서 활용되고 있다는 것이다..


React에서 모든 컴포넌트는 JavaScript에서 작동하는 선언적 XML 유사 구문인 JSX를 사용해 렌더링 함수 안에서 UI를 표현하는 형식을 취한다. 



AngularJS (Angular 1)

앵귤라JS(Angular.js)는 웹 애플리케이션 프레임워크로, 개발과 테스트 환경을 단순화시킨 기술이다. 

구글이 직접 만들었으며, 현재 버전은 2.0까지 나왔다. 

해외에는 ‘앵귤라JS잡닷컴’이라는 구직 웹사이트가 있을 정도로 앵귤라JS의 인기는 높다. 

앵귤라JS는 JQuery 및 JavaScript UI 컴포넌트를 쉽게 재사용할 수 있다. 

양방향 데이터 바인딩을 통해 불필요한 코드를 제거해 향후 유지보수를 쉽게 할 수 있는 장점도 지녔다.

Angular는 TypeScript가 필수적인데, TypeScript를 사용하면 Java와 C#을 다루던 사용자에게 생산성을 올려주고 정적 타입 체크 등의 많은 이익이 있다. 


소규모 사례에서 TypeScript를 사용하면 생산성 향상보다 많은 오버헤드가 발생할 수 있기 때문에 

대규모 프로젝트에 적합할 수 있다고 한다. 


VUE.JS

Vue.js는 웹 개발을 단순화하고 정리하기 위해 개발된 대중적인 자바스크립트 프론트엔드 프레임워크이다.

웹 UI 개발(컴포넌트, 선언형 UI, 핫 리로딩, 타임 트래블 디버깅 등)에 접근의 용이성이 뛰어나며, 개발자들이 익히기에 쉽다.


Vue는 Evan You에 의해 개발되었는데, Angular 장점만을 가지고 만들어진 것이므로 대중적 성격의 인기를 끌고 있다. 리액트에 이어 2번째로 대중적인 자바스크립트 프레임워크/라이브러리로 인정받고 있다. 



D3.JS
D3는 ‘Data Drivened Document’(데이터 기반 문서)의 약자로, 자바스크립트 라이브러리다. 데이터와 이미지를 함께 묶어 표현해줘 데이터 시각화를 웹페이지에서 표현할 때 많이 사용된다.



Ember

Ember는 완전한 기능의 프레임워크로 평가받고 있다. 

익숙해지기까지는 오랜 시간이 소요되지만, 일단 익숙해지면 생산성을 높일 수 있다는 장점을 가진다. 


Knockout



Polymer

Polymer는 Google이 후원하는 또 다른 프로젝트이며 실제로 Vue의 영감의 원천이었다. 

Vue의 컴포넌트는 Polymer의 사용자 지정 엘리먼트 등 매우 유사한 개발 스타일을 제공한다. 

Polymer는 최신 웹 컴포넌트 기능을 기반으로 한다. 



Riot

Riot 3.0은 작고 아름답게 디자인 된 API를 사용하여 유사한 컴포넌트 기반 개발 모델 (Riot에서 “태그”라고 함)을 제공한다. 



Node.JS

노드JS(Node.js)는 자바스크립트 엔진 ‘V8’ 위에서 동작하는 이벤트 처리 I/O 프레임워크다. 

서버 환경에서 자바스크립트로 애플리케이션을 작성할 수 있게 돕는다. 

노드JS의 장점은 비동기 프로그래밍이다. 

비동기는 이벤트를 요청하고 바로 결과를 받지 않아도 된다. 

따라서 결과값을 기다리지 않고 보다 다양한 요청을 처리할 수 있다. 

웹 분야에서는 비동기 프로그래밍을 쓰는 경우가 드물었는데, 노드JS로 비동기 프로그래밍을 비교적 쉽게 할 수 있게 됐다.







IT 개발 관련해서는 여러 웹 개발 언어가 있다. 

언어별로 각자의 장단점이 있기 때문에, 여러가지 기술을 각자 배운 개발자들이 - 

특히, JavaScript와 관계된 언어(React JS, VUE JS, Angular JS) 그리고 JAVA와 C#과의 연계 등

각자의 언어로 모든 서비스를 단일하게 통일시켜 만드는 것이 기존의 패러다임이었다. 


그러나 최근 들어서는 각각의 기능을 개발하기에 효율적이라 여겨지는 언어들로 개별 내용들을 개발하고. 그 모듈들을 계층화하여 연결하는 형태의 웹 개발이 늘어나고있다. 


기존의 상황이 한가지 언어를 선택하면 - 그 언어로 개발된 다른 기능들을 만들기 위해 - 해당 개발자들과만 협업해야하는 상황이었는데. 이제는 굳이 한가지 언어만을 고집할 필요가 없어진 것이다. 

실제로 모듈러 형식의 웹개발에서는 다양한 언어를 기반으로 만들어진 모듈들이 연결되어있다. 

당연히 서로 말이 통해야하므로, 모듈간 통신이 중요해진다. 

여기에 쓰이는 것이 바로 Json이다. 


Json기반으로 각각의 모듈이 보내는 통신 규격을 변환해서 - 각각의 모듈이 일관적인 정보를 받아볼 수 있도록 만드는게 모듈러 형태 개발의 핵심이다. 



Java Script 기반 프레임워크 - 리액트, 뷰, 앵글러

자바스크립트라는 언어는 웹 상에서 HTML을 다루고, 내용을 변경할 수 있는 편리한 언어다. 

그러나 기본적으로 모든 언어는 그 자체만으로 완벽할 수는 없다.

그러한 이유로 규격화하고, 단순하게 사용할 수 있는 프레임워크가 만들어졌다. 


현재 전 세계에서 세가지 프레임 워크가 서로 경쟁을 벌이고있는데, 그중에 가장 유명한 것 세가지가 리액트 (React JS), 뷰 (Vue JS). 앵글러 (Angular JS)다. 



전자신문인터넷 뉴스레터2019년 1월 18일자
 
안녕하세요. 성경상 회원님의 'IT소식지' 입니다.
시만텍코리아 웨비나
시만텍코리아 웨비나
본 메일은 고객님께서 맞춤메일 수신을 동의하셨기에 정보통신망이용촉진 및 정보보호등에 관한 법률 시행령 제 50조 제 4항에 의거하여 발송 되었습니다. 본 메일의 정기구독을 취소하시려면 [여기] 를 클릭해 주세요.
 
You agreed to receive the e-mail newsletter by signing up for it on . If you want to unsubscribe, please click HERE
 
 
서울시 금천구 가산디지털2로 123, 701호 (월드메르디앙벤처센터 2차) 
대표자: 이선기 사업자등록번호: 107-81-80959 대표전화: 02-857-0114
전자신문인터넷
 
Copyright Electronic Times Internet. All Rights Reserved.


 

The Ransomware X.gif


안녕하십니까, 트렌드마이크로입니다.

2019년 기해년에는 고객 여러분들의 소망하는 바 모두 이루시고 행복이 가득 피어나는 한해가 되시길 기원합니다.

트렌드마이크로는 서버 보안의 선두주자로써 고객 여러분을 더 가까운 거리에서 지원할 수 있도록 소규모 고객 워크샵, 웨비나 등 다방면의 노력을 기울이고 있습니다.
즉각적인 Q&A와 전문가와의 만남을 통해 귀사의 환경에 맞춘 보안 컨설팅을 받으실 수 있는 기회를 놓치지 마시기 바랍니다.

2019년 트렌드마이크로의 첫번째 정기 고객 워크샵과 웨비나의 주제는 아래와 같습니다.

  • 고객 워크샵: 새로운 엔드포인트 공격 대응을 위한 차세대 EDR 솔루션 "APEX One

  • 웨비나: 리눅스 타겟 공격 급증에 대응한 서버 보안 방법론



고객 여러분의 많은 참여 부탁드립니다.

감사합니다.
트렌드마이크로 드림
 



고객 워크샵
- 새로운 엔드포인트 공격 대응을 위한 차세대 EDR 솔루션 "APEX One"  
날짜:2019년 1월 29일 (화)
시간:오후 12시 ~ 3시
장소: 
트렌드마이크로 사내 교육장


*고객 워크샵은 고객 우선 참석 워크샵이므로 파트너 분들께서는 제외되실 수 있음을 알려드립니다.
*상기 날짜는 신청 인원에 따라 조정될 수 있음을 알려드립니다.
*워크샵 당일 점심 도시락과 1시간 무료 주차권이 제공됩니다.
등록하기 >>
웨비나
- 리눅스 타겟 공격 급증에 대응한 서버 보안 방법론 
날짜:2019년 1월 22일 (화)
시간:오후 3시 ~ 3시 45분
장소: 
온라인 Live


*설문지를 작성해주신 분들 중 추첨을 통해 드론을 드립니다.
등록하기 >>

트렌드마이크로  |  랜섬웨어 대응센터  |  보안블로그  |  기업고객  |  다운로드센터  |  기술지원
(주)한국트렌드마이크로
서울특별시 강남구 영동대로 416 KT&G타워 3층 (우 06176)
tel. 02-561-0990   fax. 02-561-0660  
Copyright © 2019 Trend Micro Incorporated. All rights reserved.



 단계

산출물

대 

중 

소 

 

 

 요구분석

현행시스템 분석서 

 ○  ○  ○

 

 

 요구사항 정의서(명세)

 ●  ●  ●

 

 

 아키텍쳐 정의서

 ●  ●  ●

 

 

 개발표준 정의서

 ●  ●  ○

 

 

 업무기능 분해도

 ●  ●

 

 

 프로세스 다이어그램

 ●

 ●

 ○

 

 

 프로세스 명세서

 ●

 ●

 ●

 

 

 ui 목록

 ●

 ●

 ●

 

 

 UI 정의서

 ●

 ●

 ●

 

 

 인터페이스 정의서 ● ● ●  
 매핑&GAP 분석서 ○

 ○

 ○  
 논리ERD ● ● ○  
 ENTITY 정의서 ● ● ○  
 데이터이행 계획서 ○ ○ ○  
 테스트 전략서

 ○

 ○ ○  
 소계11 11   

 설계

ui정의서(설계) 

 ● ● ○  
 인터페이스정의서(설계) ● ● ●  
 프로그램 목록 ● ● ●  
 프로그램명세서 ● ● ●  
 물리erd ● ● ●  
 TABLE 정의서 ● ● ●  

 DATABASE 정의서

 ● ●   
 코드정의서 ● ● ●  
 데이터이행시나리오 ○ ○ ○  
 테이블/컬럼/코드 매핑 정의서 ○ ○ ○  
 테스트 계획서 ● ● ○  

 단위 테스트 케이스

 ● ● ○  
 소계 10

10 

  
 구현 시스템오픈 계획서 ● ● ○  
 프로그램 소스코드 ● ● ●  
 데이터이행(테스트) 결과서

 ○

 ○ ○  
 단위테스트게이스/로그 ● ○  
 단위테스트 결과서 ● ○ ○  
 통합테스트 시나리오/케이스 ● ● ●  

 시스템테스트 케이스

 ○ ○ ○  
 교육훈련 계획서 ○ ○ ○  
 소계 5

 4

 2  
 테스트 및 이행통합테스트 게이스/로그  ● ● ●  
 통합테스트 결과서 ● ● ○  
 결함추적(통합테스트) ● ● ○  
 시스템테스트 케이스/로그 ○ ○ ○  
 시스템테스트 결과서 ○ ○ ○  

사용자 메뉴얼

 ● ● ●  
 운영자 메뉴얼 ● ● ●  
 인수테스트 결과서 ● ○ ○  
 결함 추적(인수테스트) ○ ○ ○  
 교육훈련 결과서 ● ○ ○  
 데이터 이행 결과서 ○ ○ ○  
 시스템 오픈점검 결과서

 ●

 ● ●  
 소계  
  총합계34 31 18   
       


'학습분야(IT) > 웹기획' 카테고리의 다른 글

웹 접근성 이해  (0) 2018.11.25
용어 설명  (1) 2018.10.10
[도구] PowerMockup  (0) 2018.10.05
1. 웹 기획 - 개요  (0) 2018.10.04

+ Recent posts