본문 바로가기
프린이(프로그래머가 되고 싶어요)를 위한

1. 강좌를 시작하면서 - 프로그래밍과 코딩 -

by 아코미스트 2025. 4. 28.

 

 

프로그래머가 되기 위한 첫걸음

프로그래머가 되고자 하나 아무런 경험도 없고 막 시작하고자 하는 쌩 초보자를 위해 강좌를 시작합니다.

 

코딩과 프로그래밍의 차이

요즘 흔히 코딩을 배운다. 코딩 전문 학원 뭐 등등 코딩 코딩 하는데 우리 코딩 프로그래밍은 확실히 구별하고 갑시다.

우선 코더는 개발자가 아닙니다.
코더는 개발자인 프로그래머가 구축한 알고리즘을 컴퓨터 언어인 소스 코드로 표현해서 입력하는 역할을 합니다.
즉, 코딩이란 프로그래머가 원하는 바를 프로그램 언어로 컴퓨터에 입력하여 컴퓨터로 하여금 실행할 수 있는 프로그램을 만들 수 있도록 하는 과정입니다.
프로그래머을 설계자라고 하면, 코더는 설계도면을 보고 연장을 사용해서 물건을 만드는 단순 기술자라고 이해 하시면 됩니다.
컴퓨터 프로그램 강좌 중 코더와 프로그래머의 역활을 보여주는 상식적인 그림
요즘은 프로그래머가 직접 코딩을 하면서 알고리즘을 구축하는 환경이 만들어져서 프로그래머코더의 역활도 하고 있지만 그렇다 하더라도 개발자를 코더라고 하면 안되고 더욱이 프로그램 개발 과정을 코딩이라고 하면 안됩니다.
프로그램 개발 가본 강좌에서 프로그램 개발자와 코더와 구분되지 않고 직접 코딩을 통해 알고리즘을 구축하는 상징적 그림
다시 말해 프로그램 개발 과정의 일부에 코딩이 포함되는 것이지 코딩이 개발 자체가 아니라는 뜻입니다.

 

요즘 사용하는 대표적인 프로그래밍 언어로는 C, Java, Basic, Python 등이 있으며, 과거에는 Cobol, Fortran 같은 언어도 있었습니다.

 

모든 알고리즘은 특별한 경우를 제외하고는 모든 언어로 작성할 수 있습니다.
즉 프로그램 언어가 알고리즘이 아니고 프로그램 언어를 잘 안다고 해서 좋은 프로그래머는 아닙니다.
프로그래밍의 핵심은 알고리즘 설계하는 것인데, 이는 단순히 코딩을 넘어서 프로그램의 논리적 구조를 만드는 중요한 과정입니다.

프로그래밍의 단계

프로그램을 개발하는 과정은 여러 단계로 나눠집니다. 각 단계는 서로 밀접하게 연결되어 있으며, 그 중에서도 알고리즘을 구축하는 과정이 가장 중요한 부분입니다. 프로그램 개발의 전반적인 과정은 다음과 같습니다:

  1. 프로그램을 개발하는 이유목적을 명확히 한다.
  2. 컴퓨터 프로그램을 통해 해결할 수 있는지 가능성을 파악한다.
  3. 주어지는 정보 (입력)와 결과 (출력)를 파악한다.
  4. 정보를 어떻게 취득하고, 저장하며, 처리할 것인지 결정한다.
  5. 과정을 컴퓨터가 어떻게 수행할지 결정하는 알고리즘을 구축한다.
  6. 알고리즘을  코드로 구현한다.
  7. 소스 코드를 컴퓨터가 실행할 수 있는 실행 파일로 만든다.
  8. 오류수정하고, 테스트를 통해 프로그램의 완성도를 높힌다.
  9. 최종적으로 목표에 맞게 프로그램이 잘 작동하는지 확인하고 최적화한다.
프로그램 개발 과정 기초 교육에서 프로그램의 개발 과정을 플로우차트로 표현하는 그림.

 

알고리즘 구축의 중요성

 

알고리즘 구축은 프로그래밍에서 가장 논리적이고 중요한 과정입니다.

 

이 과정에서는 문제를 해결하기 위한 명확한 절차를 정의하고, 이를 컴퓨터가 이해할 수 있도록 표현하는 방법을 찾아야 합니다.
알고리즘을 구축하는 데 있어 중요한 점은 문제 해결 능력논리적 사고입니다.
경험이 쌓일수록 더 좋은 알고리즘을 설계할 수 있게 되며, 이는 프로그램의 성능과 효율성에 큰 영향을 미칩니다.
가끔 '무작정 따라하기' 라든지 특정 언어를 강사들이 써주는 대로 그대로 베껴 쓰기 하면서 프로그램을 가르치는 경우가 종종 보이는데 이와 같은 방법은 좋은 개발자를 만드는 방법이 아닙니다.
프로그래밍을 배우기 위해서는 알고리즘에 대한 기본적인 이해구축 방법을 배우고, 이를 통해 문제를 해결할 수 있는 능력을 키워야 합니다.
이렇게 해야 비로소 진정한 프로그래머로서 성장할 수 있습니다.
나중에 보다 고차원적이고 복잡한 프로그램 개발 과정에 들어가면 직접 알고리즘이나 소스 코드를 개발하기 보다는 인터넷 등에 배포되어 있는 다른 개발자들의 소스를 사용하는 것이 더 효율적인 경우가 있습니다.
이런 경우에도 항상 어떤 알고리즘에 의한 어떤 작동 원리로 돌아가는가를 항상 연구하고 분석하며 내 것으로 만들어 가야 훌륭한 개발자가 될 수 있습니다.

프로그래밍 언어 선택

프로그래밍 언어는 여러 가지가 있지만, 그 선택은 중요하지 않습니다.

 

프로그래밍 언어는 알고리즘을 표현하는 수단일 뿐입니다.
즉, 알고리즘을 잘 설계하고 구축하는 것이 중요한 사항이지 이를 어떤 언어로 표현하느냐는 중요한 문제가 아닙니다.
다만 자신이 원하는 프로그램을 개발할 때 어떤 언어가 가장 적합한지는 판단하고 선택하는 것이 좋습니다.

따라서 좋은 프로그래머가 되려면 여러가지 다양한 프로그램 개발 언어를 직 간접으로 한번씩 접해보는 것도 좋은 방법이라 할 수 있겠습니다.

 

Python, Java, C++, Visual Basic 등 다양한 언어들이 있지만, 모든 언어에서 알고리즘을 구현할 수 있다는 사실을 명심하세요.

 

중요한 것은 언어가 아니라, 문제 해결을 위한 방법을 정의하고, 이를 구현하는 능력입니다.

마무리

프로그래밍을 배우는 것은 단순히 코드를 입력하는 것을 넘어서, 문제를 해결하는 방법을 배우는 과정입니다.

 

알고리즘을 잘 설계하고, 이를 적절한 언어로 구현하는 능력은 시간이 지나면서 점점 더 향상됩니다.
이제 프로그래머로서의 첫걸음을 내디디며, 언어나 도구보다는 문제 해결 능력논리적 사고가 더 중요하다는 점을 기억하시기 바랍니다.
본 강좌는 특정 프로그램 언어를 가르쳐 주지 않습니다.
다만 각 과정마다 C++ 과 JAVA, Python, Basic 언어를 비교해 보는 경우는 있을 것이며 여러분은 그냥 참조만 하시면 됩니다.
본 기본 알고리즘에 관한 강좌가 끝나면 각 언어별로 기본적인 수준의 강좌를 시작할 것입니다.
Visual Basic 은 Microsoft 사의 Excel 이라는 프로그램의 스크립트 언어 VBA 를 사용해서 여러가지 매크로 함수를 만들면서 배워보도록 하겠습니다.
C 언어는 아두이노 강좌와 함께 할 것이고 Python 은 Blender 라고 하는 3D 영상제작 툴의 스크립트 언어로 공부해 볼 것입니다.
JAVA 는 본격적으로 기초적인 안드로이드 앱 개발을 통해서 다루어 볼 계획이며 안드로이드에 탑재된 DB를 이용하면서 Data Base 의 SQL 언어도 조금은 다루어 볼 계획입니다.
거기까지 가면 이제 여러분은 인터넷상의 여러 고급 강좌를 접해 보실 수 있으며 여러분이 필요로하는 모든 것을 프로그래밍할 수 있는 수준까지 도달할 것입니다.
그때까지 살아있다면?? 
살아 있는 동안 기초 회계학과 물류관련 실무에 관한 강좌와 인터넷 홈페이지 구축 과정 등 실무에 치중한 강좌를 다루어 볼까 합니다.
그러니 저 아코미스트 오래 오래 살 수 있도록 기도해 주십시요. 
참조로 저는 아마 1세대 개발자 그룹에 속하는 사람일 겁니다.
대학에서는 부전공 비슷하게 UNIVAC 계열의 컴퓨터를 코딩시트와 천공카드로 코딩하면서 입문하였고, 졸업 후 KAIST 부설 개발자 양성 센터에서 COBOL 과 FORTRAN 을 배운 후 잠시 조그만 회사에 입사해서 프로그래머로 근무하다 창업해서 거의 40년 가까이 개발자의 길을 걸어왔습니다.  이제 대충 제 연식(나이)을 추정하실 수 있으실 겁니다.
현재도 현직에서 일하고 있고 외로운 늑대처럼 혼자서 모든 시스템 개발을 처리하고 있습니다.
그러다 보니 특정 분야에 깊은 지식은 없어도 이것 저것 많은 것을 다 다루어 본 경험은 제 장점이라고 자부할 수 있습니다.
암튼 죽기 전에 책 한권은 못 쓰더라도 제대로 된 강좌 하나는 세상에 내놔 IT 강국으로 대한민국이 지속 가능하는 데 조금이라도 기여하고자 본 강좌를 시작하오니 앞으로 개발자가 되고자 하시는 프린이 여러분들의 많은 응원 부탁드립니다.
감사합니다. 

© 2025 프로그래밍 강좌 - 모든 권리 보유

 

 

 

2. 알고리즘이란?

목차1. 알고리즘이란 무엇인가?2. 알고리즘은 무엇으로 구성되는가?3. 마무리 알고리즘이란 무엇인가?앞의 강좌에서 컴퓨터 프로그램 개발이란 알고리즘을 구축하는 과정이라고 강조했습니다.

acompro.tistory.com

 

'프린이(프로그래머가 되고 싶어요)를 위한' 카테고리의 다른 글

6. 보이지 않는 반복  (0) 2025.05.07
5. 반복에 관하여  (1) 2025.05.02
4. 조건분기에 대하여  (2) 2025.05.01
3. 순차진행에 관하여  (4) 2025.04.30
2. 알고리즘이란?  (1) 2025.04.29