안녕하세요! ‘앱 만들기, 레고 블록 조립과 똑같아요!’ 시리즈의 두 번째 시간입니다.
지난 1편에서는 앱의 ‘겉모습(UI)’과 ‘노는 재미(UX)’가 얼마나 중요한지, 레고 작품에 비유해서 설명해 드렸죠? 오늘은 앱의 겉모습은 아니지만, 앱이 제대로 움직이려면 꼭 필요한 보이지 않는 핵심 블록들에 대해 알아볼 거예요.
마치 레고 작품이 겉모습만 멋지다고 끝이 아니죠? 자동차라면 엔진이 있어야 하고, 복잡한 로봇이라면 뇌 역할을 하는 부품이 필요하듯이요.
오늘 우리가 살펴볼 ‘서버’, ‘DB’, ‘API’는 바로 앱의 보이지 않는 곳에서 묵묵히 제 역할을 해주는 레고 블록들이랍니다. 자, 그럼 레고 마법상자와 부품 서랍장을 함께 열어볼까요?
서버 (Server) | 우리 레고 작품을 작동시키는 ‘마법 상자’
서버는 앱이 24시간 내내 작동하고, 전 세계 수많은 사람들의 요청을 처리할 수 있게 해주는 ‘마법 상자’ 또는 **’전시 공간’**이라고 생각하면 이해하기 쉬워요.
상상해 보세요. 여러분이 레고로 멋진 자율주행 자동차를 만들었어요. 이 자동차가 멈추지 않고 계속해서 움직이려면 강력한 전기가 계속 공급되어야 하고, 운전 명령을 내려줄 똑똑한 뇌가 필요하겠죠?
서버가 바로 그런 역할을 합니다!
- 24시간 내내 켜져 있어요: 여러분의 앱이 잠들지 않고 언제든지 사용자들의 접속을 기다리죠. 마치 마법 상자가 밤낮없이 작동해서 레고 자동차에 에너지를 공급하는 것처럼요.
- 정보를 주고받아요: 여러분이 ‘좋아요’를 누르거나, 친구에게 메시지를 보내면, 이 정보들을 받아서 처리하고 다른 사람들에게 전달해주는 역할을 해요.
- 무엇이든 시키는 대로 해요: 앱 사용자들이 요청하는 모든 작업(사진 올리기, 게시글 보기, 상품 구매하기 등)을 처리해주는 지시자이자 실행자예요.
그래서 서버는 우리 앱의 ‘심장’이라고도 부를 수 있습니다. 이 심장이 멈추면 앱도 움직이지 못하는 거죠.
DB (Database) | 레고 블록을 종류별로 정리해둔 ‘부품 서랍장’
DB는 데이터베이스(Database)의 줄임말이에요. 이 용어는 우리가 만든 레고 작품에 필요한 모든 부품을 종류별로, 깔끔하게 정리해둔 부품 서랍장이라고 생각하면 돼요.
레고로 커다란 성을 만들려면 수많은 블록들이 필요할 거예요. 빨간색 2×4 블록, 노란색 1×1 블록, 성벽 모양 블록, 창문 블록 등등… 이런 블록들을 마구잡이로 섞어두면 나중에 필요한 걸 찾기가 너무 힘들겠죠?
데이터베이스가 바로 이런 중요한 정보를 체계적으로 보관하는 곳입니다.
- 회원들의 정보: 아이디, 비밀번호, 이름, 연락처 같은 정보들.
- 게시판에 올라온 글: 누가 언제 어떤 내용을 썼는지, ‘좋아요’는 몇 개인지 등.
- 쇼핑몰의 상품 정보: 상품 이름, 가격, 사진, 재고 수량 등.
이런 데이터들은 ‘정확하고 빠르게’ 찾아 쓸 수 있도록 꼼꼼하게 정리되어 있어야 해요. 만약 DB가 없다면, 앱은 마치 부품을 아무렇게나 쌓아둔 채 원하는 블록을 찾아 헤매는 모습과 다를 바 없을 거예요.
API (Application Programming Interface) | 다른 회사의 ‘특수 블록’을 가져와 끼우는 ‘연결 통로’
API는 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)의 줄임말입니다. 이 용어는 내 레고 작품에 다른 회사에서 만든 특수 블록을 가져와 끼울 수 있게 해주는 연결 통로예요.
여러분이 레고로 멋진 자동차를 만들었는데, 갑자기 “어? 이 자동차에 번쩍이는 네비게이션 화면을 달고 싶다!”라는 생각이 들었어요. 하지만 네비게이션 블록을 처음부터 만드는 건 너무 어렵고 시간도 많이 걸리겠죠?
이때, 이미 네비게이션 블록을 아주 잘 만들어 놓은 다른 회사(예: 네이버 지도, 카카오 지도)가 있다면, 그 회사에게 “저… 제가 만든 차에 이 멋진 네비게이션 블록 좀 빌려 쓸 수 있을까요?” 하고 물어보는 거예요. 그리고 API는 이 요청을 듣고 “네, 이쪽 통로로 오시면 됩니다!” 하고 길을 안내해주는 역할을 하죠.
앱으로 예를 들어볼까요?
- 카카오 로그인 / 네이버 로그인: 내가 만드는 앱에 회원가입, 로그인 기능을 넣고 싶을 때, 이 기능을 처음부터 만들지 않고 카카오나 네이버의 로그인 API를 가져와 ‘톡’하고 붙이는 거예요.
- 지도 서비스: 우리 동네 맛집 앱을 만들 때, 네이버 지도 API를 가져와서 지도를 보여주고 위치를 표시하는 기능을 쉽게 추가할 수 있어요.
- 날씨 정보: 현재 날씨를 알려주는 앱을 만들 때, 기상청 API를 가져와서 실시간 날씨 정보를 받아볼 수 있죠.
API 덕분에 우리는 모든 기능을 처음부터 만들 필요 없이, 다른 전문가들이 만들어 놓은 훌륭한 ‘특수 블록’들을 가져와서 내 앱에 끼워 넣을 수 있게 된답니다. 참 편리하죠?
정리하면… 보이지 않는 곳의 세 가지 핵심 블록!
어떠신가요? 어렵게만 느껴졌던 서버, DB, API가 이제는 조금 더 친숙하게 느껴지시나요?
- 서버: 24시간 내내 작동하며 앱의 모든 요청을 처리하는 ‘마법 상자’
- DB: 중요한 정보를 깔끔하게 정리해 보관하는 ‘부품 서랍장’
- API: 다른 회사에서 만든 편리한 ‘특수 블록’을 가져와 연결하는 ‘통로’

이 세 가지 블록이 겉으로는 보이지 않아도, 튼튼하게 제 역할을 해주어야 우리가 만든 앱이라는 레고 작품이 완벽하게 작동할 수 있답니다.
다음 시간에는 앱 개발의 과정을 이해하는 데 중요한 ‘프론트엔드’와 ‘백엔드’라는 두 가지 조립 방식에 대해 알아보겠습니다.
<앱 만들기, 레고 블록 조립과 똑같아요!> 시리즈에 계속해서 많은 관심 부탁드려요!