웹 개발 입문: 클라이언트와 서버의 세계로 첫걸음

GoGoComputer·2024년 11월 6일

HTML CSS study

목록 보기
2/20
post-thumbnail

첫 번째 강의에 오신 것을 환영합니다!

이 강좌는 웹 개발을 처음 접하시는 분들에게도 알맞은 시작점이 될 것입니다. 그래서 본격적으로 HTML과 CSS 코드를 작성하기 전에, 웹 개발 분야에 대한 전반적인 개요를 먼저 살펴보는 것이 좋을 것 같습니다.

이번 강의에서는 다음과 같은 주제들을 다룰 것입니다:

  1. 클라이언트와 서버의 역할: 웹이 어떻게 작동하는지 이해하기 위해서는 클라이언트(브라우저)와 서버의 상호 작용을 알아야 합니다.

  2. 프런트엔드와 백엔드 개발: 웹 개발은 크게 프런트엔드와 백엔드로 나뉘며, 각 영역에서 사용되는 기술과 역할이 다릅니다.

  3. 정적 웹사이트와 동적 웹사이트: 웹사이트는 정적 또는 동적으로 만들어질 수 있으며, 이는 사용자 경험과 기능성에 큰 영향을 미칩니다.

  4. 웹 개발의 핵심 언어와 기술: HTML, CSS, JavaScript는 웹 개발의 기본이 되는 언어들입니다.

이제, 브라우저에서 웹페이지를 열었을 때 어떤 일이 일어나는지 자세히 알아보겠습니다.


1. 웹페이지를 열 때 일어나는 과정

예를 들어, 우리가 브라우저에서 omnifood.dev라는 웹사이트에 접근하려고 한다고 가정해봅시다. 이 웹사이트는 우리가 이번 강의에서 개발하게 될 사이트입니다.

요청과 응답의 흐름:

  • 요청(Request): 브라우저는 해당 웹사이트가 저장되어 있는 서버에 요청을 보냅니다. 이 서버는 인터넷에 연결된 컴퓨터로, 웹사이트의 파일들을 저장하고 있습니다.

  • 응답(Response): 서버는 브라우저의 요청을 받아들여, 웹사이트를 구성하는 모든 파일(HTML, CSS, JavaScript 등)을 브라우저로 다시 보냅니다.

브라우저는 이 파일들을 받아서 우리가 보게 될 웹페이지를 화면에 렌더링합니다. 여기서 중요한 점은 웹사이트를 구성하는 모든 코드는 항상 HTML, CSS, JavaScript로 작성된다는 것입니다. 이는 브라우저가 이해하고 처리할 수 있는 언어들이기 때문입니다.


2. 프런트엔드 개발이란?

프런트엔드 개발은 브라우저에서 사용자에게 직접 보여지는 부분의 코드를 작성하는 과정을 의미합니다. 즉, 웹사이트의 화면에 나타나는 모든 요소들을 만드는 것입니다.

  • HTML (HyperText Markup Language): 웹페이지의 구조와 콘텐츠를 담당합니다. 텍스트, 이미지, 링크 등 우리가 보는 모든 콘텐츠는 HTML로 작성됩니다.

  • CSS (Cascading Style Sheets): HTML로 구성된 콘텐츠의 디자인과 레이아웃을 담당합니다. 글꼴, 색상, 배치 등 시각적인 부분을 스타일링합니다.

  • JavaScript: 웹페이지에 동적인 기능을 추가합니다. 사용자와의 상호 작용, 애니메이션, 데이터 처리 등 웹페이지를 더욱 활기차고 기능적으로 만듭니다.

예시를 통한 이해:

  • HTML은 명사: 웹페이지의 요소들을 정의합니다. 예를 들어, <p> 태그는 단락을 의미합니다.

  • CSS는 형용사: HTML 요소들의 스타일을 지정합니다. 예를 들어, 단락의 텍스트를 빨간색으로 설정할 수 있습니다.

  • JavaScript는 동사: 웹페이지에 행동을 추가합니다. 예를 들어, 단락을 클릭했을 때 숨기거나 나타나게 할 수 있습니다.


3. 정적 웹사이트와 동적 웹사이트

정적 웹사이트:

  • 서버에 미리 완성된 HTML, CSS, JavaScript 파일들이 저장되어 있습니다.
  • 사용자가 웹사이트에 접근하면, 서버는 이 파일들을 그대로 브라우저로 전송합니다.
  • 콘텐츠가 자주 변경되지 않으며, 사용자와의 상호 작용이 제한적입니다.
  • 우리 강의에서 만들게 될 omnifood.dev는 정적 웹사이트의 예시입니다.

동적 웹사이트:

  • 서버에서 실행되는 애플리케이션과 데이터베이스를 통해 웹페이지가 생성됩니다.
  • 사용자가 웹사이트에 접근할 때마다, 서버는 데이터베이스에서 필요한 정보를 가져와 웹페이지를 생성하고 브라우저로 전송합니다.
  • 콘텐츠가 자주 변경되며, 사용자와의 상호 작용이 활발합니다.
  • 예를 들어, Udemy와 같은 온라인 교육 플랫폼은 동적 웹사이트입니다.

동적 웹사이트의 작동 방식:

  1. 사용자의 요청: 브라우저는 웹사이트의 서버에 요청을 보냅니다.

  2. 서버의 처리: 서버는 요청을 받아 데이터베이스에서 필요한 정보를 가져옵니다. 이때, 서버에서는 백엔드 언어(예: Node.js, PHP, Python 등)를 사용하여 데이터 처리를 합니다.

  3. 웹페이지 생성: 서버는 가져온 데이터를 바탕으로 HTML, CSS, JavaScript 파일을 생성합니다.

  4. 응답 전송: 생성된 파일들을 브라우저로 전송합니다.

  5. 브라우저의 렌더링: 브라우저는 받은 파일들을 해석하여 웹페이지를 화면에 보여줍니다.


4. 백엔드 개발이란?

백엔드 개발은 서버에서 작동하는 애플리케이션과 데이터베이스를 구축하고 관리하는 것을 의미합니다. 사용자가 직접 보지는 못하지만, 웹사이트의 핵심 기능을 담당합니다.

  • 서버 측 언어: Node.js, PHP, Python 등
  • 데이터베이스: MySQL, MongoDB 등 데이터를 저장하고 관리합니다.

백엔드 개발자는 서버에서 데이터 처리, 사용자 인증, 데이터베이스 관리 등 중요한 기능을 구현합니다.


5. 프런트엔드와 백엔드의 협업

  • 프런트엔드 개발자는 사용자 인터페이스와 사용자 경험을 책임집니다. 사용자에게 보여지는 부분을 만듭니다.

  • 백엔드 개발자는 서버 로직과 데이터 관리를 책임집니다. 데이터의 저장, 처리, 보안을 담당합니다.

두 영역은 밀접하게 연결되어 있으며, 웹사이트나 웹 애플리케이션이 원활하게 동작하도록 협업합니다.


6. 웹 개발의 핵심 언어와 기술

  • HTML: 웹의 뼈대. 콘텐츠의 구조를 정의합니다.

  • CSS: 웹의 외관. 콘텐츠의 스타일과 레이아웃을 정의합니다.

  • JavaScript: 웹의 동작. 웹페이지에 동적인 기능을 추가합니다.

이 세 가지 언어는 웹 개발의 기초이며, 모든 웹 개발자가 반드시 숙지해야 하는 기술입니다.


마무리

이제 웹 개발의 기본 개념과 프런트엔드, 백엔드의 역할, 정적 및 동적 웹사이트의 차이점을 이해하셨을 것입니다. 다음 강의부터는 실제로 HTML과 CSS 코드를 작성하며 웹사이트를 만들어 보겠습니다.

웹 개발의 여정을 시작하는 데에 이 기본 개념들을 이해하는 것은 큰 도움이 될 것입니다. 앞으로의 강의에서 더 깊이 있는 내용과 실습을 통해 여러분의 웹 개발 실력을 향상시켜 나가길 기대합니다.

첫 걸음을 내디딘 것을 축하드리며, 함께 즐거운 학습 시간 만들어봅시다!

profile
IT를 좋아합니다.

0개의 댓글