[ IT 5분 잡학사전 2주 챌린지 6일차. ]

 

 

인터넷 익스플로러 사라진 이유/브라우저 엔진

웹 브라우저의 핵심 프로그램 : ‘브라우저 엔진’ or ‘렌더링 엔진’ 이라고 함.

파이어폭스 : 게코(gecko)
사파리 : 웹킷(webkit)
크롬 : 블링크(blink)

자바스크립트에는 에크마스크립트(ECMAScript)라는 표준안이 있고, 이를 웹 브라우저에서 실행할 수 있께 해주는 프로그램 엔진이 있다. 크롬 브라우저의 엔진은 v8이라고 하는데- v8엔진은 크롬뿐아니라 노드제이에스, 디노와 같이 자바스크립트를 해석해야 하는 곳에서도 쓰임. (**렌더링 엔진과 자바스크립트 엔진은 다름)

즉, 브라우저는 엔진이라는 것을 장착해서  HTML, CSS, JS를 이해할 수 있는 것. 이 엔진의 성능이 바로 웹 브라우저의 성능을 결정하므로 엔진이 최신 표준안, 최신 기술을 지원한다면 최신 웹 브라우저가 된다.

2003년에는 인터넷 익스플로러의 시장 점유율이 95%였으나 그때부터 급격히 떨어지기 시작함. 수많은 보안 취약점이 발견되었고 빨리 고쳐지지 않았기 때문. 그동안 다른 웹 브라우저들이 발전했고 사파리, 크롬 등 타 브라우저들은 더 좋은 엔진을 갖추게 되었다.

마이크로소프는 인터넷 익스플로러 지원을 결국 중단하고, 마이크로소프트 엣지(Microsoft Edge)라는 웹 브라우저를 새로 개발해서 발표함. 재미있는 점은 엣지 웹 브라우저의 엔진이 크롬 브라우저의 엔진인 블링크라는 점…! 그만큼 엔진 개발이란 힘든것이다하하..<

 

 

 

HTTP 쿠키

어떤 웹에 방문시 브라우저를 통해 우리 컴퓨터에 보관하는 기록물.

*HTTP는 HyperText Transfer Protocol의 줄임말.
인터넷에서 정보를 주고받기 위한 일종의 규칙(프로토콜)

우리와 서버는 항상 연결되어 있지 않음. 서버는 가끔 우리가 누구인지 기억해야하기에 쿠키가 필요한 것이다.

쿠키에도 규칙이 있다.
1. 도메인 1개에만 한정
ex. 페이스북에서 생성된 쿠키는 넷플릭스에 보낼 수 없다. 
2. 자동으로 보낸다
3. 컴퓨터에 자동으로 저장된다

 

 

* 개발자라면  알아야하는 브라우저 익스텐션

ColorZilla
Momentum
CSSViewer
JSON Viewer
React Developer Tools
WhatFontGrid
RulerBuilt
With Technology Profiler
: 빌트위드 테크놀로지 프로파일러는 웹이 어떤 기술로 만들어졌는지 알려주는 익스텐션..! 
ex. 인스타는 어떤 기술로 만들어졌을까? etc. 

 

 

 

프런트엔드/백엔드 장단점

프런트엔드 기술은 너무 빨리 발전해서 개발자가 공부해야 할 내용이 진~~짜 많다. 이 점이 단점..! 자바스크립트 피로(JavaScript Fatigue)라는 단어까지 있을 정도. 끊임없이 발전하고 업데이트해야하는 환경이기에 꾸준히 했음에도 마스터했다는 기분이 들지 않는 기술이다. 그럼에도불구, 그만큼 관련 기술이 활발히 논의되므로 기회도 많다(:

프런트엔드 장점 : 작업한 것을 바로 볼 수 있음. 코드를 입력하면 피드백이 바로 옴. 

백엔드의 큰 장점은 개발 환경이 프런트엔드에 비해 안정적. 장고(Django), 루비온레일즈(Ruby on Rails)와 같은 도구는 정말 안정감있다.. 노드제이에스는 빨리 변하는 편이라는 의견도 있지만- 프런트엔드 기술만큼 변하진 않음< 

자바, 루비, 장고, 파이썬 플라스크 등 기술 선택지가 다양한 점도 장점 중 하나! 단점으로 꼽는다면, 사용자와 거리가 멀어서 흥미가 떨어질 수 있다는 점. 

 

서버는 모니터가 없는 컴퓨터이며 365일 24시간 내내 인터넷에 연결되어 있어야 하고- 크기는 저장소와 메모리 모두 어마어마하다.

사용자가 요청했을 때, 네트워크에 연결된 컴퓨터가 실행하는 코드를 서버라고 생각하면 된다. 그 코드는 우리가 어떤 URL을 입력했을 때 그에 맞는 행동을 함. 즉, 서버는 항상 켜져있는 컴퓨터이면서 인터넷에 연결되어 있고 접속 요청에 응답하는 컴퓨터다.

 

 

 

풀스택은 프런트엔드, 백엔드, 데브옵스(DevOps).

DevOps : 소프트웨어의 개발과 운영의 합성어. 소프트웨어 개발자와 정보 기술 전문가 사이에 소통, 협업, 통합을 강조하는 개발 환경이나 문화.

 

 

 

프런트엔드 

사용자가 보는 화면의 인터페이스, user interface(UI)라고 함. 사용자와 상호작용하는 것이 사용자 인터페이스다. 웹 사이트를 이용할 때 볼 수 있는 버튼, 입력란, 애니메이션, 반응형 디자인 etc.

이런 걸 개발하는 사람이 프런트엔드 개발자. 프런트엔드 개발은 HTML, CSS, 자바스크립트, 리액트, 제이쿼리, Vue.js 등 다양한 기술을 공부해야 할 수 있다. 이 기술들은 모두 사용자와 상호작용하기 위한 것!(:

 

 

 

백엔드

사용자가 눈으로 볼 수는 없지만, 실제로는 사용해야 하는 기능. 계정 생성, 동영상 업로드, 댓글 저장 기능 etc. 

백엔드 개발자는 PHP, 자바, 파이썬, 자바스크립트, C# 등 많은 언어를 공부해야함.

 

 

 

풀스택개발자

프런트엔드, 백엔드, 데브옵스를 모두 다 할 수 있는 개발자. 웹 페이지의 화면도 만들어야 하고, 데이터베이스에 데이터를 저장하기도 해야 하며- 완성된 프로그램을 서버에 올려야 하는 모든 과정을 전부 다 자세히 알아야 하므로 어렵다. 

but 풀스택개발자라면 1인 스타트업 빌딩 가능..! (기획력도 있는 가정하)

*주의할 점

가끔 풀스택 개발자는 무조건 모든 영역을 다 개발해야 한다고 생각하지만, 할 수 있는 것과 하는 것은 엄연히 다르다. 그래서 역할과 책임이 어디까지인지 명확히 체크할 것! 풀스태 개발자라고 해서 모든 일을 다 해야 하는 것은 아니다. 

ex. 풀스택 개발자 취업시 점검 사항

> 백엔드로 노드제이에스 아니면 파이썬을 사용하나요?
> 데브옵스는 할 수 있지만, 개발에 더 집중하고싶은데 개발 프로세스가 궁금해요!
> 팀원은 몇 명이죠?

 

서버리스

예전에는 서버를 전부 수동으로 관리했지만 아마존이 EC2서비스를 선보인 이후 서버는 우리곁을 떠남. EC2는 아마존 엘라스틱 컴퓨트 클라우드(Amazon Elastic Compute Cloud)를 말하는데 최신 서버를 정전이나 각종사고없이 안전하게 제공, 관리해주는 서비스다. 심지어 서버의 메모리도 원하는만큼 신청해서 사용할 수도있지만 이런 서비스들은 하드웨어를 제공/관리해줄 뿐, 서버의 소프트웨어 관리는 여전이 우리가 해야함.

그런데 서버리스가 등장..! (꺄) 서버리스는 우리가 등록한 함수가 실행된 만큼만 돈을 내면된다. 외부에서 그 함수를 실행하는 요청이 들어오면, 함수가 깨어나서 실행되고, 무언가를 수행하면 그때 돈을 내는 것. 요청이 없으면? 함수는 잠만 잤을 테니 돈을 낼 필요가 없다. 


서버리스의 2가지 단점

1. 서버리스의 함수는 잠에서 깰 때 시간이 필요하다(콜드 스타트)

AWS(Amazon Web Services)가 함수를 깨우려면 시간이 필요하다. 24시간 온라인을 제공하는 서버보다 응답시간이 조금 더 필요. 응답시간은 밀리초 단위인데 그 시간도 매우 중요한 서비스라면 서버리스는 좋은 선택이 아닐 수 있다. 

2. 서버 제공자에게 지나치게 의존함

만약 우리가 서버리스를 사용한다면 AWS와 결혼한 것과 같다. 단순히 함수를 빼서 다른 서비스로 이사를 갈 순 없기에…! 즉, 서버리스는 편리한 만큼 함수의 형태가 서비스에 딱 맞아 떨어지는 형태라서, 지금 사용하는 서버리스 서비스에서 타회사의 서버리스 서비스로 옮기기는 쉽지 않다.


서버리스는 누가 쓰는게 좋을까?
: 사이드 프로젝트를 하는 사람이나 프로토타입을 최대한 빠르게 출시하고 싶은 기업에게 추천. 서버리스로 작업하면 코드에 집중해서 작업가능. 서버를 준비할 땐 설정 작업도 중요. 서버리스는 그런 설정 작업이 적은 편이라서, 서버를 빠르고 쉽게 구축하고 서비스를 출시할 수 있다.


서버리스 배울 수 있는 곳
ex. serverless.com / AWS 람다 / Google Cloud Functions / Apex / Terraform

 

반응형