컴퓨터 프로그래밍 분야는 크게 웹 프로그램, 응용 프로그램으로 나뉘어 지는데 이번 시간에는 웹 프로그램 관련하여 지식을 공유하겠습니다. 웹 개발 정의 및 웹 개발에 쓰이는 전문 용어에 대해서 정리해 보는 시간을 가져보겠습니다.
웹 개발이란?
웹 개발은 개발 툴에 개발 환경을 구성해 프로그래밍 코드를 작업해 결과물을 http 통신을 이용하여 인터넷 웹사이트나 웹 애플리케이션을 만드는 기술입니다. 웹 페이지를 만들어 기능을 구현하여 클라이언트와 상호작용 하고 데이터를 처리하는 등의 다양한 작업을 포함합니다.
웹 개발 배경
웹은 정보를 공유하고 사용자(클라이언트) 경험을 우선시 하여 상호작용 하는 부분에 있어 기능적으로 다양한 작업을 합니다. 웹 개발의 시작은 1990년대 초반이고 초기에는 HTML(HyperText Markup Language)을 사용한 정적인 페이지를 생성하였고 현재에 이르러서는 사용자 친화적인 인터렉티브한 기술로 발전하였습니다.
2000년대 이후에는 CSS(Cascading Style Sheets), JavaScript 및 다양한 웹 기술이 도입되면서 웹 페이지는 더 다이내믹해지고 사용자와의 상호작용이 증가했습니다. 이후 웹 애플리케이션 개발에서 서버 측에서의 데이터 처리, 클라이언트와 서버 간의 효율적인 통신, 보안 등에 대한 역할의 중요성이 부각되었습니다.
최근에는 모바일 기기, 반응형 웹 디자인, 프로그레시브 웹 앱과 같은 새로운 개념과 기술이 도입되면서 다양한 환경에서의 웹 사용이 중요시되고 있습니다. 또한, 클라우드 컴퓨팅과 빅데이터 AI 인공지능 등 웹 개발은 복잡해지고 다양한 분야에 적용이 될 수 있습니다.
웹 개발 전문 용어
웹 개발은 프론트엔드(Front-end)와 백엔드(Back-end) 개발 두 가지 영역으로 나뉩니다. 그리고 프론트엔드 및 백엔드 구성요소를 다루는 프로그래머를 풀스택 개발자라고 부릅니다.
프론트엔드(Front-end)
프론트엔드 개발은 사용자가 볼 수 있는 웹 페이지의 디자인, 레이아웃, 웹 페이지를 HTML, CSS, javaScript 등의 기술을 사용하여 구축합니다. 사용자의 행동에 기초한 행동과 요구사항들을 충족시키는 업무를 담당합니다. 단순히 웹 디자인만 하는 것이 아니라 디자인을 코드와 연결시키는 작업을 합니다.
백엔드(Back-end)
백엔드 개발은 서버 측에서 데이터 처리, 사용자 요청에 대한 응답, 데이터베이스 관리 등을 다룹니다. 백엔드 개발은 무에서 유를 창조합니다. 데이터베이스에서 사용자 요청에 맞게 데이터를 제공하거나 관리 그리고 보안 및 백업까지 담당을 합니다. 개발자는 PHP, Java, Python, SQL과 같은 프로그래밍 언어를 주로 다루며 서버와 운영체제, 데이터베이스 등 폭넓은 소프트웨어 전문 지식을 요구합니다.
클라이언트 사이드(client-side), 서버 사이드(Sever-side)
이 글을 보시는 독자들은 인터넷 브라우저를 통해 shareitem.co.kr 도메인의 웹사이트를 보고 있습니다. 이 웹사이트와 통신하고 있는 곳은 ‘서버’라 칭하고 사용자들은 ‘클라이언트’로 부릅니다. ‘클라이언트’는 웹 상에서 무언가를 입력을 하거나 특정 액션을 취합니다. 이 모든 데이터 저장 위치는 ‘서버’입니다.
클라이언트 사이드는 어떤 행위나 행동이 일어나는 위치를 뜻합니다. 위치가 브라우저 혹은 실행되는 소프트웨어라면 ‘클라이언트 사이드’라고 말합니다. 서버와 통신하는 사용자의 프로그램이 결국 ‘클라이언트 사이드’입니다.
서버 사이드는 클라이언트 사이드에서 요청한 작업을 하는 곳이 ‘서버 사이드’라 할 수 있습니다. 데이터를 저장하거나 검색, 백업, 보안과 관련된 일을 진행을 합니다.
서버 사이드 스크립트
서버 사이드 스크립트는 클라이언트의 요청에 대해 서버 측에서 실행되는 스크립트를 의미합니다. 이는 주로 동적인 웹 페이지를 생성하거나 데이터베이스와 상호작용하는 데 사용됩니다. 서버 사이드 스크립트는 웹 서버에서 실행되며, 클라이언트로부터 요청을 받아 해당 요청에 대한 응답을 생성하는 데에 사용됩니다.
서버 사이드 스크립트 언어로는 PHP, JSP, Python, Ruby, Node.js 등이 있습니다. 이러한 언어를 사용하여 서버 측에서 동적인 내용을 생성하거나 데이터베이스와 통신하여 사용자에게 동적인 콘텐츠를 제공할 수 있습니다.
프론트엔드 프레임워크
프론트엔드 프레임워크는 웹 애플리케이션의 사용자 인터페이스(UI)를 구축하기 위한 도구와 라이브러리의 집합을 의미합니다. 개발자들이 더 빠르고 효율적으로 웹 애플리케이션을 개발할 수 있도록 돕습니다.
대표적인 프론트엔드 프레임워크로는 Vue.js, React, Angular 등이 있습니다. 이러한 프레임워크들은 컴포넌트 기반의 아키텍처를 가지고 있으며, 상태 관리, 라우팅, 데이터 바인딩, 사용자 이벤트 처리 등 다양한 기능을 제공하여 개발자들이 웹 애플리케이션을 보다 효율적으로 구축할 수 있도록 도와줍니다.
백엔드 프레임워크
백엔드 프레임워크는 백엔드(서버 측) 웹 애플리케이션을 개발하기 위한 도구와 라이브러리의 집합입니다. 이러한 프레임워크는 개발자가 애플리케이션의 핵심 로직, 데이터베이스 연동, 사용자 인증, 보안, 라우팅 등을 구현할 수 있도록 도와줍니다.
백엔드 프레임워크는 Node.js용 Express, Python용 FastAPI / Django / Flask, PHP용 Laravel 등이 있습니다. 이러한 프레임워크를 사용하면 개발자는 애플리케이션의 기본 구조를 설정하는 데 드는 시간을 절약하고, 안정적이고 확장 가능한 애플리케이션을 더 쉽게 구축할 수 있습니다.
또한, 백엔드 프레임워크는 일반적으로 RESTful API나 웹 서비스를 제공하는 데에도 사용됩니다. 이러한 API는 프론트엔드 웹 애플리케이션이나 모바일 애플리케이션과 같은 클라이언트 측 애플리케이션과 통신하는 데 사용됩니다.
마치며
이외에도 웹 개발에서는 보안, 성능 최적화, 검색 엔진 최적화(SEO) 등 다양한 측면을 고려해야 합니다. 또한, 모바일 기기와의 호환성, 반응형 웹 디자인, 웹 접근성 등에 대한 요구사항도 중요한 영역입니다.