노마드코더 챌린지/노개북 - IT 5분 잡학사전

[북클럽][TIL] <IT 5분 잡학사전> - Day 6. 웹 기술 용어 (2)

엘레나림 2024. 4. 18. 01:03
728x90

오늘 읽은 범위

  • 마당 2. 웹 기술 편 ep16 ~ 21

 

책에서 기억하고 싶은 내용

  • ep16 : 웹 브라우저
    • 인터넷 익스플로러 1996년 3.0 버전 발표. CSS와 Ajax 기술을 최초로 지원한 웹 브라우저. 
      cf. Ajax(asynchronous javascript and xml) = 웹사이트에서 어떤 내용을 업데이트하면 새로 고침 없이도 내용을 볼 수 있는 기술

    • 웹 브라우저: HTML 라는 표준안에 의해 표현될 수 있도록 개발된 도구. 
      웹 브라우저 엔진(랜더링 엔진): 웹 브라우저의 핵심 프로그램

    • 웹 엔진별 브라우저

      브라우저 엔진 명 브라우저 명
      게코(gecko) 파이어폭스(firefox)
      웹킷(webkit) 사파리(safari)
      블링크(blink) 크롬(chrome)
      블링크(blink) 엣지(Edge)
    • 자바스크립트도 ECMAScript 에크마스크립트 라는 표준안에 의해 실행될 수 있도록 하는 프로그램 엔진이 있음 -> V8 엔진
    • 이러한 엔진의 성능이나 지원하는 기술들이 웹 브라우저의 성능과 버전을 결정함.
    • 브라우저 시장을 독점하던 인터넷 익스플로러에 수많은 보안 취약점이 발견되었으나 개선되지 않음 
      -> 다른 강력한 브라우저 엔진의 등장으로 2022년 6월 인터넷 익스플로러 지원 중단.
      마이크로소프트에서는 대안으로 Edge 브라우저를 새로 출시했으나, 브라우저 엔진은 블링크를 사용.

 

  • ep17 : HTTP 쿠키
    • 쿠키: 웹 사이트 방문했을 때 브라우저를 통해 컴퓨터에 보관되는 기록

 

  • ep18 : front-end & back-end
    • 사용자의 화면 영역은 front-end, 애플리케이션/웹 사이트에서 뒤쪽 영역인 DB나 라우터는 back-end
    • 프론트엔드 vs 백엔드 개발 비교

        front-end development back-end development
      장점 작업한 내용 바로 반영되어 시각적으로 확인 가능
      사용자와 바로 맞닿아있음
      개발 환경이 프론트엔드에 비해 안정적. 백엔드 기술의 변화가 크지않음
      언어나 기술 등 선택할 수 있는 옵션이 많음
      단점 프론트엔드 기술 발전이 빠른 편이라, 공부해야할 내용 많음 -> javascript fatigue 사용자와 거리감 있음

 

  • ep19 : 서버
    • 서버: 서비스를 해주는 컴퓨터
      • 하드웨어 측면: 모니터 1개 이하. 24/7, 365 인터넷 연결됨. 상당한 저장소 & 메모리 크기
      • 소프트웨어 측면: 요청 시 그에 맞는 웹 페이지와 데이터를 보여줌.
        항상 주소 입력(접속 요청)이 올 때까지 기다리고, 주소가 입력되면 그 주소에 해당하는 갖고 있는 데이터를 노출시킴(응답)

 

  • ep20 : 풀스택 개발
    • 풀스택 = 프론트엔드 + 백엔드 + 데브옵스
      cf. 데브옵스(devops) = 개발(development) + 운영(operations)
      : 개발자와 정보기술 전문가 사이에 소통, 협업, 통합을 강조하는 개발 환경이나 문화
    • 개발 이후 서버 배포, DB 설정, 보안 등 고려해야할 것들이 많음. 풀스택(+기획)을 한다면 1인 스타트업도 가능!
    • 풀스택 개발 할 수 있는 것과 하는 것은 엄연히 다른 것! 🤨 역할과 책임이 어디까지인지 명확하게 체크!!! 해야지 그럼그럼

 

  • ep21 : 서버리스
    • 진짜로 서버가 없는 것이 아니라 우리가 직접 관리하지 않아도 되는 서버라는 뜻
    • 서버를 위한 소프트웨어를 작은 함수 단위로 쪼갠 뒤, 그 함수들을 서버에 올리는 구조. 함수들은 비용적 측면을 고려하여 항상 깨어있지 않고 평소에는 잠들어 있는 상태.
    • 장점: 비용 절감. 효율성. 요청한 작업을 수행한 만큼 돈을 지불함 (on-demand. 클라우딩 개념)
    • 단점
      • 콜드 스타트(cold start). 잠들어 있는 함수가 깨는데 시간이 조금 필요해서 24시간 온라인 상태인 서버보다는 응답 시간이 더 걸림. 만약 실시간 빠른 응답이 필요한 서비스라면 서버리스는 비추천
      • 서버 제공자에 대한 높은 의존성. 다른 제공사로 이관하는 것이 쉽지는 않고(그렇다고 어렵지는 않지만..) , 제공사에서 문제 발생 시 트러블 슈팅 및 원인 파악이 어려운 편
        (실제로 aws ec2를 사용했었는데 이런 경험 있었다! 서버리스도 아니었는데 갑자기 알 수 없는 이유로 서버가 죽었는데, ram 사용량이 많았던 것도 아니었어서 원인 파악이 어려웠다. 늦은 밤 시간대 사용량이 전혀 없어서 문제는 없었지만, 왠지 찜찜한 느낌...)
    • 서버 관리, 설정에서 시간 절약하고 싶고 약간의 latency가 있어도 치명적이지 않는 서비스를 제공한다면, 서버리스는 좋은 선택!
    • 서버리스 프레임워크 사이트 -> serverless.com
    • AWS 람다(lambda), GCP 구글 클라우드 펑션(cloud function), 아펙스(Apex), 테라폼(Terraform)

 

오늘 읽은 소감은? 떠오르는 생각들

  • <IT 5분 잡학사전> 이 책은 개발 입문자들은 꼭 한번 읽어보면 좋을 것 같다! 개념이 이해하기 쉽게 설명되어있음
  • 책에서 중간중간 소개하는 IT 쿠키 상식이라는 문구는 어떤 의미로 만들게 됐을까..? 오늘 읽은 브라우저 쿠키랑 상관있나..?
    (mbti N력 발동...)

 

추가할 내용

  • on-premise 서버는 모두 수동으로 관리. 그렇다고 off-premise 라고 모두 서버리스는 아님!!
  • EC2는 기본적으로 항상 떠있는 24시간 응답 대기 상태! '클라우드 가상 서버' 다.

    cf. 온프레미스(on-premise)란?
    자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식. 과거 클라우딩 컴퓨팅 기술이 나오기 전에 기업에서 일반적으로 사용해오던 서버 구축 방식.
    - 장점: 비즈니스 정보를 보안성 높게 관리할 수 있음
    - 단점: 시스템 구축과 유지보수에 많은 시간과 비용이 들어감

    <-> 오프프레미스(off-premise): 기업 외부에서 임대 서비스를 사용하여 서버 구축
    = SaaS 또는 클라우드 컴퓨팅
    - 장점: on-premise 에 비해 서버 구축이 쉽고 간편
    - 단점: 문제 발생 시 트러블 슈팅 어려움

 

3줄 요약

- 웹의 브라우저, 쿠키, 서버, 서버리스의 개념 정리

- 어떤 웹 개발자가 되어야할 지. 웹 개발 분야의 장/단점 및 기술들을 비교

- 서버리스의 장점: 관리가 편함. 단점: 콜드 스타트, 제공자에 높은 의존성