- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 항해99
- react
- 리액트
- typescript
- nestjs
- typeorm
- 주식차트
- 에러
- javascript
- 차트만들기
- 차트구현
- Firebase
- 3주차
- apollo
- chart
- Redux
- nextjs
- Flutter
- 채팅
- graphql
- 주식
- 코인
- Coin
- API
- rtk
- 차트
- error
- 코인차트
- websocket
- 비전공자
Act99 기술블로그
항해99 - Week03 회고록 / DOM & SERVERLESS 본문
DOM
DOM 이란 Document Object Model 의 약자로, 문서 객체 모델이며, 문서 객체란 html 이나 body 와 같은 html 문서의 태그들을 Javascript 가 이용할 수 있는 객체로 만든 것을 말한다.
즉, DO => Document Object 에 M Model 이 합쳐진 DOM은 문서 객체를 인식하는 방식이라고 생각하면 되며, 웹 부라우저가 HTML페이지를 인식하는 방식을 의미한다. 다른 말로, document 객체와 관련된 객체의 집합이라는 것이다.
DOM은 tree 자료구조로 형성되어 있는데, root 노드로부터 leaf node 로 뿌리내리는 형태로 이루어져 있다.
Javascript로 문서 객체를 생성한다는 의미는 가장 주로 사용되던 HTML 페이지에 적혀 있는 태그를 읽으며 생성하는 정적 문서 객체 생성이 아닌 HTML 페이지에 없던 문서객체를 Javascript를 이용해 동적으로 생성한다는 것을 말한다.
Serverless
서버리스란 개발자가 서버를 관리할 필요 없이 어플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델이다. 기존 개발 모델의 경우 자체적인 시스템 설계 (시스템에 필요한 모든 인프라를 직접 관리하는 것)과 IaaS (AWS, Azure 등의 서비스), PaaS (AWS Elastic Beanstalk, Azure App Services) 등으로 서버에 필요한 모든 시스템 환경을 구축해야하기 때문에 상당히 고도의 기술이 필요하고 이 인력에 대한 비용이 나갔지만, Serverless가 생기면서 서버가 어떤 사양으로 돌아가고 있는지, 서버의 갯수를 늘려야하는지, 네트워크는 어떤 걸 사용할지 등의 고민을 덜어주게 되었다. Serverless의 방식은 BaaS (Backend as a Service) 와 Faas (Fuction as a Service) 로 크게 나뉘는데, BaaS 는 쉽게 생각해 Firebase라고 생각하면 된다. 원래 서버를 개발하다보면 고려 사항이 매우 많은데, Firebase는 개발자들(users)이 서버 개발을 하지 않고서도 필요한 기능을 쉽고 빠르게 구현할 수 있게 해준다. 가장 큰 장점은 개발 시간의 단축과 초기 개발비용에서 적게든다는 점이 있다. 하지만 단점은 백엔드 로직들이 클라이언트쪽에 구현이 된다는 점이다. 가령, ㅇ이메일 발송, 결제 처리 등의 작업들을 클라이언트에서 수행해야 된다는 것이다. 또 다른 단점은 가격이다. 전에 장점으로 꼽았던 가격이 왜 또 단점이 되었는가 하면, 가격적인 측면에서 장점은 오로지 소규모 프로젝트에서 발생하기 때문이다. 규모가 커지면 커질수록 가격적인 불리함을 취하게 된다. 또 다른 단점은 복합한 쿼리가 불가능하다는 것이다.
FaaS는 Fuction as a Service 의 약자로 프로젝트를 여러 개의 함수로 쪼개서 매우 거대하고 분산된 컴퓨팅 자원에 우리가 준비해 둔 함수를 등록하고, 이 함수들이 실행되는 횟수 만큼 비용을 내는 방식을 말한다. FaaS라는 단어에 맞게 특정 작업을 하기 위해 하루종일 서버를 켜놓는 것이 아니라, 필요할 때 함수가 호출되어 처리하고, 함수가 호출된 비용만큼 지불하기 때문에 절약이 된다. 하지만 단점 역시 존재하는데, 가령, 함수에서 사용 할 수 있는 자원에 제한이 있으며, FaaS를 제공한 회사에 강한 의존을 하게 된다. 또한 로컬 데이터 사용이 불가하다는 단점을 갖고 있다.