[https://drive.google.com/file/d/1OvoJRVdMK-l9d_iGoBYpl3bAesB39gHu/view?usp=drive_link](https://drive.google.com/file/d/1OvoJRVdMK-l9d_iGoBYpl3bAesB39gHu/view?usp=drive_link)

소프트웨어 개발 핵심 용어사전

이 문서는 소프트웨어 개발 생태계를 구성하는 핵심 개념들을 체계적으로 정리한 교안입니다. IT 현업에서 반복적으로 등장하는 용어들의 정의, 상호 관계, 그리고 실무적 맥락을 다룹니다.


1. 서비스의 구조: 클라이언트-서버 아키텍처

정의:

웹 서비스는 **요청하는 쪽(클라이언트)**과 **처리하는 쪽(서버)**의 역할 분리를 기반으로 동작합니다. 이 구조를 이해하면 서비스 전체의 데이터 흐름이 보입니다.

용어 정의 비유 실무 포인트
클라이언트 & 서버 서비스를 요청하는 주체와 제공하는 주체 손님(클라이언트)과 주방(서버) 모든 웹 통신의 기본 단위
프론트엔드 사용자가 직접 마주하는 화면(UI) 영역 식당의 홀 — 인테리어, 메뉴판, 동선 사용자 경험(UX)과 첫인상을 결정
백엔드 화면 뒤에서 데이터를 처리하는 서버 영역 식당의 주방 — 조리, 식재료 관리, 위생 비즈니스 로직, 데이터 무결성, 보안을 담당
풀스택 프론트엔드와 백엔드를 모두 다루는 역할 홀과 주방을 오가며 운영하는 사장 겸 셰프 전체 아키텍처 이해가 전제되어야 함

실무 맥락:


2. 개발 도구의 분류: 프레임워크, 라이브러리, SDK, IDE

정의:

소프트웨어 개발은 모든 것을 직접 만드는 것이 아니라, 용도에 맞는 도구를 선택하고 조합하는 과정입니다. 도구 간의 차이를 이해하는 핵심은 **'제어권이 누구에게 있는가'**입니다.

핵심 개념 — 제어의 역전(IoC, Inversion of Control):