안녕하세요!
오늘은 웹이나 앱 개발을 공부하다 보면 쏟아지는 용어들 정리해보려고 합니다.
처음에 개발 공부 시작하면 진짜 이게 제일 힘들어요. 개념 하나 찾으면 모르는 단어가 또 나오고, 그거 찾으면 또 모르는 게 나오는 그 무한루프... 저도 처음엔 그냥 "일단 외워야지" 했다가 다 날아가는 경험을 했습니다.
그래서 이번엔 단순히 단어 뜻만 나열하는 게 아니라, 각 용어들이 서로 어떤 관계인지, 실제 개발 흐름에서 어디에 위치하는지를 중심으로 정리해봤어요.
이 글 하나로 전체 그림이 잡혔으면 합니다.
![]() |
| [웹개발 기초] 웹·앱 개발할 때 나오는 용어 |
1. 일단 전체 구조부터 보고 들어가자
용어들을 하나씩 보기 전에, 전체 그림을 먼저 머릿속에 잡아두는 게 훨씬 이해가 빠릅니다.
웹·앱 개발은 크게 이런 흐름으로 이루어져 있어요:
[사용자]
↕ 화면 보고 클릭
[프론트엔드 / 클라이언트]
↕ API 요청 / 응답 (HTTP, JSON)
[백엔드 / 서버]
↕ 데이터 읽기 / 쓰기
[데이터베이스]
이 4개 레이어가 웹·앱의 핵심 구조입니다. 모든 용어들은 결국 이 4가지 중 하나에 속하거나, 이 사이를 연결하는 역할을 해요.
이 그림 기억해두고 아래 내용 읽으면 훨씬 잘 들어옵니다.
2. 프론트엔드 영역 — 사용자가 직접 보는 부분
프론트엔드(Frontend) 는 사용자가 실제로 눈으로 보고 손으로 조작하는 화면을 만드는 영역입니다.
앱을 켰을 때 보이는 버튼, 텍스트, 이미지, 레이아웃 — 이 모든 게 프론트엔드 영역이에요.
여기서 자주 나오는 용어들을 정리해볼게요.
HTML — 웹 페이지의 뼈대를 잡는 언어입니다. "여기에 제목, 여기에 버튼, 여기에 이미지" 같은 구조를 잡아줘요.
CSS — HTML로 잡은 뼈대를 꾸미는 언어입니다. 색상, 폰트, 배치, 크기 같은 시각적인 부분을 담당해요.
JavaScript (JS) — 웹 페이지에 동작을 넣어주는 언어입니다. 버튼 클릭하면 뭔가 일어나고, 데이터 불러와서 화면에 표시하고, 애니메이션 넣는 것들이 전부 JS의 역할이에요.
React / Vue / Next.js — JavaScript를 더 편하게 쓸 수 있도록 도와주는 프레임워크/라이브러리입니다. 혼자 처음부터 다 짜는 것보다 훨씬 빠르고 구조적으로 만들 수 있어요. 요즘 프론트엔드 개발에서 React는 거의 기본처럼 쓰입니다.
Flutter — 구글이 만든 크로스플랫폼 프레임워크예요. 코드 하나로 iOS, Android, 웹 앱을 동시에 만들 수 있어서 초보자한테도 인기가 많습니다. 이 블로그에서도 자주 다루는 그거 맞아요.
UI (User Interface) — 사용자가 직접 조작하는 화면 요소 전체를 말합니다. 버튼, 입력창, 메뉴 같은 것들이에요.
UX (User Experience) — UI를 사용하면서 느끼는 경험을 말해요. "이 앱 쓰기 편하다 / 불편하다"가 UX의 영역입니다. 기능이 다 있어도 흐름이 어색하면 UX가 나쁜 거예요.
컴포넌트(Component) — 화면을 구성하는 재사용 가능한 조각입니다. 예를 들어 버튼 하나, 카드 하나, 헤더 하나가 컴포넌트예요. React나 Flutter 모두 이 컴포넌트 단위로 화면을 조립합니다.
렌더링(Rendering) — 데이터나 코드를 실제 화면에 그려내는 과정이에요. "렌더링이 느리다" 하면 화면이 늦게 표시된다는 뜻입니다.
3. 백엔드 영역 — 눈에 안 보이지만 핵심인 부분
백엔드(Backend) 는 사용자 눈에는 보이지 않지만, 실제 로직이 돌아가는 서버 쪽 영역입니다.
로그인 처리, 데이터 저장, 결제 연동, 이메일 발송 같은 것들이 다 백엔드에서 일어나요.
서버(Server) — 요청을 받아서 처리하고 응답을 돌려주는 컴퓨터(또는 프로그램)입니다. 항상 켜져 있어야 하고, 여러 사람의 요청을 동시에 처리할 수 있어야 해요.
Node.js — JavaScript로 서버를 만들 수 있게 해주는 환경입니다. 프론트엔드에서 JS를 쓰던 사람이 백엔드도 JS로 짤 수 있어서 진입장벽이 낮은 편이에요.
Python (Django / FastAPI / Flask) — 백엔드 개발에 많이 쓰이는 언어예요. 문법이 읽기 쉽고 AI/ML 연동이 강해서 요즘 더 주목받고 있어요.
REST API — 클라이언트와 서버가 데이터를 주고받는 방식 중 가장 널리 쓰이는 규칙입니다. "이 주소로 GET 요청 보내면 데이터 줄게요, 이 주소로 POST 보내면 저장해줄게요" 같은 약속이에요.
엔드포인트(Endpoint) — API에서 특정 기능을 수행하는 URL 주소를 말해요. 예를 들면 /api/users는 유저 목록을 가져오는 엔드포인트, /api/login은 로그인 처리하는 엔드포인트 이런 식이에요.
인증(Authentication) — "이 사람이 누구인지" 확인하는 과정입니다. 로그인이 여기에 해당해요.
인가(Authorization) — "이 사람이 이걸 할 권한이 있는지" 확인하는 과정이에요. 로그인은 됐는데 관리자 페이지에 접근할 수 있는지 체크하는 게 인가입니다. 인증이랑 인가, 이름이 비슷해서 많이 헷갈리는데 완전히 다른 개념이에요.
JWT (JSON Web Token) — 로그인 후 발급되는 토큰의 한 종류입니다. 이 토큰을 요청마다 같이 보내면 서버가 "아, 로그인된 사람이구나" 하고 인식해요. 세션 방식보다 서버 부담이 적어서 요즘 많이 쓰입니다.
미들웨어(Middleware) — 요청이 서버에 도착하고 실제 처리되기 전에 중간에서 먼가를 해주는 코드예요. 로그 남기기, 인증 토큰 검사, 요청 데이터 가공 같은 것들이 미들웨어로 처리됩니다. 경비원 같은 역할이에요 — 들어오기 전에 신분 확인하고 통과시키는.
4. 데이터베이스 영역 — 데이터가 실제로 쌓이는 곳
데이터베이스(Database, DB) 는 데이터를 저장하고 꺼내오는 창고입니다.
회원 정보, 게시물, 주문 내역, 채팅 기록 — 앱에서 생성되는 모든 데이터가 데이터베이스에 저장돼요.
데이터베이스는 크게 두 가지 종류로 나뉩니다.
관계형 데이터베이스 (RDB / SQL) — 표(Table) 형태로 데이터를 저장합니다. 엑셀 시트처럼 행과 열로 데이터를 관리해요. MySQL, PostgreSQL, SQLite가 대표적이에요. 데이터 구조가 명확하고 관계를 정의할 수 있어서 복잡한 데이터 처리에 강합니다.
비관계형 데이터베이스 (NoSQL) — 표 형태가 아닌 유연한 구조로 저장합니다. JSON처럼 생긴 문서(Document) 형태로 저장하는 MongoDB가 대표적이에요. 데이터 구조가 자주 바뀌거나 대용량 처리가 필요할 때 유리합니다.
CRUD — 데이터베이스에서 하는 작업 4가지를 묶어서 부르는 말이에요.
- Create — 데이터 생성
- Read — 데이터 조회
- Update — 데이터 수정
- Delete — 데이터 삭제
앱 기능 대부분이 결국 이 CRUD 중 하나입니다. "게시물 작성" = Create, "피드 보기" = Read, "댓글 수정" = Update, "계정 탈퇴" = Delete 이런 식으로요.
ORM (Object-Relational Mapping) — 데이터베이스를 직접 SQL 언어로 다루지 않고, 내가 쓰는 언어(Python, JS 등)의 코드로 다룰 수 있게 해주는 도구입니다. 예를 들어 Python의 SQLAlchemy, Django ORM 같은 게 있어요. SQL 몰라도 어느 정도 DB를 다룰 수 있게 해줘서 초보자한테 편리하게 느껴질 수 있는데, 복잡한 쿼리는 결국 SQL 알아야 합니다.
스키마(Schema) — 데이터베이스의 구조 설계도예요. "회원 테이블에는 id, 이름, 이메일, 비밀번호 컬럼이 있고, 게시물 테이블에는 id, 제목, 내용, 작성자id가 있다" 같은 걸 정의한 게 스키마입니다.
5. 연결고리 영역 — API와 그 주변 개념들
프론트엔드와 백엔드를 이어주는 영역에서 자주 나오는 용어들도 따로 정리해볼게요.
API (Application Programming Interface) — 서버가 클라이언트한테 열어둔 창구입니다. "이 주소로 요청하면 이 데이터 줄게요" 라는 약속이에요. 이미 이전 글에서 다뤘으니 익숙하죠?
JSON — API로 데이터를 주고받을 때 가장 많이 쓰이는 형식입니다. 키:값 쌍으로 이루어진 텍스트 형태예요. 사람도 읽기 편하고 거의 모든 언어에서 파싱할 수 있어서 사실상 표준이 됐습니다.
fetch / axios — 프론트엔드에서 API 요청을 보낼 때 쓰는 도구입니다. fetch는 브라우저 내장 기능이고, axios는 더 편하게 쓸 수 있게 만들어진 라이브러리예요. 바이브코딩으로 AI가 만들어준 코드에 이게 보이면 "아, 여기서 서버한테 뭔가 요청하고 있구나" 하고 읽으면 됩니다.
CORS (Cross-Origin Resource Sharing) — 다른 도메인 간에 API 요청을 허용하는 설정입니다. 프론트엔드 서버 주소랑 백엔드 서버 주소가 다를 때, 기본적으로는 보안상 요청이 막혀요. 백엔드에서 "이 주소는 허용할게요" 하고 열어줘야 하는데, 이게 CORS 설정이에요. 초보자가 API 연결하다가 가장 많이 만나는 에러 중 하나입니다.
환경변수 (.env) — API 키나 데이터베이스 비밀번호 같은 민감한 정보를 코드 안에 직접 쓰지 않고 별도 파일에 분리해서 관리하는 방식이에요. .env 파일 만들고 거기다 쓰는 게 보통입니다. 이 파일은 절대 깃허브에 올리면 안 돼요.
배포(Deploy) — 내 컴퓨터에서 개발한 코드를 실제 서버에 올려서 다른 사람도 접근할 수 있게 만드는 과정입니다. "배포했다" = "이제 실제로 쓸 수 있다"는 뜻이에요. Vercel, Netlify, AWS, Firebase 같은 서비스들이 배포 플랫폼입니다.
버전 관리 / Git — 코드 변경 이력을 추적하고 관리하는 도구예요. "어제 코드로 돌아가고 싶다", "여러 사람이 같은 코드를 동시에 수정하고 싶다" 같은 상황에서 필수입니다. GitHub는 Git으로 관리하는 코드를 온라인에 올려두는 플랫폼이에요.
6. 전체 관계 한눈에 정리
여기까지 나온 용어들을 전체 흐름에 배치하면 이렇게 됩니다.
[사용자]
↕ 화면 조작
[프론트엔드]
HTML / CSS / JavaScript
React / Flutter / Vue
UI, UX, 컴포넌트, 렌더링
↕ fetch / axios로 API 요청 (JSON 형식)
↕ HTTP 메서드 (GET / POST / PUT / DELETE)
↕ CORS 설정으로 허용 여부 체크
[백엔드 / 서버]
Node.js / Python / Java
REST API / 엔드포인트
인증(Authentication) / 인가(Authorization)
JWT 토큰 / 미들웨어
↕ ORM 또는 SQL 쿼리
[데이터베이스]
MySQL / PostgreSQL (관계형)
MongoDB (비관계형)
CRUD / 스키마그리고 전체를 감싸는 것들:
- Git / GitHub — 코드 버전 관리
- .env / 환경변수 — 민감한 정보 분리 관리
- 배포 플랫폼 — 실제 서비스 가동
이 구조가 눈에 들어오기 시작하면, AI가 뭔가 만들어줬을 때 "이 코드는 프론트엔드 부분이고, 이 부분은 API 연결이고, 여기가 백엔드 로직이구나" 하고 위치 파악이 됩니다.
용어가 많아 보여도 결국 다 연결되어 있어요
처음 볼 땐 용어가 너무 많아서 막막하게 느껴질 수 있어요. 근데 솔직히 이걸 다 처음부터 외울 필요는 없습니다.
"이런 게 있구나, 이 위치에 있구나" 하고 전체 그림을 먼저 잡아두고, 실제로 뭔가 만들면서 하나씩 부딪히는 게 훨씬 빠릅니다.
오늘 정리한 내용 기준으로:
- 프론트엔드 / 백엔드 / 데이터베이스 역할 구분
- API와 JSON이 이 사이를 어떻게 연결하는지
- CRUD, JWT, CORS, ORM 같은 실무 용어 맥락
- 전체 흐름에서 각 용어의 위치
이 정도만 잡아도 개발 공부할 때 훨씬 덜 헤맵니다.
열공하세요! 🙌
![[웹개발 기초] 웹·앱 개발할 때 나오는 용어](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk9K5j5BwI8DnVW_d_VdXTSHonI49pIFk8NNMzLeHpI_zGjT9558zY6M4Pt2qJ5uMxKG90FQVA68BvvTB7MQMltosObKf4kGdv-Gzz1bd0V43YrWTL0NCm2Ejw1cxpMgUbre5xiqaNz4Z43H8oeKq9hqafVRLDN8irafHFj5mAVxwYgdhzH3XNnudxHVM/w320-h180/ChatGPT%20Image%202026%EB%85%84%206%EC%9B%94%208%EC%9D%BC%20%EC%98%A4%ED%9B%84%2004_33_39.png)
![[웹개발 기초] 클라이언트-서버란 무엇인가?](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho2w9TgaQzPhonsY2N8WXBwXnU1USS1jt0_kq2UFHeaGZ7jhW3KoBzpg1INg-A3DHUdJe0VgfvVr_7E1NhJ8wNt29avzarRFYqhrxIAs2i9ayY4j5bPWZ9gvFn0v2MwbDh4DzbHJC5jy5uoonr9g_jn2afaZyUZnKgK96lHdiLevTxrQHc0d8ib3BFjIM/w320-h180/ChatGPT%20Image%202026%EB%85%84%206%EC%9B%94%208%EC%9D%BC%20%EC%98%A4%ED%9B%84%2004_26_33.png)
![[웹개발 기초] CSS란 무엇인가? — HTML이랑 뭐가 다른지, 왜 쓰는지](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4o2j1ceJj906Kz3Mr5KOe-pqf0aCeE5pxNPviaHD1kkUW6TRbdr6MxJ8fCYVCBBgMAY9KIKsRe1oDoYZ5ZCG9eayH_Ghh8z8_soSovfhyphenhyphenLT8qQxR4PIEhrHYep4eqHBZmLzfZ_wZbMsDrKqjZTRygxiQMoCK4fgRR2fpNaRox5JqgWjLijt2gwqrLEjE/w320-h189/ChatGPT%20Image%202026%EB%85%84%206%EC%9B%94%203%EC%9D%BC%20%EC%98%A4%EC%A0%84%2002_32_59.png)
![[파이썬 기초] VSCode로 파이썬 앱 개발 시작하기: 입문자용 환경 세팅부터 유튜브 다운로더 프로그램 만들기 (pip, uv, venv, yt-dlp 완벽 정리)](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ4FuPpVaB0DJGpSkq0F3nKjYJ0orR62jbE2eqBfptTEsD-eAstf8_IatgocagGImL5M9zF1Xr9gSFs4WeR7B7bGJFuav38YW31-MeTa0zRPf5w2gAcQxriZqFBcOZ2xs4yKqeh7VdMgpo_pqgskAiE7cnGmvUeYwTmBQnjydYyq_yeejpBrA7zITaqOM/w320-h176/ChatGPT%20Image%202026%EB%85%84%206%EC%9B%94%202%EC%9D%BC%20%EC%98%A4%ED%9B%84%2005_16_15.png)