SoftWalk Dev Demo

SoftWalk Dev 교육의 데모 사이트입니다. GitHub Pages와 Jekyll을 사용하여 제작되었습니다. (현재 theme는 minimal 입니다)

View the Project on GitHub 2hlearn/softwalk-dev-demo

9주차: # Week 09: 웹 개발 기본 - 강의 내용

섹션 1: 웹 시스템의 개요

웹 시스템은 사용자와 서버 간의 상호작용을 기반으로 이루어집니다. 사용자는 브라우저를 통해 웹 사이트에 접근하고, 서버는 사용자의 요청에 맞춰 데이터를 제공하거나 작업을 처리합니다. 웹 시스템은 크게 프론트엔드(사용자와 직접 상호작용하는 부분)와 백엔드(서버에서 처리되는 부분)로 나뉩니다.

섹션 2: 웹 브라우저와 클라이언트

웹 브라우저는 사용자가 웹 페이지에 접근하기 위한 도구입니다. 웹 브라우저는 클라이언트 역할을 하며, 사용자의 요청을 서버에 전달하고, 서버로부터 받은 데이터를 렌더링하여 사용자에게 보여줍니다. 브라우저의 주요 기능은 HTML, CSS, JavaScript를 해석하여 웹 페이지를 구성하는 것입니다.

섹션 3: HTTP 프로토콜

웹 클라이언트와 서버 간의 통신은 HTTP(Hypertext Transfer Protocol) 프로토콜을 통해 이루어집니다. HTTP는 클라이언트가 서버에 요청을 보내고, 서버가 그에 맞는 응답을 돌려주는 방식입니다. 각 요청은 GET, POST와 같은 메서드를 사용하며, 응답은 상태 코드(예: 200 OK, 404 Not Found)를 통해 성공 여부를 나타냅니다.

섹션 4: 웹 서버의 역할

웹 서버는 클라이언트로부터 들어온 요청을 받아, 해당 요청에 맞는 페이지나 데이터를 반환하는 역할을 합니다. 웹 서버는 주로 Apache, Nginx와 같은 소프트웨어를 사용하여 구축되며, 서버는 정적인 페이지뿐만 아니라 동적인 데이터를 생성하는 백엔드 프로그램과도 상호작용합니다.

섹션 5: 프론트엔드 개요 (HTML, CSS, JavaScript)

프론트엔드는 웹 페이지의 외관과 사용자와의 상호작용을 처리하는 영역입니다. HTML은 웹 페이지의 구조를, CSS는 스타일을, JavaScript는 웹 페이지의 동적인 동작을 담당합니다. 이 세 가지 언어는 웹 개발의 기본 도구입니다.

섹션 6: 백엔드 개요

백엔드는 사용자의 요청을 처리하고, 데이터베이스와의 상호작용을 통해 동적인 데이터를 생성하는 부분입니다. 백엔드 개발에는 Python(Django/Flask), Node.js, PHP와 같은 다양한 언어와 프레임워크가 사용됩니다. 백엔드는 보안, 서버 관리, 데이터베이스 연결 등의 중요한 역할을 담당합니다.

섹션 7: 데이터베이스와의 상호작용

웹 시스템에서 데이터베이스는 사용자 정보, 상품 목록, 게시글 등과 같은 데이터를 저장하고 관리하는 역할을 합니다. 백엔드에서는 SQL을 사용하여 데이터베이스에 접근하고, 데이터를 조회하거나 수정합니다. 최근에는 NoSQL 데이터베이스도 인기를 끌고 있습니다.

섹션 8: API와 RESTful 서비스

API(Application Programming Interface)는 서버와 클라이언트가 서로 데이터를 주고받기 위한 규칙입니다. RESTful API는 HTTP 요청을 통해 데이터를 주고받는 가장 흔한 방식으로, GET, POST, PUT, DELETE와 같은 메서드를 사용하여 클라이언트와 서버가 상호작용합니다.

섹션 9: 클라우드 서버와 호스팅

최근에는 클라우드 기반 서버를 사용하여 웹 애플리케이션을 호스팅하는 경우가 많습니다. AWS, Google Cloud, Azure와 같은 클라우드 서비스는 서버를 구축하고 관리하는 대신 클라우드에서 모든 것을 처리할 수 있어 비용과 시간을 절감할 수 있습니다. 클라우드 서버는 웹 사이트의 확장성을 보장하며, 사용자 증가에도 대응할 수 있습니다.

섹션 10: 최신 웹 기술과 트렌드

현대 웹 개발에서는 React, Vue.js와 같은 JavaScript 프레임워크가 널리 사용되며, 웹 사이트를 더욱 동적이고 반응성 있게 만들 수 있습니다. 또한 PWA(Progressive Web App)와 같은 기술을 사용하면, 네이티브 앱과 유사한 사용자 경험을 제공할 수 있습니다. 웹 개발 기술은 빠르게 변화하고 있으며, 최신 트렌드를 계속해서 학습하는 것이 중요합니다.

외부 리소스