Column — Dev Overview
비개발자를 위한 개발 용어 지도
개발, 어렵지 않습니다. 조별과제 해본 적 있다면요.
개발이란?
5개 용어컴퓨터에게 내리는 명령어를 사람이 읽을 수 있는 언어로 작성한 것. 프로그램의 설계도이자 레시피.
컴퓨터 프로그램을 만들기 위해 코드를 작성하는 행위. 문제를 분석하고, 해결 방법을 설계하고, 코드로 구현하는 전체 과정.
컴퓨터에서 실행되는 프로그램의 총칭. 앱, 웹사이트, 운영체제 등 눈에 보이지 않는 모든 프로그램.
프로그램이 의도한 대로 동작하지 않는 오류. 코드의 논리적 실수나 예상하지 못한 상황에서 발생한다.
버그를 찾아서 수정하는 과정. 개발 시간의 상당 부분을 차지하며, 문제의 원인을 추적하는 능력이 핵심.
프론트엔드 vs 백엔드
7개 용어사용자가 직접 보고 상호작용하는 화면 부분. 웹사이트의 레이아웃, 버튼, 애니메이션 등을 만든다.
사용자 눈에 보이지 않는 서버 쪽 로직. 데이터 저장, 인증, 비즈니스 로직 처리를 담당한다.
클라이언트의 요청을 받아 처리하고 응답을 보내주는 컴퓨터. 웹사이트, 앱의 데이터가 실제로 저장되고 실행되는 곳.
서버에 요청을 보내는 쪽. 보통 사용자의 웹 브라우저나 앱을 뜻한다.
Application Programming Interface. 프로그램 간의 소통 규약. 서로 다른 소프트웨어가 데이터를 주고받는 방식을 정의한다.
사용자가 제품과 상호작용하는 시각적 요소. 버튼, 메뉴, 입력창 등 눈에 보이는 모든 인터페이스.
사용자가 제품을 사용하면서 느끼는 전체적인 경험. 쉽게 쓸 수 있는지, 만족스러운지 등 종합적인 사용 느낌.
주요 프로그래밍 언어
10개 용어HTML은 웹페이지의 구조(제목, 문단, 이미지 배치)를 만들고, CSS는 색상, 글꼴, 레이아웃 등 디자인을 입히는 언어.
웹페이지에 동적인 기능을 추가하는 언어. 클릭, 스크롤, 실시간 업데이트 등 상호작용을 담당한다.
읽기 쉬운 문법으로 인기 있는 범용 프로그래밍 언어. 데이터 분석, AI, 웹 개발, 자동화 등 거의 모든 분야에서 쓰인다.
대규모 시스템에서 안정적으로 작동하는 객체지향 언어. 은행, 대기업, 안드로이드 앱 등에 많이 사용된다.
Apple이 만든 프로그래밍 언어. iPhone, iPad, Mac 앱을 만들 때 사용한다. 안전하고 빠르게 설계되었다.
Java를 더 간결하고 안전하게 만든 현대적 언어. Google이 안드로이드 공식 언어로 채택했다.
개발자의 생산성과 행복을 중시하는 언어. Ruby on Rails 프레임워크와 함께 빠른 웹 개발에 강점이 있다.
JavaScript에 타입 시스템을 추가한 언어. 코드 작성 시 오류를 미리 잡아주어 대규모 프로젝트에서 특히 유용하다.
데이터베이스에서 데이터를 조회, 삽입, 수정, 삭제하는 데 쓰는 질의 언어. 거의 모든 서비스에서 데이터 관리에 사용한다.
웹 개발 초기부터 사용된 서버 사이드 언어. WordPress, Facebook 초기 버전 등 많은 웹사이트의 기반. 현재도 웹의 상당 부분을 차지한다.
프레임워크와 라이브러리
9개 용어그 안에서 내용을 채워 넣는 방식
가져다 쓰는 자유로운 방식
Meta(Facebook)가 만든 UI 라이브러리. 컴포넌트 기반으로 화면을 조립하듯 만든다. 가장 많이 쓰이는 프론트엔드 기술.
학습 곡선이 낮고 유연한 프론트엔드 프레임워크. 작은 프로젝트부터 대규모까지 점진적으로 도입 가능.
Google이 만든 풀패키지 프론트엔드 프레임워크. 라우팅, 상태관리, HTTP 통신 등 모든 것이 내장되어 있다.
JavaScript를 서버에서도 실행할 수 있게 해주는 런타임 환경. 프론트엔드와 같은 언어로 백엔드도 개발 가능.
Python 기반의 웹 프레임워크. "배터리 포함" 철학으로 웹 개발에 필요한 거의 모든 기능을 기본 제공한다.
Ruby 기반의 웹 프레임워크. "Convention over Configuration" 원칙으로 빠르게 웹 애플리케이션을 만들 수 있다.
Java 기반의 엔터프라이즈급 프레임워크. 대규모 시스템, 금융, 대기업 서비스에서 표준으로 사용된다.
React 문법으로 iOS와 Android 앱을 동시에 만들 수 있는 크로스플랫폼 프레임워크. Meta가 개발.
Google이 만든 크로스플랫폼 UI 프레임워크. Dart 언어를 사용하며 아름다운 UI와 높은 성능이 강점.
앱 개발
5개 용어특정 플랫폼(iOS 또는 Android)에 맞춰 해당 플랫폼 전용 언어로 개발한 앱. 성능과 사용자 경험이 가장 좋다.
하나의 코드베이스로 여러 플랫폼(iOS, Android 등)에서 동작하는 앱을 만드는 방식. React Native, Flutter 등이 대표적.
웹 브라우저에서 실행되는 애플리케이션. 설치가 필요 없으며 URL로 접근한다. 반응형 디자인으로 모바일에서도 동작.
Progressive Web App. 웹 기술로 만들었지만 네이티브 앱처럼 홈 화면에 추가하고, 오프라인에서도 사용할 수 있는 웹앱.
웹 기술(HTML, CSS, JS)로 만든 앱을 네이티브 앱 껍데기로 감싸서 앱스토어에 배포하는 방식.
웹사이트가 보이기까지
10개 용어사람이 기억하기 쉬운 웹사이트 주소. 숫자로 된 IP 주소 대신 사용하는 이름 체계.
인터넷에 연결된 모든 기기의 고유 숫자 주소. 예: 142.250.196.110 (구글의 IP).
Domain Name System. 도메인 이름을 IP 주소로 변환해주는 시스템. 인터넷의 전화번호부 역할.
웹사이트의 파일을 저장하고 있다가 브라우저의 요청이 오면 해당 파일을 보내주는 컴퓨터.
웹사이트 파일을 서버에 올려두고 24시간 접근 가능하게 하는 서비스. 웹사이트의 "집"을 빌려주는 것.
웹에서 데이터를 주고받는 프로토콜. HTTPS는 HTTP에 보안(SSL/TLS)을 추가한 버전. 주소 앞의 자물쇠 아이콘.
Uniform Resource Locator. 인터넷에서 특정 리소스의 정확한 위치를 나타내는 주소.
웹사이트를 보기 위한 프로그램. Chrome, Safari, Firefox 등. 서버에서 받은 코드를 화면으로 변환해준다.
코드(HTML, CSS, JS)를 분석해서 사용자가 볼 수 있는 화면으로 변환하는 과정.
인터넷을 통해 서버, 저장소, 데이터베이스 등의 컴퓨팅 자원을 빌려 쓰는 서비스. AWS, GCP, Azure가 대표적.
배포(Deploy)란?
8개 용어개발한 소프트웨어를 실제 사용자가 쓸 수 있도록 서버에 올리는 과정. 코드를 "세상에 공개"하는 행위.
개발자가 코드를 작성하고 테스트하는 로컬 환경. 자유롭게 실험하고 수정할 수 있다.
프로덕션과 동일한 환경에서 최종 테스트를 진행하는 단계. 실제 배포 전 마지막 점검.
실제 사용자가 접속하는 운영 환경. 가장 안정적이어야 하며 오류가 발생하면 즉시 영향을 미친다.
Continuous Integration / Continuous Deployment. 코드 변경 시 자동으로 테스트하고 배포하는 자동화 체계.
코드가 작성부터 배포까지 거치는 자동화된 단계들의 연결. CI/CD를 구성하는 구체적인 작업 흐름.
배포 후 문제가 발생했을 때 이전 버전으로 되돌리는 것. 비상시 빠르게 복구하는 방법.
서비스가 중단되어 사용자가 접근할 수 없는 시간. 배포나 장애 시 발생하며, 최소화하는 것이 목표.
API란?
8개 용어Application Programming Interface. 소프트웨어 간의 통신 규약. 한 프로그램이 다른 프로그램의 기능을 사용하기 위한 약속된 방법.
웹에서 가장 널리 쓰이는 API 설계 방식. URL로 자원을 표현하고 HTTP 메서드(GET, POST 등)로 동작을 정의한다.
API에서 특정 자원이나 기능에 접근하기 위한 URL 경로. 요청을 보내는 목적지 주소.
클라이언트가 서버에 보내는 메시지. 어떤 데이터를 원하는지, 어떤 동작을 해달라는지 담고 있다.
서버가 클라이언트의 요청에 대해 보내는 결과. 요청한 데이터, 성공/실패 여부 등을 포함한다.
JavaScript Object Notation. 데이터를 주고받을 때 가장 많이 쓰는 텍스트 형식. 사람이 읽기 쉽고 컴퓨터가 처리하기 쉽다.
사용자나 시스템이 누구인지 확인하는 과정. 로그인, 비밀번호 확인 등으로 신원을 검증한다.
API를 사용할 수 있는 권한을 부여하는 고유 식별자. 누가 API를 호출하는지 추적하고 접근을 제어한다.
데이터베이스
8개 용어규칙적이고 정형화된 데이터
MySQL, PostgreSQL
자유롭고 비정형 데이터
MongoDB, Redis
데이터를 체계적으로 저장하고 관리하는 시스템. 회원 정보, 상품 목록, 게시글 등 모든 데이터가 여기에 저장된다.
데이터를 행(row)과 열(column)로 구성된 테이블에 저장하는 데이터베이스. 데이터 간 관계를 정의할 수 있다.
표 형식에 얽매이지 않고 유연한 구조로 데이터를 저장하는 데이터베이스. 대용량, 비정형 데이터에 강점.
관계형 데이터베이스에서 데이터를 저장하는 기본 단위. 행(레코드)과 열(필드)로 구성된다.
데이터베이스에 정보를 요청하는 명령문. "이런 조건의 데이터를 찾아줘"라고 질문하는 것.
데이터베이스의 구조를 정의한 설계도. 어떤 테이블이 있고, 각 테이블에 어떤 열(필드)이 있는지 정의한다.
Create(생성), Read(읽기), Update(수정), Delete(삭제). 데이터를 다루는 4가지 기본 동작.
데이터베이스에서 검색 속도를 높이기 위한 자료 구조. 책의 색인(목차)처럼 빠르게 원하는 데이터를 찾게 해준다.
개발자 직군
9개 용어사용자가 보는 화면(UI)을 만드는 개발자. HTML, CSS, JavaScript, React 등을 사용해 웹/앱의 인터페이스를 구현.
서버, 데이터베이스, API 등 보이지 않는 로직을 만드는 개발자. Python, Java, Node.js 등을 사용.
프론트엔드와 백엔드 모두 다룰 수 있는 개발자. 혼자서 서비스 전체를 만들 수 있는 능력을 갖춘다.
스마트폰 앱을 만드는 개발자. iOS(Swift), Android(Kotlin) 또는 크로스플랫폼(Flutter, React Native) 전문.
개발(Dev)과 운영(Ops)을 연결하는 역할. 배포 자동화, 서버 관리, 모니터링 등 서비스 안정성을 담당.
대용량 데이터를 수집, 저장, 가공하는 파이프라인을 설계하고 관리하는 엔지니어.
제품의 방향성을 결정하고 팀 간 소통을 조율하는 역할. 기술과 비즈니스 사이의 다리.
소프트웨어의 품질을 검증하는 역할. 버그를 찾고, 테스트 케이스를 작성하고, 기능이 의도대로 작동하는지 확인.
사용자 인터페이스를 설계하고 사용자 경험을 최적화하는 디자이너. 사용자 관점에서 제품을 설계한다.