본문 바로가기

항해99

[WIL] 3주차 항해 회고록~!

728x90

현재 주특기 2주차 과제에서 활용하고 있는 DOM서버리스에 대해 돌아보려고 합니다~!

먼저,

DOM(Documennt Object Model)

한글로 직역하면 문서 객체 모델로,

HTML 문서의 각 항목을 계층으로 표현하여 생성,변형,삭제를 할 수 있도록 돕는 인터페이스입니다.

웹 브라우저는 HTML 문서를 해석하고 화면을 통해 해석된결과를 보여주는데 이 과정을 렌더링이라고 합니다.

 

DOM 틀 안

DOM 요소의 선택 방법

  • 태그 이름(tag name)을 이용한 선택
  • 아이디(id)를 이용한 선택
  • 클래스(class)를 이용한 선택
  • CSS 선택자(selector)를 이용한 선택
  • HTML 객체 집합(object collection)을 이용한 선택

 

 

서버리스(Severless)

서버리스는 클라우드형 컴퓨터 모델을 말하는데 실제로 서버는 있습니다. 서버에서 처리하느 일들을

 클라우드 기반으로 처리하여 서버 구축과 관리 비용을 줄이는 구조입니다.

 

원리

이벤트를 실행할 애플리케이션 코드를 트리거(특정한 작용에 대응하여 자동으로 반작용이 실행되게끔 만드는 논리적 장치)하면 클라우드 제공업체는 해당 코드에 리소스(서버 자원)를 동적으로 할당하고, 사용자는 코드 실행이 끝나면 비용을 지불하지 않습니다.

장점

  • 서버 관리가 필요 없습니다.
  • 유연한 확장성: 애플리케이션을 활용하여 자유자재로 확장을 구현할 수 있습니다.
  • 높은 가용성: 고정된 서버가 없음은 제한된 가용성이 아님을 의미합니다. 가용성을 위한 별도의 설계가 필요 없습니다.
  • 유효 용량에 대한 비용: 사용하지 않는 것에 대해선 비용을 지불할 필요가 없습니다. 실행하지 않을 때는 비용이 발생하지 않습니다.
  • 개발자 생산성을 높이고 운영 비용을 줄일 수 있습니다.

단점

  • 콜드스타트(Cold-Start): 빠른 응답이 필요한 제품(서비스)의 경우 서버리스로의 전환은 부적합할 수 있습니다. 이는 실행할 함수를 호출하기 위해 컨테이너가 실행되는 대기 시간이 존재하기 때문인데, 서버를 항시 가동하지 않는 서버리스의 특징에 기인합니다.
  • 무상태(Stateless)적인 기능의 구현 불가: 작은 기능으로 잘게 나눠진 함수들은 요청마다 새로 기동하도록 호출되기 때문에 기동 전후의 상태를 공유할 수 없습니다. 또한 변수와 데이터의 공유가 불가능하며, 데이터를 로컬 스토리지에서 읽고 쓸 수 없습니다.
  • 벤더 종속의 문제: 함수가 사용할 수 있는 최대 메모리, 최대 처리 가능 시간 제약 등의 제약을 서버리스 서비스 벤더가 설정하며 서버리스 사용자 및 서버리스 기반의 서비스는 이에 종속됩니다. 이에 맞춰 벤더가 설정한 제약을 벗어나는 큰 기능은 잘게 나누어 구현해야 합니다.

후기

파이어베이스의 파이어스토어를 사용하면서 서버리스를 접했습니다. 파이어스토어를 사용하기 위해서 리액트에서 설정하고 활용하는 방법이 어려웠습니다. 하지만 계속해보고 만들어지는 과정을 보면서 재미를 느낄 수 있었습니다.