Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
노개북 Day5 - episode16~21
#book_club
1년 전
669

오늘 TIL 3줄 요약

1. 쿠키란?

2. 프론트 엔드, 백엔드 , 풀스택

3. 서버와 서버리스

TIL (Today I Learned) 날짜

2023.02.22

오늘 읽은 범위

ep. 16~21

책에서 기억하고 싶은 내용을 써보세요.

1. 쿠키란?

브라우저의 쿠키를 이해하려면 http 에 대해 먼저 알아하 한다.

http => 서버와 클라이언트의 통신을 주고받는 프로토콜 (규칙체계).

서버와 클라이언트는 http 아래 요청과 응답을 한다.

서버는 과거의 요청과 응답을 기억할 수 없다. 하지만 우리가 웹사이트를 한 번 로그인하면

창을 닫았다 다시 들어가도 로그인되어있다.

이것이 가능한 이유는 쿠키때문이다.

우리가 로그인을 하면 서버는 일종의 영수증을 발행해 주는데

그 영수증에는 신뢰할 수 있는 사용자라는 인증과 로그인 정보가 담겨있다.

그리고 이것은 사용자의 컴퓨터 어딘가에 저장이 되는데 다음에 다시 해당 웹사이트에 접속을 하면 우리가 받은 영수증을 서버에 전달한다.

쿠키는 기록의 역할을 한다.

아래는 쿠키의 규칙 세가지 이다.

1) 쿠키는 도메인 하나에 한정. => 각기 다른 웹사이트간의 쿠키공유는 불가능하다.

2) 쿠키는 자동으로 보낸다. => 쿠키는 사용자의 옵션 없이 서버와 브라우저를 오고간다.

3) 쿠키는 컴퓨터에 자동으로 저장된다. => 로그인, 웹사이트등의 동작을 하면 쿠키는 자동으로 브 라우저에 저장된다.

2. 프론트 엔드, 백엔드 , 풀스택

프론트 엔드, 백엔드는 웹개발에만 한정되어 있지는 않다.

웹개발의 경우 각 포지션의 역할을 다음과 같다.

프론트엔드(front-end)

웹의 가장 앞부분. 웹사이트의 디자인이나 데이터를 주고받는 폼에대한 인터페이스를 맡는다.

사용자의 피드백과 매우 근접해있으며 기술의 개발이 매우 빠르다는 특징이 있다.

백엔드(back-end)

웹의 가장 뒤에서 이뤄지는 일을 맡는다.

데이터베이스, 보안, 캐싱등의 일을 한다. 사용자는 웹서비스를 이용할 때 데이터베이스,

보안등의 로직을 볼 수 도 없고 관심도 없기때문에 사용자의 피드백과는 거리가있으며,

기술이 빠르게 변하지 않기때문에 2년전에 그만뒀다가 다시 시작한다 해도

새로 배워야 할 양이 많이 없을 정도이다.

풀스택(full-stack)

프론트엔드, 백엔드 ,데브옵스(devops) 즉,

서버의 개발 및 운영 까지 모든것을 맡는 포지션이다.

배워야 할 양이 매우 많으며, 작업량도 많다.

풀스택이 가능한 개발자는 1인 창업을 하는것도 가능하다고 한다.

물론 기획과 그 외의 문제는 별개이다.

3. 서버와 서버리스

서버란 말 그대로 제공자를 의미한다.

브라우저에서 요청이 들어오면 알맞은 데이터로 응답한다.

과거에는 서버는 서비스 제공자의 곁에 있었다.

회사 안에 서버 장비를 두고 24시간 켜두며 관리했다는 의미다.

때문에 트래픽 과부하가 일어나거나 정전이 나는 등

외부 요인에 민감하다는 위험성과 불편함이 있었다.

그러다가 서버리스라는 개념이 등장했는데,

아마존이나 구글과같은 기업이 서버를 대여해주는 것이다.

이제는 직접 서버를 관리하지 않고 코드만 신경쓰명 되는 환경이 되었다.

서버리스는 구조가 상대적으로 복잡한데,

백엔드 코드를 함수단으로 쪼개서 서비스 (서버)에 올린다.

서비스는 평소에는 잠들어있다가 요청을 받으면

그에 부합하는 함수만 깨어나 응답을 보내고 다시 잠이든다.

이는 비용절감과 효율적 운영으로 이어졌다.

하지만 장점이 있으면 단점이 있듯이 아래는 서버리스의 단점 두가지를 설명한다.

1) 콜드스타트

평소에 잠들어있다가 요청을 받으면 깨어나는 것을 의미한다.

계속 깨어있는 방식보다 속도가 느리다는 단점이 있다.

그 차이는 밀리초 단위이지만 그조차도 허용할 수 없는 서비스라면,

서버리스 방식은 적합하지 않다.

2) 서버 제공자에 대한 의존도가 높다

서버리스를 선택하는 순간 서버 제공자에(aws, google cloud) 대한 의존도는 높아진다.

함수단으로 쪼갠 백엔드 코드는 서버리스 서비스에 딱 맞게 개발되었기 때문에

다른 회사의 서버리스로 옮기는 것은 간단한 문제가 아니라고 한다.

그렇다면 서버리스는 어떤 경우 적합할까?

사이드 프로젝트를 하는 경우나 빠르게 프로토 타입을 만들기를 원하는 경우에 적합하다고 한다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

프론트엔드, 백엔드, 풀스택중 나에게 맞는 것은 어떤것인지 알 수 있게된 에피소드였고,

서버와 서버리스에 대한 정보로 인해 비용, 시간의 자원과 인력의 한계를

어느정도 극복 할 수 있는 방법을 알게되었다.

나의 서비스를 운영하고 싶다면 풀스택을 목표로 공부할 수 있고

자원이 한정되어있다면 물론 작업량은 많아지겠지만,

서버리스를 이용할 수 있다는걸 알았다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

프론트엔드와 백엔드의 상호작용은 어떻게 돌아가는 건지 궁금했다.