쉽게 이해하는 개발, 프로그래밍 언어, 코딩, 로직의 개념
개발이란, 우리가 매일 사용하는 카카오톡, 유튜브, 엑셀, 게임 앱 등은 모두 누군가가 기획하고, 디자인하고, 개발(Development) 과정을 통해 만들어진 결과물입니다. 이 글은 이러한 '개발' 과정에서 알아두면 좋은 기본 개념 - (1) 개발 프로세스, (2) 프로그래밍 언어, (3) 코딩, (4) 코딩 로직에 대해 쉽게 풀어서 설명해 보고자 합니다. 비개발자라도 이 원리를 이해하면, 기능을 기획하거나 개발자와 소통할 때 더 수월해집니다.
프로그램을 만들기 위해서는 보통 아래와 같은 5단계를 거칩니다. 보통 회사에서 “개발 좀 해 주세요.”, “개발이 끝났어요.”라고 말할 때는, 5단계 중 주로 3번(구현 단계)을 가리키는 경우가 많습니다. 하지만 원래 ‘개발’이라는 단어는 분석 → 설계 → 구현 → 테스트 → 배포 모든 단계를 통합적으로 묶어 부르는 개념입니다.
1. 요구사항 분석 : "무엇을 만들지" 결정
2. 설계 : "어떻게 만들지" 프로그램의 기획과 구조를 작성
3. 구현 : 프로그래밍 언어를 사용하여 실제 프로그램을 작성 (흔히 말하는 '코딩')
4. 테스트 : 코드가 의도대로 잘 작동하는지 검증하고, 오류를 수정
5. 배포 : 완성된 프로그램을 사용자에게 제공
그런데 실제로 프로그램을 만드는 주체는 사람(개발자)이 아니라, 개발자가 '명령'을 내렸을 때 이를 실행하는 '컴퓨터'입니다. 즉, 개발자는 컴퓨터에게 "이렇게 이렇게 프로그램을 만들어줘"라고 명령(지시)을 내리고, 컴퓨터는 그 명령에 맞춰 프로그램을 생성하고 동작시키는 것입니다.
잠깐! 그렇다면 사람이 어떻게 컴퓨터에게 명령을 전달할 수 있을까요? 컴퓨터는 사람이 사용하는 한국어나 영어를 이해할 수 없습니다. 그래서 사람은 컴퓨터가 이해할 수 있는 언어로 대화를 해야 하는데, 이것이 바로 '프로그래밍 언어'입니다.
사람이 사용하는 언어(한국어, 영어, 스페인어)처럼 프로그래밍 언어도 매우 다양하며, 예를 들어, 파이썬(Python), 자바(Java), 자바스크립트(JavaScript) 등이 있습니다. 언어마다 특성과 용도가 달라서, 개발자는 만들고자 하는 프로그램의 목적이나 환경에 맞게 적합한 언어를 골라 사용합니다.
프로그래밍 언어를 사용하여 컴퓨터와 소통하는 과정을 '코딩'이라고 합니다. 우리가 외국어를 배우면 어휘와 문법을 익히듯, 개발자도 사용하려는 프로그래밍 언어의 문법을 익히고 그 언어를 사용하여 컴퓨터가 이해할 수 있는 명령어를 작성합니다.
명령어를 컴퓨터가 정확이 이해할 수 있도록 작성해야만, 원하는 기능이 제대로 구현됩니다. 비개발자라도 코딩의 기본 원리를 이해하면, 기능을 기획하거나 개발자와 협업할 때 어떤 방식으로 동작해야 하는 지를 명확하게 소통할 수 있어서 매우 유용합니다.
'코딩 로직'이란, 프로그램이 어떤 일을 어떤 순서와 방식으로 처리해야 하는지 구체적으로 정리한 설계도 같은 개념입니다. 조건("만약 ~이면", 반복("몇 번 반복한다."), 계산 순서 등의 요소가 포함되며, 프로그램이 상황에 맞춰 어떤 동작을 할지 세부적으로 정의합니다. 개발자가 아니더라도 서비스 기획자/PM이 로직 설계 능력을 갖추면, 기획안 작성 단계에서부터 보다 다양한 가능성을 구체적으로 구상할 수 있고, 흔히 놓치기 쉬운 예외 상황(Edge 케이스)도 미리 대비하여 기능의 완성도를 높일 수 있습니다.
만약 A 조건(A가 참)이면, A-1을 실행한다.
만약 B 조건(B가 참)이면, B-1을 수행하고, 필요하다면 B-1을 2번 반복 실행한다.
이외의 경우에는, C-1, C-2, C-3을 순서대로 실행한다.
조건: A, B에 해당되는 경우인지, 혹은 이외의 경우인지 확인
반복: B-1을 2번 반복 실행
순서: C-1, C-2, C-3을 순서대로 실행
쉬운 이해를 위해 우리가 익히 아는 '라면 끓이기'의 과정을 로직으로 표현해 보았습니다. 만든 로직에 따라 조건, 반복, 순서를 지키면 원하는 라면이 완성이 됩니다.
1. 냄비에 물 500ml 넣는다.
2. 물을 끓인다.
3. (반복) 물이 끓었는지 30초마다 확인한다.
- 만약 물이 끓지 않았다면, 다시 확인한다.
- 물이 끓었다면, 다음 단계로 이동한다.
4. 면과 분말 스프를 넣고 4분 30초 동안 끓인다.
5. 4분 30초가 지나면 불을 끈다.
6. 완성된 라면을 그릇에 옮긴다.
조건: (3번) 물이 끓었는지 확인 후, 끓으면 스프 넣기 / 끓지 않았다면 다시 확인
반복: 일정 주기로 물이 끓었는지 반복 확인
순서: 1 → 2 → 3 → 4 → 5 → 6 순서로 진행
마지막으로, 실제로 사용해 본 경험이 있을 인스타그램 로그인 기능을 예로 들어 로직을 만들어 보겠습니다.
1. 사용자로부터 아이디와 비밀번호를 입력받는다.
2. 만약 아이디 또는 비밀번호가 비어있다면,
- "아이디/비밀번호를 입력해 주세요."라는 메시지를 띄운다.
- 다시 입력하도록 요청한다. (반복)
3. 아이디와 비밀번호가 맞는지 확인한다.
- 맞으면 → 홈 화면(피드)으로 이동한다.
- 틀리면 → "아이디/비밀번호가 잘못되었습니다." 메시지를 띄운다.
* 다시 입력을 요청한다. (반복)
4. 비밀번호를 5회 이상 틀릴 경우,
"계정이 잠겼습니다."라는 메시지를 띄우고,
- 비밀번호 재설정 방법에 대해 안내한다.
이처럼 앱이나 프로그램이 어떤 상황(조건)에서 어떤 순서로 일을 할지, 반복이 필요한지를 단계별로 정리한 것이 코딩 로직입니다. 개발자는 로직을 구상한 뒤, 그에 맞춰 프로그래밍 언어(파이썬, 자바 등)로 코드를 작성합니다. 그러면 컴퓨터는 해당 코드를 실행하면서, 우리가 의도한 프로그램을 구현하게 됩니다. 결국 프로그램은 로직을 기반으로 동작하므로, 올바른 로직을 설계하는 것이 중요합니다.
1. 개발 : 컴퓨터나 모바일 기기에서 사용할 프로그램을 만드는 과정
2. 프로그래밍 언어 : 컴퓨터에게 프로그램을 만들라고 명령을 내리는 언어로, 컴퓨터가 이해할 수 있는 언어 (예: C, Java, Python)
3. 코딩 : 프로그래밍 언어를 사용하여 컴퓨터가 처리해야 할 명령어를 작성하는 과정
4. 코딩 로직 : 문제를 해결하기 위해 만드는 단계적인 순서와 절차