본문 바로가기
Sparta 내일배움캠프 Java 5기/[사전캠프] Missions ✓ 2024. 3. 19.

DAILY_MISSION.04 웹개발 용어 정리 1

서버(Server) vs. 클라이언트(Client)

  • 서버
    • 네트워크상에서 서비스를 제공하는 컴퓨터 시스템, 장비
      • 공유기, 도메인 관리기(DNS), IP 할당기(DHCP), 시간관리기(NTP), 게이트웨이 등
    • 데이터, 리소스 저장, 클라이언트에게 제공
  • 클라이언트
    • 네트워크상에서 서버에게 서비스를 요청하는 컴퓨터 시스템, 장비
      • 컴퓨터, 노트북, 핸드폰, 아이패드 등
    • 요청받은 데이터를 다시 사용자에게 제공하면서 서로 상호작용

프론트엔드 (Front-end) vs. 백엔드(Back-end)

  • 프론트엔드 (Front-end)
    • 사용자가 직접 상호작용하는 부분인 PC에서 활용하는 웹
      • 사용자에게 정보 표시 / 입력
    • 웹 애플리케이션의 사용자 인터페이스(UI), 사용자 경험(UX)을 중점적으로 프로그래밍 하는 구축 부분
    • HTML, CSS, JavaScript 등을 사용
  • 백엔드(Back-end)
    • FE에서 처리한 데이터를 저장하고, 로직을 실질적으로 실행하는 부분
      • DB와 상호작용과 연산을 포함한 기능을 담당
      • 데이터 처리 / 정보 제공
    • Java, PHP, Node.js, Python, 등을 사용

풀스택(Full-Stack)

  • 프론트엔드(Frontend)와 백엔드(Backend) 모두를 다룰 수 있는 개발 역량 또는 개발자 그 자체
    • 개발 프로젝트를 전반적으로 이해하고 필요한 기능을 종합적으로 구현하는 역할

프레임워크(Framework)

  • 새로운 애플리케이션을 보다 효율적으로 개발할 수 있도록 하는 재사용 가능한 소프트웨어 구성 요소의 모음
    • 기존 개발 및 연구 결과를 재사용하는 것은 기본 원칙
    • 특정 소프트웨어 표준 및 프로토콜을 기반으로 재사용 가능한 코드 모듈이 포함
  • 새로운 어플리케이션을 표준화된 방식으로 효율적인 개발 가능
    • 프레임워크로 특정 소프트웨어 아키텍처 규칙 또는 프로세스를 정의 및 적용하는데 용의하기 때문에
    • 느리거나 중복된 코드를 작성할 필요가 없음
  • 장점
    • 잘 구조화된 프레임워크에서 코드 문제를 더 쉽게 검토, 디버깅하고 수정 가능
    • 목표에 맞는 다양한 프레임워크를 교체하면서 프로젝트별 코드를 유지 가능

  • 참고문헌
https://aws.amazon.com/ko/what-is/framework/

 

라이브러리(Library)

  • 필요할 때 애플리케이션 코드가 호출하는 유틸리티 또는 함수의 모음
  • 애플리케이션의 도우미이자 도구 역할이기 때문에 작업별로 다른 라이브러리를 가지고 있음
  • ex) 코드 라이브러리 : 코드 함수 모음

라이브러리(Library) VS 프레임워크(Framework)

  • 프레임워크는 애플리케이션 개발을 지시하는 구조적 청사진으로 세부적인 사항을 입력하는 일종의 골격 역할
    • 아키텍처가 동작하기 위한 규칙과 구조로 개발자는 구성을 함

→ 이 때, 프레임워크가 필요한 경우 라이브러리를 호출


  • 참고
프레임워크란?- 프로그래밍 및 엔지니어링 프레임워크 설명 - AWS

플러그인(Plug-in)

  • 어플리케이션 또는 소프트웨어에 추가적인 기능과 기능 확장을 위한 일종의 파일 콜렉션
    • 컴포넌트, 링크 및 정책을 포함하여 선택하여 사용
  • 외부에서 제공되는 플러그인으로 기존 어플리케이션 또는 소프트웨어의 인터페이스, 기능을 선택적으로 확장이 가능
    • 주로 기존 기능의 확장
  • config.json 구성 파일이 포함되어 확장기능을 구현하는 파일의 규칙에 따라서 기능을 확장

  • 참고
플러그인 개념

 

미들웨어(middleware)

  • 서로 다른 애플리케이션이 서로 통신하는 데 사용되는 소프트웨어
    • 애플리케이션 프로그래밍 인터페이스(API)를 제공
  • 단일 시스템에 원활하게 통합할 수 있도록 다양한 기술, 도구, 데이터베이스 간에 다리 역할
  • ex)  ****Windows 프런트엔드 애플리케이션은 Linux 백엔드 서버에서 데이터를 송수신하기 그 중간역할
  • 기능
    • 애플리케이션 개발을 지원하고 디자인 프로세스를 단순화
      • 미들웨어가 없다면 데이터 교환 모듈을 구성요소 마다 구축을 해야함

  • 참고
https://aws.amazon.com/ko/what-is/middleware/

 

마크업 언어(Markup Language)

  • 텍스트 기반의 문서를 처리하기 위해 구조화하고 포맷팅하는 데 사용되는 언어
    • 일정한 규칙에 따라 태그(tag)와 속성(attribute)을 사용하여 문서의 구조와 의미를 표현
  • 텍스트 문서와 파일이 기종과 독립적으로 응용 프로그램 간에 교환될 수 있도록 이식성을 높이기 위해 설계
  • Example
    • HTML (HyperText Markup Language)
      • WWW 웹 페이지의 구조와 컨텐츠를 정의
    • XML (eXtensible Markup Language)
      • 다목적 마크업 언어, 데이터 저장,교환,공유를 주 목적으로 두고 있음
    • SVG (Scalable Vector Graphics)
      • 벡터 기반 시각화된 그래픽 기술을 위한 마크업 언어

  • 참고
https://terms.tta.or.kr/dictionary/dictionaryView.do?word_seq=048464-2

 

검색 엔진 최적화(Search Engine Optimize)

  • 웹 페이지에서 검색 엔진 결과 페이지(SERP)에서 상위에 나타나도록 해 ****검색엔진에서 더 찾기 쉽도록 사이트를 개선하는 프로세스
    • 검색엔진에서 콘텐츠를 더 쉽게 크롤링하고 색인을 생성
    • SEO를 제공하는 서비스들 각자 고유의 알고리즘과 전략을 사용하여 제공

  • 참고
https://developers.google.com/search/docs?hl=ko

 

버그(Bug)

  • 컴퓨터 프로그램 또는 소프트웨어에서 발생하는 문제나 오류를 가리키는 용어
    • 예기치 않은 동작
  • 디버깅을 통해 문제를 빠르게 식별하고 수정, 업데이트 해야함

에러(Error)

**Java 기준

  • 프로그램 코드에 의해서 수습이 될 수 없을 만한 치명적인 심각한 오류
    • 프로그램의 비정상적인 종료일 경우, 막을 수 없음
    • 메모리 부족 OutOfMemoryError, 스택오버플로우 StackOverflowError 등의 오류는 복구 불가
  • 종류
    • 컴파일 에러 : 컴파일 시 발생하는 에러
    • 런타임 에러 : 프로그램 실행중 발생하는 에러
    • 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 에러

예외(Exception)처리

**Java 기준

  • 프로그램 오류가 발생했을 때, 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류에 대해서 이에 대한 사전 처리, 대비를 위한 코드를 짜는 것
  • 예기치 못한 예외 발생으로 인한 실행 프로그램의 갑작스런 비정상 종료를 막고, 정상적인 실행상태를 유지하느도록 하는것
    • Java에서는 예외 Exception 클래스를 정의되어, 예외 발생 시, 해당 인스턴스가 만들어짐
      • 목적에 따라 의도적으로 발생시킬 수있음

  • 참고
    • 남궁 성 , “Java의 정석” , 도우출판414p.

트래픽(Traffic)

  • 네트워크를 통해 전송되는 데이터의 양이나 패킷의 흐름
    • 모든 종류의 데이터의 흐름을 포함
  • 데이터 트래픽일 경우, 실제 데이터의 양, 네트워크 트래픽일 경우, 데이터의 흐름에 따라 걸리는 네트워크/시스템에 걸리는 부하를 통칭하기도 함