개발일지

DOM과 서버리스를 간단하게 알아보자 + 3주차 회고 본문

WIL

DOM과 서버리스를 간단하게 알아보자 + 3주차 회고

MotherCarGasoline 2022. 5. 25. 08:57

DOM 이란?

 

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

 

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

 

W3C DOMWHATWG DOM 표준은 대부분의 브라우저에서 DOM 을 구현하는 기준이다. 많은 브라우저들이 표준 규약에서 제공하는 기능 외에도 추가적인 기능들을 제공하기 때문에 사용자가 작성한 문서들이 각기 다른 DOM 이 적용된 다양한 브라우저 환경에서 동작할 수 있다는 사실을 항상 인지하고 있어야 한다.

예를 들어, 표준 DOM 에서는 문서 안에서 모든 <P> elements 에 대한 list 를 리턴하는 getElementsByTagName method 를 정의하고 있다:

var paragraphs = document.getElementsByTagName("P");
// paragraphs[0] is the first <p> element
// paragraphs[1] is the second <p> element, etc.
alert(paragraphs[0].nodeName);

  웹 페이지를 수정하거나 생성하는데 사용되는 모든 property, method, event 들은 objects 로 구성된다. 예를 들어 document object 는 document 자체를 의미하며, table object 는 HTML table 에 접근하기 위한 HTMLTableElement DOM 인터페이스를 구현한 것이다. 이 문서는 Gecko 기반의 브라우저에서 구현된 DOM 에 대한 object-by-object reference 를 제공한다.


서버리스란?

  서버리스(serverless)란 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델입니다.

서버리스 모델에도 서버가 존재하긴 하지만, 애플리케이션 개발에서와 달리 추상화되어 있습니다. 클라우드 제공업체가 서버 인프라에 대한 프로비저닝, 유지 관리, 스케일링 등의 일상적인 작업을 처리하며, 개발자는 배포를 위해 코드를 컨테이너에 패키징하기만 하면 됩니다.

서버리스 애플리케이션은 배포되고 나면 필요에 따라 자동으로 스케일 업되거나 스케일 다운됩니다. 퍼블릭 클라우드 제공업체의 서버리스 오퍼링은 일반적으로 이벤트 기반 실행 모델을 통해 온디맨드로 미터링됩니다. 그러므로 서버리스 기능이 유휴 상태일 때는 아무런 비용도 들지 않습니다.

 

응용사례

넷플릭스가 서버리스 아키텍처를 쓰고 있다. (링크)

서버리스 아키텍처는 게임서버의 아웃게임(out-game; 로그인,매치메이킹,아이템결제,플레이어정보관리 등을 담당하는 부분. 아래 인게임 부분을 제외한 나머지 모두)의 서버 역할로 활용되기도 한다.

인게임(in-game; 게임 시작 버튼 누르고 게임아웃 나오기 전까지의 구간)에서는 실시간 멀티플레이가 빡시게 일어난다. 약간의 랙도 쉽게 받아들여지지 않는 상황이다. 단점에서 상술했듯이, 서버리스 아키텍처는 인게임에 부적합하다.

 


참고블로그


 

5월 23일 15일차

  리액트 강의를 다듣고 내일 과제 스타트를 준비하였다. 뭔가 자신감이 붙은거 같다 또 강의만 보면 금방 다 이겨낼 수 있을 것 같은데 너무 느리다.. 이해가 안된다 비교하자니 나 자신이 답답하기도 한데 항상 무슨 일을 시작할 때면 남들보다 늦었다. 무조건 그러다가 내가 눈이 떠지는 시점이 있는데 그때까지 죽어라 밟아야 한다!! 그때 까지 아자아자

 

5월 24일 16일차

  어이쿠 큰일이다. 어디 뇌가 다쳤나 html을 입문과제를 다 끝내고 넘어와 js에다가 페이지를 만드려니 머리가 터져버렸다. 구현이 안된다 구현이, 머리가 안돌아간다 저 코드를 어디다가 넣어야 될지 머릿속에 그려지지않는다. 진짜 식겁해서 순간 힘이 빠져서 멍때렸다. 잘하는 분들도 너무 많다. 내가 따라갈 수 있는건 무리하게 밤새지 말고 꾸준히 할 수 있도록 체력관리 그리고 오래 코드를 보는것. 그리고 답답함을 인내하자구 다들 기능구현하는데 페이지를 못만드는게 말이되냐;;

 

5월 25일 17일차

  벌써 17일이라고 생각하니 놀랍다 야식 바나나우유와 딸기프렌치파이를 먹으며 일지를 작성해보겠다아

주특기 거의 6일차가 지나고서야 본 강의를 듣고 타 강의까지 들어서 시작할 수 있었다. 오늘 밤을 새야겠지만 어느 정도 윤곽이 나올 수 있기를 기대해본다. 팀원분들도 언제든 부르면 도와주신다 하셔 도움을 청하기전에 이리저리 코드를 다 쳐보자! 이겨내자! 정신적 충격은 잠을 멀리 보낸다! 밤샘

 

5월 26일 18일차

  중간에 자고 일어나 아침 6시까지 밤 샜는데 기능은 물론 페이지 동그라미 같은 css도 못만들었다... 그나마 할만하고 넘어온 html이 검색한다고 나오는것도 아닌 너무 기초적인거였다. 기초 문법 자체가 없으니 없는 지식으로 계속 굴리고 혼자 해봤자 답이 안나온다. 계속해서 기초강의는 타 강의라도 많이 찾아 들어야 되겠다. 너무 부족하다 아침에 한숨쉬면서 울고싶었다,.ㅠㅠ 힘이 들땐 하늘을 봐 나는 항상 혼자가 아니야

 

5월 27일 19일차

벌써 3주차가 끝나가고 4주차가 보인다. 오늘 리액트 숙련 주차 발제가 되어 새로운 길이 또 열렸다.

아직 따라가기 벅차고 직접 부딪혀봐야 할 일이 많다. 그나마  조금 씩 적응이 되어가고 있다.

아주 적응만 되봐라 얼릉 몸에 익어 날라다니고 싶다~ 플라이플라이 암쏘하이

오늘 다 들을 수 있을 강의를 못듣고 내일 전 시간 다 힘써야 들을 수 있겠다. 오류가 가끔 날 때마다 답답해진다

내일 다듣고 일요일날 시간내어 두 개의 발표를 준비해보자 

 

5월 28일 20일차

  강의를 완강하였고 이제 개인과제를 시작하려한다. 근데 할 일이 좀 많다. 조금..

먼저 개인과제,  CS발표, WIL촬영, 항해톡, 팀과제 이번주는 많이 바쁠듯.. 개인과제를 제대로 따라가야한다! 정신똑띠차리라

Comments