본문 바로가기
Develop/WordPress

워드프레스 쇼핑몰 만들기 - 1) 준비물 알아보기

by 라이프레이서 2022. 4. 1.

목차

    반응형

    워드프레스를 이용하여, 쇼핑몰을 구축해보려고 한다.

    1차 목표는 전자책 판매 사이트를 만드는 것.

    그 과정에서 웹사이트를 빠르게 구축하는 기술을 배우고, 서버, 도메인과 관련된 공부를 함께 진행하려 한다.

    이번 포스팅부터 그 과정을 기록할 예정이다.

     

    그 시작으로, 필요한 기술 스택을 알아보자.

     

    필요한 기술

    1. 웹 페이지 구축 : 워드프레스 이용

    2. 서버 : AWS EC2 이용

    3. 웹서버는 nginx 이용

    4. DNS는 Route 53 이용.

     

    각 기술별 역할, 정의 등을 알아보자.

     

    1. 워드프레스

    워드프레스는 코딩을 최소화하여 웹사이트를 제작할 수 있게 돕는 툴이다.

    윅스, 아임웹, 카페 24 등 웹사이트를 제작할 때 다양한 웹 빌더를 이용해볼 수 있다.

     

    워드프레스가 갖고 있는 장점으로는 세 가지 정도가 있다.

    1. 무료 테마로 사용 가능한 것이 많다.

    2. 수많은 플러그인이 제공된다. - 세계에서 이용하다 보니 개발자들이 플러그인 만들어서 워드프레스에 제공하고 있다고 한다.

    3. SEO(Search Engine Optimization) 변화에 발 빠르게 반응한다.

     

    하지만 워드프레스의 단점은 처음 접하면 익히기 까다롭다는 것이다.

    필자 또한 워드프레스를 아직 다뤄보지도 않았기에, 이를 공부하며 포스팅을 이어갈 계획이다.

     

    다음으로, 서버를 살펴보자.


    2. AWS EC2

    EC2는 가상 컴퓨팅 환경을 뜻한다. (아마존에서 제공하는 컴퓨터를 대여하는 것으로 보면 된다.)

    웹사이트에 접속한 사용자가 클릭, 페이지 이동을 할 때, 데이터를 담아둔 어딘가와 통신이 일어난다.

    그 어딘가에 해당하는 것을 우선 서버라고 이해하고 넘어가자.

     

    웹사이트와 서버가 어떻게 데이터를 주고받는지 통신 과정을 잠깐 살펴보자.

    더보기

    1. 웹 브라우저는 DNS 서버로 가서 웹사이트가 있는 서버의 진짜 주소를 찾는다.

    DNS는 chjune0205.tistory.com와 같은 도메인을 통해 실제 웹 사이트의 IP로 찾아가도록 해주는 것을 뜻한다.

     

    2. 브라우저는 서버에게 웹사이트를 보여달라는 HTTP 요청을 보낸다. (이 과정은 TCP/IP 연결을 통해서 전송된다)

    HTTP는 Hypertext Transfer Protocol로, 클라이언트(현재는 웹)와 서버가 서로 통신할 수 있도록 하는 규약을 뜻한다.

    TCP/IP는 전송 제어 규약(Transmission Control Protocol), 인터넷 규약(Internet Protocol)인데, 데이터가 어떻게 통신이 이뤄져야 하는지 정의하는 통신 규약을 뜻한다.

     

    3. 요청을 받은 서버는 성공적으로 데이터를 보여줄 수 있으면 데이터 패킷이라 불리는 작은 덩어리들을 브라우저에 전송하기 시작한다.

    데이터 패킷은 여러 명의 웹 사용자들이 동시에 웹사이트를 이용할 수 있도록 하는 요소다. 하나의 웹 사이트에 대한 데이터를 하나의 덩어리로 전달하게 된다면, 한 번에 한 명의 사용자만 해당 사이트의 데이터를 다운로드하게 될 것이다. 이를 잘게 쪼개어 여러 명의 사용자가 데이터를 다운로드할 수 있도록 해주는 것이 데이터 패킷의 역할.

     

    4. 데이터 패킷을 받은 웹브라우저는 완전한 웹사이트로 조립하여 사용자에게 결과를 보여준다.

    워드프레스를 이용할 때도 마찬가지로, 정보들을 담아둘 서버가 필요하다.

    이번 챌린지에서는 여러 클라우드 서비스들 중 AWS의 가상 컴퓨팅 환경을 이용하여 서버를 구축하고자 한다.

     

    EC2와 같은 클라우드 서비스를 이용하면 서버 컴퓨터를 따로 구입할 필요 없이 애플리케이션을 빠르게 개발 해볼 수 있다. 공식 페이지에는 트래픽 예측 필요성이 줄어든다는 장점을 갖고 있다고 하는데, 아직 그 단계까지 가보지 않아 와닿지는 않는다. (쇼핑몰 특성상 대용량 트래픽이 발생할 가능성은 높지 않을 것으로 보인다.)


    3. Nginx

    Nginx는 경량 웹 서버를 뜻한다. 

    클라이언트로부터 요청을 받았을 때, 요청에 맞는 정적 파일(Html, Css 등)을 응답해주는 역할로 활용되기도 하고,

    Reverse Proxy Server로서 클라이언트와 서버를 중개해주며 부하를 줄일 수 있는 로드 밸런서로 활용되기도 한다.

    (동적으로 서버에서 계산되어야 하거나, 서버에게 전달되어야 하는 사항들은 WAS에게 맡긴다.)

     

    로드 밸런싱이란?

    더보기

    로드 밸런싱은 트래픽이 많을 때 여러 대의 서버가 분산 처리하도록 하는 것을 뜻한다.

    서버로 들어오는 패킷을 리얼 서버로 균일하게 트래픽을 분산하거나,

    서버에 장애가 발생하면 이를 감지하여 정상적으로 작동하는 서버로 트래픽을 분산하는 방식이 있다고 한다.

    WAS (Web Application Server)란?

    더보기

    웹 서버로부터 오는 동적인 요청들을 처리하는 서버를 뜻한다.

    데이터 베이스 서버와 같이 관리되는 백엔드를 WAS로 보면 될 듯 하다.

     

    Nginx는 이벤트 드리븐 구조로 동작하기에 한 개의 프로세스만 생성하여 사용한다고 한다. - 메모리를 더 효율적으로 사용할 수 있는 결과를 가져온다고 한다.)

    (반면, Apache는 Multi Processing Module - 다중처리 모듈 방식 사용.)

     

    비동기 방식으로 요청들을 처리하기에, 여러 요청들을 동시에 처리할 수 있다.

    이 덕에 새로운 요청이 들어와도 새로운 프로세스와 스레드를 생성하지 않기에 프로세스와 쓰레드 생성 비용이 존재하지 않고, 적은 자원으로도 효율적인 운영이 가능하도록 해준다.

    덕분에 단일 서버에서도 많은 연결을 동시에 처리 가능하다.

     

    4. Route 53

    AWS에서 제공하는 DNS(Domain Name Server)를 뜻한다.

    다른 도메인 등록 기관에 비해 가격이 비슷하거나 저렴하고, 여러 가지 부가 기능을 제공한다고 한다. 어떤 기능이 필요한지는 만들어보면서 알아보도록 하자.

     

    여기서 DNS는 실제 웹 주소보다 정제된 형태의 도메인을 뜻한다.

    예를 들어, 지금 블로그는 chjune0205.tistory.com이라는 우리가 알아볼 수 있는 이름이 있다.

    어느 웹 브라우저 주소창에 이 주소를 입력하더라도 지금 이 블로그로 접속하게 될 것이다.

    하지만 이 이름 뒤에는 숫자와 점으로만 이루어진 진짜 이름이 존재한다. 42.245.216.316처럼 생겼다.

    이 숫자 조합은 웹 사이트의 하나뿐인 특정 위치를 뜻한다. 사용자들은 이런 형태를 기억하기 쉽지 않으므로 이름이 필요한데, chjune0205.tistory.com이라는 도메인 네임 서버를 통해 실제 웹사이트의 위치로 이동할 수 있다.

     

    이해한 내용

    * 아직 경험 없이 느낌으로 이해하며 그려본 그림이라 정확하지 않을수도...!

    반응형