Home part1.백엔드 시작하기
Post
Cancel

part1.백엔드 시작하기

웹 개발의 구조

웹은 전 세계의 컴퓨터 사용자들이 인터넷으로 연결돼 서로 정보를 공유하는 공간이다.

웹에서 이용할 수 있는 서비스는 웹 사이트라고 한다. 웹 개발은

  • 프론트엔드 개발 : 웹 애플리케이션이 사용자와 직접적으로 상호작용하는 부분을 개발. 더 나은 사용자 경험을 제공하고 최신 상태의 데이터를 제공하는 일에 집중한다.
    • 사용자 경험(UX, User eXperience) : 사용자가 웹 애플리케이션을 사용하는 동안 느끼는 전반적인 만족도와 편의성
  • 백엔드 개발 : 웹 애플리케이션의 핵심 처리 로직을 개발. 대규모 데이터와 트래픽을 처리하는 서버 개발 및 운영에 집중한다.

서버의 동작 원리

클라이언트-서버 모델

  • 서버 : 무언가를 제공하는 존재.
  • 클라이언트 : 웹 개발에서 요청을 보내고 서버의 응답을 받는 존재. 서버에 작업을 요청하는 기기(데스크톱, 노트북, 스마트폰)

서버는 역할에 따라 웹 서버(web server)와 웹 애플리케이션 서버(WAS, Web Application Server)로 나뉜다.

  • 웹 서버 : 클라이언트와 웹 애플리케이션 서버 사이에서 클라이언트의 요청을 받고 응답하는 역할. 클라이언트의 요청이 들어오면 정적인 콘텐츠(HTML, CSS, 이미지)는 그대로 클라이언트에 제공하고, 동적인 요청은 웹 애플리케이션 서버로 보내 웹 애플리케이션 서버에서 처리한 결과를 받아 클라이언트에 보내준다.
  • 웹 애플리케이션 서버 : 웹 서버를 통해 들어온 요청에 맞게 데이터를 추출 및 가공해 결과를 웹 서버에 반환.

백엔드 개발자가 하는 일

백엔드 개발자가 하는 일은 다양하다

  • 서버 개발 : 클라이언트의 요청을 접수하고 이를 처리한 후 적절한 응답을 보내는 서버를 개발한다. 다시 말해 개발 언어와 프레임워크를 사용해 웹 애플리케이션의 핵심 로직을 구현한다.
  • 데이터 베이스 설계 및 관리 : 웹 애플리케이션의 데이터를 효율적으로 저장 및 관리하기 위한 데이터 베이스를 설계하고 관리한다. 즉 웹 애플리케이션을 운영할 적절한 DBMS를 선택하고, 데이터베이스의 성능과 확장성을 고려해 데이터 모델을 설계 및 운영한다.
  • 네트워크 설정 : 네트워크 설정을 통해 서버와 클라이언트 간의 효율적인 통신을 보장한다. 즉 로드 밸런싱(load balancing, 작업을 나눠 부하 분산하는 것), 캐싱(caching, 자주 사용하는 데이터의 복사본을 고속 저장소에 저장하는 것), 네트워크 보안 설정 등을 통해 사용자 경험과 서버의 성능을 향상한다.
  • 보안 및 인프라 관리 : 외부 공격으로부터 서버와 데이터를 지키기 위해 보안 정책을 수립하고 관련 기술을 적용한다. 또한 안정적인 서비스를 제공하기 위해 서버 구성 및 모니터링 등의 인프라(infra) 관리 업무를 수행한다.
    • 인프라 : 서버를 구성하는 하드웨어 기기(서버 장비, 스토리지, 네트워크 장비 등), 미들웨어, 운영체제를 말한다.
  • API 개발 : API는 프론트와 백엔드가 데이터를 효율적으로 주고 받을 수 있는 인터페이스이다. 백엔드 개발자는 이러한 API를 개발해 프론트엔드에서 특정 데이터나 기능에 접근할 수 있게 한다.(API는 다른 서비스나 플랫폼과 통합할 때도 중요한 역할을 한다.)
This post is licensed under CC BY 4.0 by the author.

바닥부터 Java 파해치기 : 자바를 시작하기 앞서

part2. CS 기초 지식 - 네트워크