* 프로그래머스, 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 5기 강의 수강 내용을 정리하는 포스팅.
* 원활한 내용 이해를 위해 수업에서 제시된 자료 이외에, 개인적으로 조사한 자료 등을 덧붙이고 있음.
전 세계적으로 연결된 네트워크의 집합체.
컴퓨터, 서버, 라우터 등의 여러 장치들이 서로 데이터를 주고받을 수 있게 해주는 인프라.
물리적 네트워크 사이에서 통신 수단을 통해서 다양한 서비스를 수행할 수 있다.
월드 와이드 웹(World Wide Web)의 줄임말. 인터넷 위에서 운영되는 하나의 서비스.
인터넷을 통해 하이퍼텍스트 문서를 주고받으며 사람들이 쉽게 정보를 검색하고 접근할 수 있게 해주는 서비스.
브라우저를 통해, 하이퍼텍스트로 이루어진 웹 문서에서 다양한 콘텐츠에 접근할 수 있다.
클라이언트-서버 구조.
- 클라이언트(Client): 웹 브라우저(크롬, 파이어폭스, 사파리 등)를 통해 웹에 접근하는 사용자의 컴퓨터나 모바일 기기.
- 서버(Server): 웹 페이지와 관련된 콘텐츠를 저장하고 있는 컴퓨터 시스템.
HTTP/HTTPS 프로토콜 방식으로 데이터를 교환. 관련 내용 포스팅 참조.
사용자가 직접 보는 화면이나 인터페이스 부분을 담당. 브라우저에서 실행되는 HTML, CSS, JavaScript가 프론트엔드.
웹 애플리케이션의 데이터 처리, 서버 로직 등을 담당. 데이터베이스와 서버 측 스크립트를 통해 클라이언트 요청에 필요한 정보를 처리하여 프론트엔드에 전달.
웹 애플리케이션이 데이터를 저장하고 관리하기 위한 시스템. 서버는 데이터베이스와 연결하여 사용자가 요청하는 데이터를 조회하거나 업데이트할 수 있다.
가상의 온라인 쇼핑몰에서 제품을 검색한다고 가정해보자.
사용자가 온라인 쇼핑몰 홈페이지에 접속하여 제품을 검색한다.
- 검색창에 "노트북"을 입력하고 "검색" 버튼을 클릭한다.
- 브라우저에서는 프론트엔드 코드를 통해 백엔드 서버에 "노트북"에 대한 정보를 요청.
프론트엔드는 JavaScript를 사용하여 이 요청을 HTTP 요청(예: GET 요청) 형식으로 백엔드 서버에 전송한다.
백엔드는 이 요청을 받으면 해당 검색어와 관련된 제품 정보를 찾기 위해 데이터베이스와 상호작용한다.
- 백엔드는 클라이언트로부터 받은 요청을 해석하여 필요한 쿼리를 데이터베이스에 전송.
백엔드가 보낸 쿼리를 받은 데이터베이스는 "노트북"과 관련된 제품 정보를 검색한다.
- 조회된 제품 목록을 백엔드로 반환한다.
백엔드는 데이터베이스에서 받은 제품 정보를 JSON 형식으로 변환하여 프론트엔드로 응답한다.
프론트엔드는 서버로부터 받은 제품 목록 데이터를 해석하여 HTML과 CSS를 사용해 화면에 제품 목록을 표시한다.
여러 회사들이 각각의 필요와 상황에 맞는 IDE들을 개발하여 시장에 출시하였다.
- VSCode (Visual Studio Code): 거의 모든 언어를 지원 / 확장성과 가벼운 성능 / 직관적이고 사용자 친화적 UI.
- IntelliJ IDEA: Java를 중심으로 Kotlin, Scala 등 JVM 기반 언어에 특화 / Java와 Kotlin 개발에 매우 강력하며, 코드 분석과 자동 완성 기능
- Eclipse: 기본적으로 Java에 최적화, C++, PHP 등 다양한 언어도 플러그인을 통해 지원 / 전통적인 Java 개발 환경
웹 개발이라고 하면 통상적으로 VSCode를 사용한다. 간편하고 가벼운데다 자체적인 확장 프로그램 UI로 풍부한 플러그인 환경을 편하게 접할 수 있기 때문.
<form class="login-container">
<h2>Login</h2>
<div class="form-group">
<input type="text" id="username" placeholder="Username">
</div>
<div class="form-group">
<input type="password" id="password" placeholder="Password">
</div>
<button class="login-btn">Login</button>
</form>
form 태그를 사용, CSS 적용 대비를 위한 클래스 이름들이 설정된 간단 UI.
UI 제목, 입력 필드와 버튼으로 구성되어 있음.
입력 필드는 input 태그로 이루어진 2개의 요소. 하나는 type="text"로 사용자명을 입력받기 위한 필드이며, 다른 하나는 type="password"로 비밀번호 입력 시 문자가 가려지도록 조치.