WIL 3 ( Weeked I Learned ) - 22/05/29

용스·2022년 5월 29일
0

WIL

목록 보기
3/15

DOM이란?

문서 객체 모델(The Document Object Model, 이하 DOM) 은 HTML, XML 문서의 프로그래밍 interface 이다. DOM은 문서의 구조화된 표현(structured representation)을 제공하며 프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법을 제공하여 그들이 문서 구조, 스타일, 내용 등을 변경할 수 있게 돕는다. DOM 은 nodes와 objects로 문서를 표현한다. 이들은 웹 페이지를 스크립트 또는 프로그래밍 언어들에서 사용될 수 있게 연결시켜주는 역할을 담당한다.

웹 페이지는 일종의 문서(document)다. 이 문서는 웹 브라우저를 통해 그 내용이 해석되어 웹 브라우저 화면에 나타나거나 HTML 소스 자체로 나타나기도 한다. 동일한 문서를 사용하여 이처럼 다른 형태로 나타날 수 있다는 점에 주목할 필요가 있다. DOM 은 동일한 문서를 표현하고, 저장하고, 조작하는 방법을 제공한다. DOM 은 웹 페이지의 객체 지향 표현이며, 자바스크립트와 같은 스크립팅 언어를 이용해 DOM 을 수정할 수 있다. - 출처 : MDN Web DOC

문서 객체( Document Object )란?

문서 객체란 <html>이나 <body> 같은 html문서의 태그들을 JavaScript가 이용할 수 있는 객체(object)로 만들면 그것을 문서 객체라고 한다.

Tree 구조의 DOM

DOM은 Tree 구조로 되어있다고 한다. 그럼 Tree라는 것은 무엇일까?

root node에서 시작됩니다. 그런데 나무는 땅에서 솟아서 점점 위로 뻗어나가지만 tree형 자료구조는 흔히 위의 root node에서 아래로 퍼져나가는 형태로 그립니다.

tree에서는 위쪽의 node를 부모(parent) 노드 아랫쪽 노드를 자식(child)라고 합니다. root node는 가장 위에서 시작되는 node이니까 parent가 없는 node가 됩니다. 그리고 children(자식)이 없는 node를 leaf node라고 합니다. 뿌리(root)에서 시작해서 잎(leaf)에서 끝나는 것이죠. - 출처 : 쉽게 읽는 프로그래밍

DOM에 포함된 <p> 태그를 더 자세히 본 그림
<p>태그에도 자식 노드(childNode)들과 속성(attribute)들이 트리 형태로 자료 구조를 형성하고 있다. 우리는 DOM 객체에 먼저 접근하고 또 키워드를 통해서 필요한 노드에 접근해서 우리가 필요로 하는 작업들을 할 수 있다.

Node 란?
Tree 구조에서 root 노드를 포함한 모든 개개의 개체를 node라고 표현

Server + less = Serverless란?

직역하면 "서버가 없다"라는 의미이지만, 서버를 직접 관리할 필요가 없는 아키텍처를 뜻해서 Serverless라고 부른다.

서버리스는 사용자가 없다면 자원을 할당하지 않고 대기하다가 요청이 들어오면 그 때 자원을 할당해서 요청을 처리하고 다시 대기 상태로 들어가게 된다. 자원을 효율적으로 사용할 수 있는 것입니다.
비용 또한 대기상태를 제외한 실제 사용 자원에 대해서만 청구가 되기 때문에 굉장히 경제적입니다.
게다가 이 서버는 클라우드 제공 기업에서 전적으로 관리하기 때문에 사용자는 스케일링, 업데이트, 보안 등 서버에 대해 일절 관리하거나 신경 쓸 필요가 없어집니다. 서버를 고려하지 않고 서비스와 애플리케이션에 집중할 수 있게 되는 것이죠.
요약하자면 '기존 클라우드 컴퓨팅 모델에 비해 경제적이고 가용성이 좋은 모델이 서버리스다' 라고 생각하시면 될 것 같습니다. - 출처 : 개발하는 중생 블로그

서버리스의 구분 ( FaaS와 BaaS )

서버리스는 FaaS와 BaaS로 나눌 수 있다.

FaaS

서비스로서의 기능(FaaS)은 이벤트 기반 컴퓨팅 실행 모델로, 개발자가 작성하는 로직은 플랫폼에서 전체를 관리하는 컨테이너로 배포된 후 온디맨드로 실행된다.

BaaS와 달리 FaaS는 사전 작성된 서비스 라이브러리에 의존하지 않고 사용자 정의 애플리케이션을 생성하는 개발자에게 더 많은 제어 권한을 제공한다.

코드는 클라우드 제공업체가 관리하는 컨테이너에 배포됩니다. 이러한 컨테이너에는 다음과 같은 특징이 있다.

  • 스테이트리스(stateless): 데이터 통합이 더욱 간소화됨
  • 일회성: 매우 단기간에 실행 가능
  • 이벤트에서 트리거: 필요에 따라 자동으로 실행 가능
  • 전체 관리형: 클라우드 제공업체가 관리를 전담하므로 상시 가동 애플리케이션 및 서버 대신 필요한 만큼만 비용 지불

FaaS를 활용하면 개발자는 API를 통해 서버리스 애플리케이션을 호출할 수 있고, FaaS 제공업체는 이를 API 게이트웨이를 통해 처리한다.

BaaS

앱 개발에 있어서 필요한 다양한 기능들 (데이터베이스, 소셜서비스 연동, 파일시스템 등)을 API로 제공해 줌으로서, 개발자들이 서버 개발을 하지 않고서도 필요한 기능을 쉽고 빠르게 구현 할 수 있게 해준다.

BaaS의 장점은

  • 개발 시간의 단축
  • 서버 확장 작업의 불필요함
  • 백엔드에 대해서 지식이 별로 없더라도, 아주 빠른 속도로 개발이 가능
profile
일단 해보자

0개의 댓글