웹아키텍쳐 구성

BenKim·2020년 7월 4일
1


웹서비스의 기본 아키텍처를 구성하는 요소들은 다음과 같이 있다.

  • 브라우저
  • 클라이언트
  • 서버
  • 데이터베이스
  • HTTP

1.브라우저

브라우저는 노드와 마찬가지로 V8이라는 자바스크립트 엔진이 구동될수 있는 환경이다.
즉 우리가 자바스크립트로 작성한 클라이언트 코드를 브라우저 상에서 구동해서 우리가 볼수 있는 view단은 환성시키는 역할을 주로 진행한다.

2.클라이언트

직역하면 고객인데 이 단어로는 쉽게 설명하기 어렵다. 대신 client가 주로 쓰는 부분이라고 이해하면 조금더 편하다고 한다. 주로 유저와 interaction하는 기능을 보유하고 있다. 예를들어 버튼을 클릭하면 컨텐츠를 요청해서 가져오는것, 탭을 클릭하면 다른페이지로 넘어가서 다른 페이지를 보여주는 등 유저의 동작에 따라 반응하는 기능들을 주로 보유하고 있다. 하지만 클라이언트는 컨텐츠 혹은 데이터 등으로 불리는 리소스 자체를 직접 가지고 있지는 않기 때문에 우리가 유저에게 어떠한 데이터를 보여주는 웹서비스를 기획한다고 한다면 그 데이터를 가지고 있는 주체(데이터베이스)와 해당 데이터를 다뤄서 우리가 필요한 데이터로 만들어주는 과정을 해주는 로직을 돌리는 주체(서버)가 필요하다. HTTP통신에서 주로 요청을 담당하게된다.

3. 서버

데이터는 저장하고 불러오는것 뿐만 아니라 꺼내온 데이터를 핸들링하고 권한이 있는 사용자인지, 우리의 회원이 요청하는 것인지, 나쁜집단이 우리 자료를 빼내가려고 하는 요청이 아닌지를 검색하는 관문이 필요하다.
나는 이 관문을 node서버로 만들게 될 것이다. 그리고 구현을 편하게 하기 위해 Express라는 프레임워크를 활용할 것이다.
이렇게 만들어진 서버는 크게 두가지 역할을 갖게된다.

  1. 클라이언트의 요청을 받는다.
  2. 요청을(request) 처리하기 위해 필요한 데이터들을 만들기 위해서
    데이터베이스와 통신하여 데이터를 꺼내와 응답(response)한다.

결론적으로 서버가 하는 역할은 클라이언트가 필요하다는 요청을 받고, 데이터베이스에서 해당자료를 꺼내와서 조립해서 응답해주는 것이다. 콜센터 혹은 물류센터와 비교하면 좋을것 같다.

4. 데이터베이스

이름에서부터 의미가 느껴진다. 우리 서비스의 모든 리소스들을 저장하는 공간이다. 어려운 개념같지만 간단하게 생각해보면 잘 저장하고 잘 꺼내쓰는것이다. 이것들을 잘하기 위해 처음에는 query문을 배우게된다. 이 query문은 어렵고 생소하며 작성자의 코드스타일에 영향을 많이 받기 때문에 ORM이라는 개념으로 획일화된 코드를 작성하게된다. 어렵게생각하지말자 하는일은 잘저장하고 잘꺼내오는 일이고 이 일을 잘하기 위해 query, ORM등 다양한 시도를 하는것이다.

5.HTTP

HTTP(HyperText Transfer Protocol) 초본문전송규약, 하이퍼본문전송규약 말이 어렵다.
앞의 단어는 이해가 어렵지만 protocol이라는 것은 알수있다. 즉 통신규약이다.
웹아키텍처에서 클라이언트와 서버가 정보를 주고받을때 사용하는 통신규약이라고 이해하면 될 것 같다.
우리가 일상생활에서 견적서를 쓰거나 물건을 주문할 때 양식을 지켜서 주문,발주를 해야하는것과 같다.
'서버로 무엇인가 요청할 때에는 헤더와 바디의 형식을 갖춘 요청을 양식에 맞게 보내라 !'

profile
연습과 자신감

0개의 댓글