View
컴퓨터 공부를 한지 꽤 오래 되었음에도 불구하고 Web이랑은 벽을 쌓고 지냈지만, 요즘들어 JS 코드를 볼 일이 많아졌다. 주어진 시간이 많지 않아 꼼꼼히 하나하나 확인하기 어렵지만, 간이라도 맞추기 위해 나무위키에서 찾아 끄적여 보았다.
JavaScript (JS)
- 동적으로 웹페이지를 생성하기 위해 사용되는 언어.
- HTML, CSS, JavaScript가 웹 구성의 3요소 정도로 인식되고 있다.
- HTML이 웹 페이지의 기본 구조를 담당하고, CSS가 디자인을 담당한다면 JavaScript는 클라이언트 단에서 웹 페이지가 동작하는 것을 담당한다.
- 브라우저 내에 스크립트엔진(interpreter)가 존재하여 client 에서 동작하여 웹페이지를 생성함. Java와 Javascript는 별개의 언어이다.
(HTML - 웹 페이지 구조 담당 // CSS - 웹 페이지 디자인 담당 )
AJAX
- Asynchronous JavaScript and XML, 비동기 정보 교환 방법.
- XML/JSON을 이용해서 데이터를 전송한다.
- 프로그래밍 기법으로 변경되는 부분(Java script)과 변경되지 않은 부분(HTML/CSS)을 구조적으로 분리한다.
- 웹 페이지의 구조를 담고 있는 template 를 가지고 동적으로 웹 페이지를 작성하게 된다. (ajax 를 사용하지 않는다면 웹페이지에 변경이 있을 때 마다 HTML 전체를 그려줌으로 깜빡이는 현상이 발생한다.)
- 단점으로는 동적으로 웹페이지가 생성되기 때문에 검색엔진에 데이터가 검색되지 않는 다고 하는데 google은 그런것 조차 검색이 가능하단다...
JQuery
- JS plugin 으로 DOM(Document Object Modeling)를 지원한다
Node.js
- google v8 + asynch library 를 사용한 Javascript 엔진으로 서버를 구축가능하도록 하는 SW 플랫폼
- NPM을 사용하여 node.js 용 패키지 관리/배포를 한다.
CommonJS
- Json+asynch 기반으로 JS를 브라우저에서 뿐아니라 server-side 에서도 사용하려 하는 자발적 working group 이다.
JSON / XML
- 마크업 언어의 한가지로 태그등을 이용하여 데이터의 구조를 기술하는 언어이다. server to client 로 데이터를 전달할 때 사용된다.
- JSON 이 요즘 더 선호되는데 XML에 비교하여 가독성 및 성능이 좋다. 하지만 주석이 없고 데이터 타입 바인딩이 불가능하며, 문법 오류에 민감하다
AngularJS
- front end clinet JS library
Angular
- JS framework 로 back-end/front-end의 작업을 동시가 할 수 있도록 지원한다
React
- JS UI component library로 HTML 및 CSS를 JS로 제어한다
JSP
- Java Server Page, JSP로 작성 > servlet class로 변환 > servlet container 로드 > tomcat 에서 구동하는 형태로 동작한다.
- 안정적이고 유지보수가 보다 쉬워서, Enterprise 용으로 적합하다
PHP
- PHP Hyper text Preprocessor로 재귀적 약자. 소규모 웹페이지 제작을 통해 사용하는데, 상대적으로 가볍고 개발이 빠르다. 하지만 협업 및 성능개선이 어려워 enterprise 환경에서는 잘 활용되지 않는다.
ASP - Active Server Pages, 스크립트 엔진으로 MS 기반 기존 언어를 웹에서 사용가능하도록 하며, windows에 최적화 되었다.
ASP.NET
- 닷넷 framework 위에서 구동되는 server-side 웹 프레임워크 * 끄적끄적..
- JS 가 web 이외의 개발도 하게 됨으로써 입지가 높아지고 있다. 기능이 정말 다양해지고 사용하기 쉬워진것 같다. 조금씩 알아갈 수록 신기한게 많다.
- 전체적으로 절차지향 > 객체지향 > 함수형 > 반응형으로 가고 있어서 시대의 흐름을 잘 타고 가고 있지 않나 싶다
- 하지만 반대로 과도한 기능의 확장으로 인하여 잡탕이되고 있다는 지적도 있으며 장점이자 단점으로 library들이 많다
- 학부생 시절때만 하더라도 java는 느리다는 생각에 C/C++ 진형의 언어를 더 선호 했었지만, 결국 JUST-IN-TIME (인터프리터 기반의 언어들에서 runtime에 필요한 부분을 컴파일 하고 cache에 올려 인터프리팅에서 재사용하는 방식)로 인해 인터프리트 언어들의 성능이 향상되어 지금 유행하고 있는게 아닌가 싶다
- 흔히들 말하는 프론트앤드Front-end(UI/UX,view작성,CSS)와 백앤드back-end (JSP/Spring/DB)의 범주에 포함된 기술은 너무나도 다양하지만, 어쩌다보니 난 백앤드쪽에 자리잡고 있는게 아닌가 싶다. 나쁘진 않지만 지속적으로 프론트앤드의 발전하는 기술에 관심을 두어야 할 것 같다.
'02.IT공부(간헐적취미) > IT뉴스' 카테고리의 다른 글
2019, Seoul Google Cloud Summit 참관 후기 (0) | 2019.11.06 |
---|---|
[IT사설] 데이터 엔지니어, 데이터 분석가 그리고 데이터 사이언티스트 차이 (2) | 2018.11.03 |
[끄적끄적] Apache Storm, Hbase, 빅데이터 보안, Flume&Kafka (0) | 2017.12.28 |
[Python] Centos-6 에서 최신 Python 모듈 사용하기 (0) | 2017.11.08 |
[Ivy & Ant] Ant 빌드 시 Ivy에서 lock과 관련된 에러 메세지 발생하는 경우 (0) | 2017.09.24 |