21. 9. 7(화) TIL(배포)

배준형·2021년 9월 7일
0

TIL

목록 보기
18/21
post-thumbnail

서비스 배포(Deploy)

📌 웹 호스팅(Web Hosting)

웹 호스팅(Web Hosting): 내 컴퓨터뿐만 아니라 다른 컴퓨터에서 개발자가 의도한 홈페이지에 접속할 수 있도록 서버를 임대하는 것을 웹 호스팅이라고 한다.

웹을 웹이 다른 컴퓨터에서도 동일하게 동작하기 위해선 인터넷 공간이 필요한데, 그것이 서버이고 이를 일반 사용자가 구비하기 위해선 많은 운영비를 지불하고 독자적인 서버컴퓨터를 운영해야 한다.

그러나 서버를 전문적으로 운영하는 서비스를 이용해서 사용자는 운영비를 절감할 수 있고 빠른 속도로 다양한 웹 서비스를 이용할 수 있다.

이미지 출처: 웹 호스팅이란
웹 호스팅을 이용하면 값비싼 장비와 인력을 들이지 않고도 저렴한 가격에 독자작인 서버컴퓨터를 가진것과 동일한 서비스를 이용할 수 있다.



📌 클라우드(Cloud)

클라우드(Cloud): 인터넷 상의 가상화된 서버에 프로그램을 두고 필요할때마다 컴퓨터나 스마트폰 등에 불러와 사용하는 서비스.

인터넷을 통해 서버, 스토리지, 데이터베이스, 네트워킹, 소프트웨어, 분석, 인텔리전스 등의 컴퓨팅 서비스를 제공하는 것을 클라우드 라고 한다.

클라우드 서비스 모델

  1. SaaS(Software-as-a-Service): 사용자가 장치에 애플리케이션을 설치하는 대신 SaaS 애플리케이션이 클라우드 서버에 호스팅되고 사용자는 인터넷을 통해 애플리케이션에 액세스한다.
    SaaS는 집을 빌리는 것과 같다.
  • Salesforce
  • MailChimp
  • Slack
  1. PaaS(Platform-as-a-Service): 호스팅된 애플리케이션에 비용을 지불하는 대신 자체 애플리케이션을 구축하는 데 필요한 것(개발 도구, 인프라, 운영 체제를 포함한 애플리케이션 구축 등)에 비용을 지불한다.
    PaaS는 집을 임대하는 대신 집을 짓는 데 필요한 모든 도구와 장비를 빌리는 것과 비슷하다.
  • Heroku
  • Microsoft Azure
  1. IaaS(Infrastructure-as-a-Service): 클라우드 제공 업체로부터 필요한 서버와 저장소를 임대하고 클라우드 인프라로 자체 애플리케이션을 구축한다.
    IaaS는 원하는 건물을 지을 수 있는 토지를 임대하는 것과 같다.
  • DigitalOcean
  • Google Compute Engine
  • OpenStack


📌 서버 배포

그래서 사용자가 만든 웹사이트를 어떻게 배포할까?

  • AWS(Amazon Web Services, IaaS)
  • Netlify(PaaS)
  • Vercel(PaaS)
  • Github Pages

등을 사용하여 배포할 수 있다.(이용할 수 있는 서비스는 매우 많다.)

다양한 과금, 무료 서비스들이 있고, 개발자는 각 서비스들의 특징을 파악하여 본인에게 가장 알맞는 서비스를 선택하여 배포하면 된다.



📌 배운점

지금까지 배운 html, css, js를 통해서 만든 페이지를 배포하는 방법에 대해 알아보았다. 코드 작성 단계에서 각각의 html, css, js의 코드를 최적화하여 성능을 관리하듯 인프라 관점에서의 최적화도 필요하다는 것을 듣고 이러한 배포 과정도 꽤 자세히 알고 있어야 함을 깨달았다.

사실 개념적인 부분은 많이 중요하다고 느껴지지는 않는다. 각각의 서비스 업체들이 개발자에게 서버 인프라 구성의 부담을 덜고 서비스를 제공하기 때문에 개발자는 코드에 집중할 수 있고, 서버를 더 구체적으로 생각할 필요가 딱히 없다는 것을 느꼈다.

물론 배우는 단계에서의 느낀점이고, 실제 사용하다 보면 생각이 달라질 수 있을 것이다.


📌 앞으로

'배포' 라는 과정이 회사, 창업 등에서만 필요하다고 생각해서 그 중요성을 간과하고 있었는데, 오늘 해당 내용을 배우면서 접해보니 간단한 서비스나 토이 프로젝트 등을 직접 배포함으로써 배울 수 있는 것이 매우 많을 것이라고 판단된다.

실제 내 컴퓨터에서는 잘 작동하지만 배포하면서 발생할 수 있는 에러, 배포 후의 에러로 인해 동작하지 않을 수 있고 이를 고쳐나가면서 코드를 작성하는 과정에서 미처 몰랐던 내용을 또 알게될 수 있기 때문이다.

그리고 이러한 과정이 실제 현업에서 꼭 필요한 과정일 것이다. 코드를 잘 짜는 것도 중요하지만 배포와 관련된 지식이 없다면 실제 배포할 때 발생할 수 있는 문제를 해결하기 위해 더 많은 시간을 사용해야 할 것이다.

이런 이유로 앞으로 프로젝트가 더 진행될텐데 각각의 프로젝트를 만들고, 완성이 된다면 꼭 배포하는 과정까지 진행해서 같이 배워나갈 예정이다.


📌 참고한 사이트

profile
프론트엔드 개발자 배준형입니다.

0개의 댓글