파이썬(Python) 학습을 시작하며 내 스스로에게 가장 먼저 던진 질문은 "프로그래밍이란 정확히 무엇인가?"였다. 막연히 '검은 화면에 알 수 없는 영단어를 빠르게 타이핑하는 일'이라고 짐작했지만, 오늘 첫 학습을 통해 그 본질이 내 예상과 완전히 다름을 깨달았다. 이 글은 누군가에게 지식을 전달하기보다는, 앞으로 파이썬을 공부하면서 방향을 잃지 않기 위해 오늘 배운 프로그래밍의 기초 개념과 문제 해결의 관점을 내 언어로 정리해 두는 학습 기록(TIL: Today I Learned)이다.
--------------------------------------------------------------------------------
1. 프로그램은 '입력'을 받아 '결과'를 내는 규칙이다
오늘 배운 가장 핵심적인 정의는 프로그래밍이 단순히 글자를 치는 행위가 아니라, "컴퓨터에게 특정 작업을 수행하도록 명령의 집합을 만들어 일을 시키는 방법"이라는 것이다.
사실 프로그램은 특별한 IT 연구소에만 있는 것이 아니라, 내 일상 속에도 이미 가득했다. 프로그램의 본질은 '입력(Input)'을 받아 '처리(Process)' 과정을 거쳐 일정한 '결과(Output)'를 내는 것이다.
- 계산기 : '2+3'이라는 값을 입력하면 덧셈 처리를 거쳐 '5'를 출력한다.
- 배달 앱 : '내 주소'를 입력하면 주변 데이터베이스를 처리해 '가게 목록'을 출력한다.
- 로그인 화면 : '아이디와 비밀번호'를 입력하면 일치 여부를 처리하여 '접속 허용 여부'를 출력한다.
이처럼 주어진 문제를 해결하기 위한 단계적인 절차를 '알고리즘'이라고 부르며, 훌륭한 알고리즘이 되기 위해서는 명확한 입력과 출력, 그리고 유한한 시간 내에 모호함 없이 실행되어야 한다는 조건이 필요함을 배웠다.
--------------------------------------------------------------------------------
2. 코딩과 프로그래밍의 차이: 사람과 컴퓨터의 관점 차이
가장 크게 와닿았던 부분은 사람과 컴퓨터가 문제를 대하는 방식이 완전히 다르다는 점이다. 흔히 코딩과 프로그래밍을 섞어서 쓰곤 했는데, 이 둘은 뚜렷한 차이가 있었다.
사람은 문맥과 경험을 기반으로 상황을 '대충' 추론하고 이해한다. 예를 들어 친구에게 "라면 좀 끓여줘"라고 말하면, 친구는 알아서 냄비를 찾고, 물의 양을 맞추고, 불을 켠다. 하지만 컴퓨터는 똑똑해 보여도 스스로 맥락을 유추하는 능력이 없다. 컴퓨터에게 라면을 끓이게 하려면 "1. 냄비를 준비한다 → 2. 물 500ml를 넣는다 → 3. 불을 켠다 → 4. 물이 끓으면 면을 넣는다"처럼 아주 구체적이고 쪼개진 순서와 규칙을 명확하게 지시해야만 동작한다.
따라서 프로그래밍은 이처럼 컴퓨터가 실행할 수 있도록 문제 해결 과정 전체의 절차를 논리적으로 설계하는 일이며, 코딩은 그 설계를 컴퓨터 언어로 타이핑하여 작성하는 '행위' 자체를 뜻한다. 나는 코더(Coder)가 아니라 프로그래머(Programmer)가 되기 위해 학습하는 것임을 잊지 말자.
--------------------------------------------------------------------------------
3. 왜 첫 언어로 파이썬(Python)을 선택했는가?
컴퓨터는 본질적으로 0과 1로 이루어진 기계어만 이해하기 때문에, 사람이 쓰는 자연어를 컴퓨터가 실행할 수 있도록 번역해 주는 도구가 바로 프로그래밍 언어다.
수많은 언어 중에서 내가 파이썬을 첫 언어로 선택한 이유는 명확하다. 파이썬은 사람의 언어(영어)와 문법 구조가 비슷하여 읽기 쉽다. 덕분에 복잡한 문법 규칙에 스트레스를 받기보다는 프로그램의 전반적인 '구조'와 '흐름'을 파악하는 데 집중할 수 있다. 무엇보다 파이썬은 단순히 초보자용 교육 언어로 끝나는 것이 아니라, 추후 데이터 분석, 웹 개발, 업무 자동화, 그리고 인공지능(AI) 분야까지 실무 활용 범위가 무궁무진하다. 입문용으로 진입 장벽이 낮으면서도, 실무에서 평생 활용할 수 있는 확장성을 가졌다는 점이 가장 큰 매력이다.
--------------------------------------------------------------------------------
4. 핵심은 문법이 아니라 '컴퓨팅 사고력(Computational Thinking)'이다
결국 파이썬을 배운다는 것은 파이썬의 문법을 달달 외우는 것이 아니라, 문제를 작게 쪼개고 절차를 설계하는 '컴퓨팅 사고력(Computational Thinking)'을 기르는 과정이다.
컴퓨팅 사고력은 복잡한 문제를 다루기 쉬운 크기로 분해(Decomposition)하고, 유사한 패턴을 인식(Pattern recognition)하며, 불필요한 정보는 버리고 핵심만 추려내는 추상화(Abstraction)를 거쳐, 최종적으로 문제를 해결하는 단계적 절차인 알고리즘(Algorithms)을 만드는 네 가지 과정으로 구성된다.
이러한 사고력을 기르기 위해, 실제 파이썬 코드를 작성하기 전에 논리의 흐름을 사람의 언어로 먼저 적어보는 '의사코드(Pseudo Code)' 작성법을 적극적으로 활용해야겠다. 오늘 찾아본 사례에 따르면, 의사코드를 먼저 작성하면 논리적 흐름을 미리 탄탄하게 잡을 수 있고, 코딩 중 막히는 부분이 생겨도 쉽게 오류를 추적하고 수정할 수 있어 실제 구현이 훨씬 수월해진다고 한다.
--------------------------------------------------------------------------------
5. 앞으로의 학습 마인드셋 정리
오늘 첫 공부를 마치며, 앞으로 파이썬을 대하는 나의 마인드셋을 세 가지로 정리해 보았다.
- 동작 원리에 집중하기 : 단순히 '무엇을 만들 것인가' 결과에만 집착하기보다, '어떻게 동작하게 할 것인가' 그 절차를 치열하게 고민하자.
- 문법은 도구일 뿐 : 앞으로 변수, 조건문, 반복문 등 낯선 개념들을 배우겠지만, 이 모든 것은 컴퓨터에게 내 논리와 절차를 알려주기 위한 '수단'일 뿐이다. 한 번에 모든 문법을 완벽히 외우려 들지 말자.
- 에러와 친해지기 : 코드를 직접 실행해 보고 틀려보는 과정 자체를 즐기자. 프로그래밍에서 발생하는 에러는 내 실력 부족의 증거가 아니라, 컴퓨터와 정확하게 소통하기 위해 방향을 맞춰가는 아주 자연스러운 학습 과정의 일부다.
--------------------------------------------------------------------------------
[마무리 글] 오늘 학습을 통해 프로그래밍이란 컴퓨터가 이해할 수 있도록 문제 해결 과정을 순서와 규칙으로 번역해 주는 일이라는 것을 명확히 이해했다. 사람과 컴퓨터의 생각 방식이 다르다는 점, 그리고 파이썬이 그 간극을 메워줄 훌륭한 첫 도구라는 점을 배웠다. 이제 프로그래밍의 본질에 대한 감을 잡았으니, 다음 단계에서는 내 생각을 실제로 입력하고 실행하여 컴퓨터와 소통할 수 있는 공간인 [1-2. 개발 환경이란 무엇인가]에 대해 본격적으로 학습해 보아야겠다.

반응형
'프로그래밍 개발 공부' 카테고리의 다른 글
| [개발 트렌드] 기술을 배우는 순서가 사라지고 있다: 프레임워크 중심 학습 시대의 특징과 위험 (0) | 2026.03.21 |
|---|---|
| [개발 실무] 프로그램은 위에서 아래로 실행되지 않는다 - 자바스크립트 이벤트 루프와 비동기 실행 흐름 완벽 이해 (0) | 2026.03.19 |
| [개발 트렌드] "코딩하려는데 설정 파일만 10개?" 코드보다 설정이 많아지는 현대 개발 환경 완벽 분석 (0) | 2026.03.13 |
| [개발 실무] 객체지향은 왜 등장했는가 - 객체지향 프로그래밍은 단순한 '코드 정리' 기술이 아니다! (0) | 2026.03.13 |
| [개발 트렌드] 프레임워크 먼저 배워도 될까? 기술 학습 순서의 소멸과 롱런하는 개발자의 생존 전략 (0) | 2026.03.09 |