[WIL] 항해99 3주차 회고

최연서·2022년 1월 30일
0

WIL

목록 보기
3/10
post-thumbnail

📚 항해99 3주차 WIL

💻 리액트 1 프로젝트

✏ 프로젝트 기간: 2022.01.21 ~ 2022.01.27
✏ 팀원: 1명
✏ 프로젝트 명: 내 일주일은?
✏ 프로젝트 소개: 메인 페이지는 로드될 때마다 새로운 랜덤 숫자만큼 평점을 칠해 주고, 서브 페이지는 클릭한 평점만큼 칠해지는 걸 구현.

백지 상태인 코린이가 처음으로 리액트를 직면하고 험난한 개발 세계에서 살아남고자 아등바등 쫓아가는 대서사를 기록하기 위한 글.

📢 어떤 프로젝트를 완성했을까

Github URL

📕 프로젝트에서 중점적으로 습득한 건

📌 DOM이란

DOM은 원본 HTML 문서의 객체 기반 표현 방식이며, HTML 문서에 대한 인터페이스이다. DOM의 개체 구조는 노드 트리(하나의 부모 줄기가 여러개의 자식 나뭇가지, 나뭇잎들을 가질 수 있는 나무와 같은 구조)로 표현된다. DOM이 사용되는 곳은 뷰 포트에 무엇을 렌더링 할지 결정하기 위해 사용됩니다. 또한 페이지의 컨텐츠 및 구조, 그리고 스타일이 JavaScript 프로그램에 의해 수정되기 위해 사용된다.

DOM은 HTML 문서로부터 생성이 되지만 항상 동일하지 않다. 이 둘의 차이점은,

  • HTML : 화면에 보이고자 하는 모양과 구조를 문서로 만든 것으로 단순 텍스트로 구성되어 있습니다. (최초에 화면을 그릴때 사용하는 설계도)
  • DOM : HTML 문서의 내용과 구조가 객체 모델로 변화되어 다양한 프로그램에서 사용될 수 있습니다. (설계도를 이용하여 실제로 화면에 나타내지는 인터페이스)

📌 서버리스란?

서버리스라는 이름만 들어보면 누구나 "아! 서버가 없는거구나?" 혹은 "백엔드가 없구나?" 라고 오해 할 수 있다. (저두요...)
사실 그런 의미에 서버리스는 아니다. 서버 없이 동적 앱이나 웹이 돌아갈 순 없으니까. 여기서 말하는 서버리스는 우리가 직접 서버를 만들고 관리하지 않아도 된다는 것을 의미한다.

개발 공부를 시작하기전에 컴퓨터관련 이미지를 상상해보면 서버는 거대한 컴퓨터들이 모여있는 어둡고 차가운 방안을 상상하게 된다. 그런 모습을 봐와서 그런지 서버관리하는 물리적인 컴퓨터와 공간이 무조건 필요하다고 생각했다.

근데 이것을 언제부터인지 대신해주는 것들이 등장하기 시작했다. 아마존의 EC2를 시작으로. 우리가 직접 서버를 유지할 컴퓨터와 공간을 가지고 있지 않아도 돈만 내면 아마존의 서버를 우리가 사용할 수 있게 된 것! 그러면 우리는 하루 종일 컴퓨터를
켜고 있지 않아도 되고, 중간에 우리의 서비스를 꺼버리는 실수를 범하지도 않게 되는 거다. 뿐만 아니라 갑자기 우리 서비스의 사용자가 많아져서 트래픽이 몰릴 때 추가적으로 서버의 메모리를 늘릴 필요 없이 그것마저 알아서 처리해 준다.
(돈만 내면!)

EC2

오해는 금물! 이건 단지 물리적인 컴퓨터와 같이 하드웨어적인 것들만 빌리는 거지, 실제로 운영되는 서버를 빌리는건 아니다. 서버를 만들고 보안도 신경쓰고 데이터도 백업하는 등 업데이트 및 관리는 스스로 해야 한다.

그렇다면 결국 컴퓨터와 같은 하드웨어만 빌리고 소프트 웨어 관리는 내가 해야하고 다른 회사들의 컴퓨터를 24시간 돌리는거니깐 돈이 많이....

그래서 나온 것이 지금의 서버리스다. 서버에 백엔드 전부를 올려서 하루종일 관리하는 것이 아닌, 백엔드를 각각의 함수로 나누어서 빌린 서버에 올리는 거다. 이렇게 되면 서버가 24시간 돌아가는 것이 아닌 요청이 들어오면 서버리스 서비스를 제공하는 회사에서 들어올때만 요청을 수행할 동안만 켜지도록 하고 요청을 마무리하면 다시 멈추게 하는 것이다. 이렇게 되면 내 서비스를 사용하는 사용자가 많은 적든 동일한 금액을 내는 것이 아닌 사용자만큼의 돈을 지불하게 되고, 즉, 24시간 동안 서버가 작동할 필요가 없이 필요할 때만 사용하니깐 경제적으로 최고.

그렇다고 서버리스가 무조건 좋은건 아닐 거다. 예를 들어서 서버가 항상 동작하고 있는 것이 아니니깐, 갑자기 요청이 들어오면 다시 서버를 깨울 시간이 필요해서 24시간 동작하는 서버에 비해 조금 느릴 수 있다. (사실 우리가 크게 느리다고 느끼는 정도의 느림은 아님) 또한, AWS, Azure, Google 등 제공사에 대한 강한 의존성을 가지게 된다. 그럴 일은 없어 보이지만 이들이 망하면 내 서비스도 같이 힘들어진다.

거대한 유저를 가지고 이미 훌륭한 인프라를 가지고 있는 회사에서는 이러한 서버리스 서버스가 필요 없을 수 있겠지만, 나와 같이 아직 공부하는 학생들이 무엇을 만들어보고 싶고, 활용할 수 있는 금전적 상태가 여유롭지 못하다면 이러한 서비스를 사용해보는 것도 흥미로워 보인다!

📗 프로젝트를 끝내고 나니

프로그래밍을 공부해보니 정말 공부할 것이 끝이 없다고 생각이 된다. 너무나 공부할 것은 많고, 공부해서 모든 것을 이해하고 습득하는 것은 불가능하다고 느껴진다. 또한 힘들게 공부한 것들이 새로운 지식들로 인해 공부하는 지식들을 바로 활용할 수가 없으면 결국 새로운 것으로 인해 그 지식은 죽은 지식이 되어버리게 될 것이다. 많은 것을 공부하는 것이 당연히 좋지만, 한정된 시간 안에 배워야한다면 최대한 효율적으로 공부하는 방법을 택해야만 한다. 아직까지 개발 입문자에 불과하여 무엇이 옳고 그런지는 당연히 알 수 없지만, 한가지 분명한건 내게 무엇이 가장 필요한가? 또는 내가 가장 부족한 것은 무엇인가?에 대해서는 알 수 있을 것이다.

이제 본격적으로 프론트앤드로 방향이 정해진 만큼 프론트앤드 쪽을 깊이 알고 싶은 갈증이 크다. 리액트라는 도구를 깊이있게 공부를 해야하지만, 그전에 큰 숲을 이해하고 싶다. 개념적인 부분이 아닌 프런트앤드의 고유한 가치라던지, 생태계는 어떤지, 지속적으로 변화하는 흐름 등을 공부하여 이해하고 싶다. 틈틈히 유명 개발자분들의 블로그들을 방문하여, 선구자들의 생각을 엿보고 싶다.

profile
하고 싶은 것 하면서 삽니다

0개의 댓글