개발도서

[IT 5분 잡학사전] - TIL (2023.01.18)

짜잉이 2023. 1. 18. 23:49

📚 Assignment #06

  • 오늘 읽은 범위 : ep.16 인터넷 익스플로러가 사라진 이유와 브라우저 엔진 ~ ep.21 서버리스는 서버가 없다는 뜻?
  • 기억하고 싶은 내용 (간단하게 내용 정리):
    • ep.16 인터넷 익스플로러가 사라진 이유와 브라우저 엔진
      • 인터넷 익스플로러는 CSS를 최초로 적용한 웹 브라우저였다. 이후 5.0 버전이 나왔을 때는 웹 사이트에서 어떤 내용을 업데이트하면 새로고침으로 확인하는 과정 없이 업데이트한 내용을 볼 수 있게 해주는 기술인 에이젝스(Ajax, Asynchronous JavaScript and XML) 기술을 최초로 지원했다.
      • 개발자는 표준안에 쓰여진대로 표현할 수 있도록 웹 브라우저를 개발한다. 이렇게 개발한 웹 브라우저의 핵심 프로그램을 '브라우저 엔진' 또는 '렌더링 엔진'이라고 한다. 파이어폭스에는 게코(gecko), 사파리에는 웹킷(webkit), 크롬은 블링크(blink)라는 엔진을 사용한다. 
      • 웹 브라우저는 엔진을 장착해서 프런트엔드 웹 개발에 필요한 3가지 언어(기술)인 HTML, CSS, 자바스크립트를 이해할 수 있다. 엔진이 최신 표준안, 최신 기술을 지원한다면 최신 웹 브라우저가 되는 것이므로 엔진의 성능은 웹 브라우저의 성능을 결정 짓는다. 
      • 인터넷 익스플로러는 2003년 95%의 시장 점유율을 차지하며 시장을 독점했지만 수많은 보안 취약점에 대한 늦장 대응으로 시장에서 도태되었고 결국 지원이 중단되었다.
      • 이후 마이크로스프트는 크롬 브라우저의 엔진인 '블링크'를 사용한 새로운 웹 브라우저인 마이크로소프트 엣지(Microsoft Edge)를 발표했다.
    • ep.17 아, 쿠키가 먹는 게 아니라고요?
      • HTTP 쿠키(cookie)는 사용자가 어떤 웹 사이트에 방문했을 때 브라우저를 통해 사용자의 컴퓨터에 보관하는 기록물이다.
      • HTTP(HyperText Transfer Protocol)는 인터넷에서 사용자와 서버가 정보를 주고받기 위한 일종의 규칙(프로토콜)이다.
      • HTTP는 사용자와 서버가 항상 연결되어 있지 않다(stateless)는 특징을 가진다. 서버는 데이터를 보내주고나면 연결 상태를 끊어버리는데 사용자를 기억해야할 필요가 있을 때를 대비해서 쿠키가 필요하다.
      • 쿠키는 사용자가 웹 사이트에 접속할 때마다 서버에 전송되어서 서버의 기억을 되살리는 역할을 한다. (e.g. 재방문한 사이트 로그인 유지, 언어 설정 유지)
      • 쿠키가 따라야 하는 규칙
        • 규칙 1. 쿠키는 도메인 1개에만 한정한다.
        • 규칙 2. 쿠키는 자동으로 보낸다.
        • 규칙 3. 쿠키는 컴퓨터에 자동으로 저장된다.
      • 도메인과 상관없는 쿠키를 이용해 사용자의 정보를 알 수도 있다.
        (e.g. 블로그에 달린 페이스북 '좋아요' 버튼은 블로그와 페이스북을 연결하고 이를 통해 페이스북은 블로그에서 쿠키를 얻을 수 있다.)
    • ep.18 프런트엔드, 백엔드?
      • 프런트엔드
        - 모든 프로그램의 가장 앞. 웹 사이트에서 사용하는 화면.
        - 프런트엔드 기술은 빨리 발전해서 프런트엔드 개발자가 공부해야 할 내용이 정말 많다는 점이 단점이다. (자바스크립트 피로. JavaScript fatigue)
        - 하지만 그만큼 관련 기술이 활발히 논의되기 때문에 기회도 많다. 기술이 활작업한 내용의 결과물을 바로 볼 수 있어 즐겁게 일할 수 있고 사용자와 거리가 가깝다는 것이 장점이다.
      • 백엔드
        - 모든 프로그램의 가장 뒤. 데이터베이스, 라우터와 같은 애플리케이션이나 웹 사이트에서 뒤쪽을 책임지는 부분.
        - 프런트엔드에 비해 변화가 크지 않아 개발 환경이 안정적이고 자바,루비,장고,파이썬,플라스크 등 기술 선택지가 다양하다는 장점이 있다.
        - 사용자와 거리가 멀어서 흥미가 떨어진다는 단점이 있다. 
    • ep.19 서버가 뭔지 아직도 모른다고?
      • 서버(server)는 모니터가 없거나 한개만 있는 컴퓨터로, 서비스를 해주는 역할을 한다. 항상 인터넷에 연결되어 있어야 하고 저장소와 메모리 크기가 모두 어마어마하다. 
      • 서버의 특징
        - 서버는 24시간 내내 주소 입력을 기다린다.
        - 주소가 입력되면 그 주소에 해당하는 데이터를 꺼내서 보여준다. 
      • 즉, 한마디로 서버는 항상 켜져 있는 컴퓨터이면서 인터넷에 연결되어 있고 접속 요청에 응답하는 컴퓨터이다. 
    • ep.20 슈퍼 개발자만 할 수 있다, 풀스택?
      • 풀스택(full stack)이란 프런트엔드, 백엔드, 데브옵스(DevOps)를 포함한다.
      • 데브옵스란 소프트웨어의 개발(development)과 운영(operations)의 합성어로 소프트웨어 개발자와 정보 기술 전문가 사이에 소통, 협업, 통합을 강조하는 개발 환경이나 문화를 말한다.
      • 프런트엔드는 사용자 인터페이스(UI)를 의미하며 프런트엔드 기술은 사용자와 상호작용하기 위한 것이다.
        백엔드는 사용자가 눈으로 볼 수는 없지만 실제로는 사용해야 하는 계정 생성, 동영상 업로드, 댓글 저장 기능 등을 말한다.
        데브옵스는 프런트엔드, 백엔드 개발 이후 완성된 프로그램을 서버에 올리기 위해 서버를 고르고, 설정하고, 서버에 소프트웨어도 설치하고, 데이터베이스 설정도 하고, 보안도 신경 쓰는 등 많은 일을 한다. 
      • 풀스택 개발자는 이런 프런트엔드(화면 만들기), 백엔드(DB에 데이터 저장하기) 데브옵스(서버에 올리기)를 모두 다 할 수 있는 사람을 말한다. 
      • 풀스택 개발자 취업 시 점검 사항
        - 채용공고에서 풀스택 개발자만 뽑는 회사를 주의하고 팀원이 몇 명인지 꼭 물어보자. 딱 한자리만 있다면 2~3명이 하는 일을 풀스택 1명에게 시킬 수 있어 위험하다.
        - 팀 구성원이 몇 명 있다면 일을 잘 구분해서 줄 수 있는지, 역할과 책임이 어디까지인지 명확하게 체크해야 한다. 풀스택 개발자는 무조건 모든 영역을 다 개발해야 한다고 생각하는데, 할 수 있는 것과 하는 것은 엄연히 다르다! 풀스택 개발자라고 모든 일을 다 해야하는 것은 아니다.
        - 질문 예시
        e.g. 백엔드로 노드js를 사용하나요? 아니면 파이썬을 사용하나요?
        e.g. 데브옵스는 할 수 있지만 개발에 더 집중하고 싶은데, 개발 프로세스가 궁금합니다.
        e.g. 팀원은 몇 명인가요?
    • ep.21 서버리스는 서버가 없다는 뜻?
      • 서버는 실체가 있어야 한다. 서버리스(serverless)는 서버 없음이 아니라 우리가 직접 관리하지 않는 서버를 의미한다. 우리 곁에 없는 서버!
      • 서버리스가 없던 예전에는 실제 회사마다 서버를 직접 구매해서 전부 수동으로 관리했다. 전원이 꺼지면 서버도 꺼진다.
      • 아마존에서 나온 EC2는 아마존 엘라스틱 컴퓨트 클라우드(Amazon Elastic Compute Cloud)를 말하며, 서버를 대신 탄력적으로(elastic) 운영해 준다는 목적으로 나온 서비스이다. 이런 서비스는 하드웨어를 제공, 관리해주는 역할만 할 뿐 서버의 소프트웨어 관리를 해주지는 않는다.
      • 서버리스는 서버 제공부터 운영체제 업데이트, 보안 점검, 장애 회복 시스템 구축, 데이터 백업 등 서버의 소프트웨어 관리를 가능하게 한다.
      • 서버리스는 서버를 위한 소프트웨어(백엔드 코드)를 함수 단위로 쪼개 서비스(서버)에 올린 후 잠자고 있던 함수를 필요할 때(요청)만 깨워서 요청한 작업을 수행한 후 다시 잠들게 하는 방식으로 운영한다. 그래서 전력 낭비를 줄이고 하드웨어를 효율적으로 쓸 수 있으며 함수가 실행된 만큼만 금액을 지불하면 된다. 
      • 서버리스의 2가지 단점
        • 단점 1. 서버리스의 함수는 잠에서 깰 때 시간이 필요하다: 콜드 스타트(cold start)
        • 단점 2. 서버 제공자에게 지나치게 의존한다.
      • 서버리스로 작업하면 서버 관리, 설정에서 시간을 아낄 수 있기 때문에 개발자는 코드에 더 집중할 수 있다. 서버를 빠르고 쉽게 구축하고 서비스를 출시할 수 있어 사이드 프로젝트를 하는 사람이나 프로토타입을 최대한 빠르게 출시하고 싶은 기업에게 추천한다.
        - 서버리스 프레임워크 사이트 serverless.com
        - AWS 람다
        - 구글 클라우드 펑션(Google Cloud Function)
        - 아펙스(Apex)
        - 테라폼(Terraform)
  • 오늘의 파트에 대한 소감 (떠오르는 생각) :
    • 인터넷 익스플로러가 서비스를 종료한다는 소식을 듣고 묘비가 생기고 RIP...하며 추모한다는 글을 봤었는데 책에 딱 그 묘비 이미지가 실려 있어서 조금 웃으면서 읽었다. 95년생 인터넷 익스플로러..그는 다른 브라우저를 다운받기에 좋은 툴이었습니다...🙏 
    • 드디어 나온 프런트엔드, 백엔드, 풀스택 주제! 처음 개발을 시작할 때 엄청 고민했었는데 하지만 결국은 다 하게 되는게 맞는거였다. 나는 백엔드 개발을 주로 했었지만 두 영역 모두 비슷한 비중으로 선호하고 모두 다 만질 줄 아는 개발자가 되고 싶어서 최종적으로는 풀스택 개발자가 되고 싶다. 그리고 원하는 나라에서 환경에 맞게 능동적으로 행복하게 일할 수 있는 사람이 되고 싶다. 그래서 그런지 풀스택 개발자 취업시 주의할 사항이 나온 부분은 더 인상깊게 읽었다. born to study...즐거움에 끝이 없는게 아니라 공부에는 끝이 없다.
    • 서버는 AWS로 많이 쓴다는 것 밖에 몰랐다. 서버에 대한 얕은 지식만 가지고 읽었는데 서버리스에 대해서 자세히 알 수 있었다. 프로젝트 만들때 AWS도 공부해보고 프로젝트를 직접 올려보면 좋을 것 같다.
  • 추가로 알게된 것 (책내용+a 로 궁금한 것, 이해가 가지 않는 것 등)
    • 웹 개발자라면 꼭 알아야 하는 브라우저 익스텐션
      • ColorZilla
      • Momentum
      • CSSViewer
      • JSON Viewer
      • React Developer Tools
      • WhatFont
      • Grid Ruler
      • BuiltWith Technology Profiler
  • 소감 3줄 요약 (오늘 TIL 3줄 요약) :
    • 로그인 안 풀리게 해줘서 고마워 따봉 쿠키야! 🍪
    • 풀스택은 갓성비가 아닙니다. 풀스택도 사람입니다.
    • 서버리스는 서버가 없는게 아니라 내가 직접 관리하지 않아서 내 곁에 없는 서버!

 

✔️ Mission: 최애 TIL 선정