Skip to main content
Summary

개발은 코드를 쓰는 일만이 아니다

많은 사람이 개발을 떠올리면 검은 화면에 알 수 없는 영어와 기호를 빠르게 입력하는 장면을 생각합니다. 물론 개발자는 코드를 씁니다. 하지만 개발의 핵심은 코드 그 자체가 아닙니다. 개발은 사람이 겪는 문제를 컴퓨터가 처리할 수 있는 방식으로 바꾸고, 실제로 작동하는 결과물로 만드는 일입니다.

예를 들어 동네 식당이 전화 주문 때문에 바쁘다고 해 봅시다. 손님은 메뉴를 물어보고, 직원은 주소를 받아 적고, 주방은 주문 순서를 확인해야 합니다. 이 과정에서 주문을 잘못 듣거나, 주소를 빠뜨리거나, 이미 품절된 메뉴를 받는 일이 생깁니다. 식당 주문 앱은 이런 문제를 줄이기 위해 만들어집니다.

앱에는 메뉴를 보여 주는 화면, 주문을 받는 기능, 결제하는 기능, 주방에 주문을 전달하는 기능이 들어갑니다. 겉으로는 버튼 몇 개처럼 보이지만, 그 뒤에는 "어떤 정보를 받아야 하는가", "어떤 순서로 처리해야 하는가", "문제가 생기면 어떻게 알려야 하는가" 같은 수많은 결정이 숨어 있습니다. 이 결정을 정리하고 실제 서비스로 만드는 과정이 개발입니다.

개발이란 무엇을 만드는 일인가AI 생성 이미지

개발자가 실제로 하는 일

개발자의 하루는 코드 작성만으로 채워지지 않습니다. 보통 개발은 다음과 같은 흐름으로 진행됩니다.

첫째, 문제를 분석합니다. 사용자가 무엇 때문에 불편한지, 어떤 상황에서 문제가 생기는지 살펴봅니다. 쇼핑몰이라면 "고객이 원하는 상품을 빨리 찾지 못한다"가 문제일 수 있습니다. 은행 앱이라면 "사용자가 이체 과정을 불안해한다"가 문제일 수 있습니다.

둘째, 해결 방법을 설계합니다. 여기서 설계란 건물을 짓기 전 도면을 그리는 일과 비슷합니다. 어떤 화면이 필요하고, 어떤 데이터가 오가며, 어떤 순서로 기능이 작동해야 하는지 정합니다. 이 단계가 부족하면 나중에 코드를 많이 써도 서비스가 어색하거나 자주 고장납니다.

셋째, 코드를 작성합니다. 코드는 컴퓨터에게 일을 시키기 위해 적는 자세한 지시문입니다. "로그인 버튼을 누르면 아이디와 비밀번호를 확인하라", "결제가 끝나면 주문 상태를 바꾸라" 같은 규칙을 컴퓨터가 이해할 수 있는 형태로 적는 것입니다.

넷째, 테스트합니다. 테스트는 만든 기능이 기대한 대로 움직이는지 확인하는 일입니다. 정상적인 경우만 보는 것이 아닙니다. 비밀번호를 틀렸을 때, 인터넷이 끊겼을 때, 같은 상품을 여러 명이 동시에 살 때처럼 예외 상황도 확인합니다.

다섯째, 수정하고 개선합니다. 처음부터 완벽한 서비스는 거의 없습니다. 사용자가 실제로 써 보면 예상하지 못한 불편이 드러납니다. 개발자는 오류를 고치고, 속도를 개선하고, 더 이해하기 쉬운 화면으로 바꿉니다.

이 흐름을 보면 개발은 한 번에 끝나는 작업이 아니라는 사실을 알 수 있습니다. 개발은 만들고, 확인하고, 고치고, 다시 개선하는 반복 과정입니다.

일상 서비스는 어떻게 개발 결과물이 되는가

우리가 매일 사용하는 서비스 대부분은 개발의 결과물입니다. 식당 주문 앱, 은행 앱, 쇼핑몰, 지도 앱, 병원 예약 시스템, 택시 호출 서비스가 모두 그렇습니다. 이 서비스들은 눈에 보이는 화면만으로 이루어지지 않습니다.

쇼핑몰을 예로 들어 보겠습니다. 사용자는 상품을 검색하고, 장바구니에 담고, 결제하고, 배송 상태를 확인합니다. 사용자의 입장에서는 자연스러운 흐름입니다. 하지만 서비스 안쪽에서는 여러 일이 동시에 일어납니다.

상품 정보가 저장된 곳에서 데이터를 가져오고, 재고가 남아 있는지 확인하고, 결제 회사와 정보를 주고받고, 주문 내역을 저장하고, 배송 시스템에 필요한 정보를 전달합니다. 사용자가 보는 것은 "결제 완료"라는 한 줄이지만, 그 한 줄 뒤에는 여러 기능이 연결되어 있습니다.

은행 앱도 마찬가지입니다. 사용자가 10만 원을 이체하면 앱은 단순히 숫자를 옮기는 것이 아닙니다. 본인 확인을 하고, 잔액을 확인하고, 계좌번호가 맞는지 확인하고, 거래 기록을 남기고, 문제가 생겼을 때 되돌릴 수 있는 절차를 마련해야 합니다. 돈과 개인정보를 다루기 때문에 안정성과 보안도 중요합니다.

이처럼 개발 결과물은 단순한 화면이 아니라 사람의 행동, 정보의 흐름, 규칙, 예외 상황을 하나로 묶은 시스템입니다. 그래서 좋은 개발을 하려면 기술뿐 아니라 사용자의 상황을 이해하는 능력도 필요합니다.

프로그래밍, 코딩, 소프트웨어 개발의 차이

개발을 이해하려면 비슷하게 쓰이는 말을 구분해 두면 좋습니다. 세 단어가 자주 섞여 쓰이지만, 강조하는 범위가 조금 다릅니다.

코딩은 코드를 작성하는 행위입니다. 요리로 비유하면 재료를 썰고 불을 조절하며 실제로 조리하는 단계에 가깝습니다. 컴퓨터가 실행할 수 있도록 명령을 적는 일이 코딩입니다.

프로그래밍은 문제를 해결하기 위한 절차를 만들고 그것을 코드로 표현하는 일입니다. 단순히 문장을 입력하는 것보다 조금 넓은 의미입니다. "어떤 순서로 처리해야 할까", "이 경우에는 어떤 판단을 해야 할까"를 생각하는 과정이 포함됩니다.

소프트웨어 개발은 더 넓은 말입니다. 문제 파악, 기획, 설계, 코딩, 테스트, 배포, 운영, 개선까지 포함합니다. 배포란 만든 서비스를 사용자가 실제로 쓸 수 있게 공개하는 일입니다. 운영은 공개한 뒤에도 서비스가 안정적으로 돌아가도록 관리하는 일입니다.

정리하면 코딩은 개발의 중요한 일부이지만 전부는 아닙니다. 코딩을 잘하는 것도 중요하지만, 무엇을 왜 만들어야 하는지 이해하지 못하면 좋은 결과물을 만들기 어렵습니다.

좋은 개발은 기능을 많이 넣는 것이 아니다

초보자가 흔히 하는 오해 중 하나는 기능이 많을수록 좋은 서비스라고 생각하는 것입니다. 하지만 좋은 개발은 기능의 개수로만 판단할 수 없습니다. 오히려 기능이 너무 많으면 사용자는 무엇을 눌러야 할지 헷갈리고, 서비스는 더 복잡해지며, 고장 날 가능성도 커집니다.

좋은 개발은 사용자의 문제를 안정적으로 해결합니다. 식당 주문 앱이라면 화려한 화면보다 주문이 정확히 들어가는 것이 먼저입니다. 은행 앱이라면 다양한 꾸미기 기능보다 이체가 안전하고 명확하게 처리되는 것이 중요합니다. 쇼핑몰이라면 상품을 찾고 결제하고 배송을 확인하는 기본 흐름이 끊기지 않아야 합니다.

여기서 안정적이라는 말은 "대부분의 상황에서 믿고 사용할 수 있다"는 뜻입니다. 사용자가 몰리는 시간에도 멈추지 않고, 잘못된 입력에는 친절하게 안내하고, 문제가 생기면 피해를 줄일 수 있어야 합니다. 개발자는 이런 안정성을 위해 보이지 않는 부분을 많이 다룹니다.

사용자는 보통 버튼과 화면을 봅니다. 하지만 개발자는 그 뒤에서 데이터가 정확히 저장되는지, 같은 일이 중복 처리되지 않는지, 개인정보가 안전하게 보호되는지, 오류가 생겼을 때 어디서 문제가 발생했는지 추적할 수 있는지를 함께 봅니다. 눈에 잘 보이지 않는 부분이 서비스의 신뢰를 만듭니다.

개발을 큰 그림으로 보면 용어가 덜 어렵다

앞으로 이 책에서는 컴퓨터, 프로그래밍 언어, 웹, 앱, 데이터베이스, 서버, API, 클라우드 같은 말을 하나씩 다룹니다. 처음 들으면 낯설 수 있습니다. 하지만 이 모든 개념은 결국 하나의 질문으로 연결됩니다.

"사용자의 문제를 해결하기 위해 컴퓨터에게 어떤 일을 맡길 것인가?"

프로그래밍 언어는 컴퓨터에게 지시하는 방법입니다. 데이터베이스는 필요한 정보를 정리해 두는 보관함입니다. 서버는 사용자의 요청을 받아 처리하는 역할을 합니다. API는 서로 다른 서비스가 약속된 방식으로 대화하는 통로입니다. 클라우드는 서버와 저장 공간 같은 자원을 필요할 때 빌려 쓰는 방식입니다.

각각의 용어를 따로 외우려고 하면 어렵습니다. 하지만 개발의 전체 그림 속에서 보면 역할이 보입니다. 식당을 운영하려면 손님을 맞는 사람, 주문을 전달하는 사람, 음식을 만드는 사람, 재료를 보관하는 곳이 필요하듯, 디지털 서비스에도 각자의 역할을 맡은 구성 요소가 있습니다.

개발은 특별한 사람만 이해할 수 있는 마법이 아닙니다. 다만 컴퓨터가 사람처럼 대충 알아듣지 못하기 때문에, 문제를 더 작게 나누고 순서를 분명히 정해야 합니다. 이 점을 이해하면 개발자와 대화할 때도 훨씬 수월해집니다. "그거 간단한 기능 아닌가요?"라고 묻기 전에, 그 기능 뒤에 어떤 정보와 규칙과 예외 상황이 있는지 함께 생각할 수 있기 때문입니다.

이 장에서 기억할 것

개발은 코드를 많이 쓰는 일이 아니라, 문제를 정확히 이해하고 컴퓨터가 처리할 수 있는 형태로 해결책을 만드는 일입니다. 개발자는 문제를 분석하고, 해결 방법을 설계하고, 코드를 작성하고, 테스트하고, 수정합니다.

우리가 쓰는 식당 주문 앱, 은행 앱, 쇼핑몰은 모두 이런 과정을 거쳐 만들어진 결과물입니다. 겉으로는 간단해 보여도 안쪽에는 데이터, 규칙, 예외 처리, 보안, 안정성 같은 요소가 함께 움직입니다.

코딩은 코드를 쓰는 일, 프로그래밍은 문제 해결 절차를 코드로 표현하는 일, 소프트웨어 개발은 서비스를 만들고 운영하고 개선하는 전체 과정입니다. 좋은 개발은 기능을 많이 넣는 것이 아니라 사용자의 문제를 안정적으로 해결하는 것입니다.

책 목록

일반인이 쉽게 이해하는 개발 지식

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기