대학교 시절 코딩 수업을 들을때는 몰랐으나, 스스로 개발 독학을 하다보니 아쉬운 부분들이 있어서 누군가에게 프로그래밍 관련하여 알려줄 기회가 있다면 학교 수업 및 흔한 온라인 강의와 조금 다른(?) 절차로 알려주고 싶었습니다. 저는 개발 수준이 상급 개발자는 아니지만, 오랫동안 여러가지 프로그래밍 언어를 접하면서 프로그래밍에 대한 개념이나 문법에 대한 기본기는 유연하게 적용 가능한 수준입니다. 최근에 지인에게 C언어를 알려줄 기회가 생겨 무료로 알려주고 있습니다. 주 2회를 목표로 하고있고, 미니 프로젝트까지 해보려고 합니다. 이런 강의 자료가 독학하는 누군가에게는 도움이 될것 같아 블로그에 글로 남깁니다.
이번 글에서는 대학교에서 배우는 분량으로 치면 1학기 수업에서 배우는 내용을 한번에 설명드릴것입니다. 제가 공부해보니 이 내용들을 1학기 동안 배울만한 내용이 아니라고 생각이 들었기 때문입니다. 왜냐하면, 학기로 치면 주 3시간 정도 배우는데 1학기에 3달 정도라고 가정하면 3시간 * 4주 * 3달 = 36시간, 공부시간이 1학기에 36시간이고 실제 개념에 대한 내용은 몇시간에 걸쳐 설명이 끝나고 나머지는 과제나 실습이 이루어지기 때문입니다. 하여, 저는 1학기 분량의 C언어 프로그래밍에 대한 개념을 큼직 큼직하게 설명드리고자 합니다.
우리나라의 교육 방식은 대부분 Bottom-UP(바텀업) 방식으로 기초부터 차근차근 설명해줍니다. 하지만, 학생이 아닌 사회에 돈을 벌기 위해 나가보면 Top-Down 방식으로 문제해결할 일들이 많이 있습니다. 저는 차후에도 스스로 공부할 수 있는 능력을 더 키워주기 위해 Top-Down으로 시작하여 Bottom-UP으로 전환하는 사고 방식에 대해서도 함께 담아보고자 합니다. 누가 봐주실지, 아무도 보지않을 수도 있는 글에 서론이 길었습니다. 시작해보겠습니다.
프로그램이란?
프로그램은 입력,로직,출력으로 구성됩니다. 입력이 없는 프로그램? 출력이 없는 프로그램?이 존재 할까요? 제 생각에는 없다고 생각하고 있습니다. 프로그램의 이런 구성은 사람에도 적용할 수 있습니다. 우리가 음료를 마시면(입력) 체내 장기들에서 에너지와 수분을 흡수하고(로직) 소변을 통해 배출하게 됩니다.(출력) 이런 구조는 세상을 살며 어디서든 볼 수 있고 생각해 볼 수 있습니다. 이러한 이유로 세상에 실제 존재하는 것들을 가상환경인 프로그램으로 옮길 수 없는 것은 없다라는 이야기도 있습니다. 이제는 영화에서만 보던 AI가 실제로 세상에 나오고 있는 것이 증거라고도 할 수 있겠습니다. 그래서 저는 요즘 코딩을 중요시하는 것이 세상 살아가면서 생각하는 절차나 세상의 이치를 깨닫는데 도움을 줄 수 있기 때문에 중요한것 같습니다.
프로그램 로직이란?
프로그램 로직은 생각하는 절차로 알고리즘이라고도 불리우며, 우리가 C언어와 같은 프로그래밍 언어로 코딩으로 구현하는 부분이 해당 부분입니다.
의사코드란?
의사코드는 생각의 절차를 C언어로 작성한 것이 아닌, 간단한 수식이나 기호를 사용하여 타인에게 설명하기 위해 사용됩니다.
이런 의사코드는 왜 설명하는 것일까요?
프로그램을 만들기 위해서는 로직이 필수 입니다. 어떤 입력을 받아서 어떻게 처리하여 어떤 곳으로 출력할 것인지를 정해주는 것이 로직이기 때문이고 그 로직은 C언어와 같은 프로그래밍 언어를 통해 코딩하기 때문입니다. 사람이 코딩을 하려면 위에 적은 어떤 입력? 어떻게 처리? 어떤 출력?에 대한 처리 행위를 순서대로 한국말로 생각을 해야만 코딩을 할 수 있습니다. 당장 내가 물을 마시는 간단한 행위 조차도 컵에 따라 마실지, 입에 대고 마실지부터 정하고 컵에 따라 마신다면 컵에 따르고 난 후에 물을 마실 것입니다. 이런 생각이 머리에 없다면 우리는 행동도 하지 못하겠죠.
아래 그림은 계산기 프로그램을 어떻게 만들까? 에 대한 생각들의 절차를 적어본 장표입니다.
이렇게 한글로 작성한 내용을 영어로 바꾸고 한글을 지우면 코딩에 근접한 표현이 됩니다.
프로그래밍 언어?
이제 이렇게 생각의 절차가 정리되었다면 컴퓨터가 실행할 수 있도록 해줘야 합니다. 그 방법은 무엇일까요? 우리가 생각하는 것을 컴퓨터가 실행 할 수 있게 해주는 것이 바로 프로그래밍 언어입니다. 그 중에서도 C언어에 대해서 계속 포스팅 해보려고 합니다.
코딩?
코딩은 프로그래밍 언어로 문서를 작성하는 작업을 뜻합니다. 그 문서가 컴파일러라는 친구(?)의 도움을 받아서 컴퓨터가 알아듣게 되고 프로그램으로 만들어집니다.
위에 의사코드로 표현한 생각의 절차를 코딩으로 간단하게 옮겨보겠습니다. 이해를 돕기 위한 코드로 C언어 문법을 정확히 준수하여 코딩한 것은 아닙니다.
문법 용어?
이제 변수, 자료형, 연산자, 조건연산자, 배열 이런 문법 용어들에 대한 이해가 필요하니다. 본 포스팅 글에 다 적으려고 했으나 생각보다 글이 너무 길어져서 제가 만든 강의 자료만 우선 첨부하고 부연 설명은 차후에 이어서 별도로 포스팅 하도록 하겠습니다. 감사합니다.
'개발' 카테고리의 다른 글
(2) 독학으로 앱 만들어보기 (코틀린 공부) (0) | 2021.09.28 |
---|---|
(1) 독학으로 앱 만들어보기 (인터넷 검색, 공부 방법, 코틀린) (0) | 2021.09.28 |
주식 우량주 찾기 (사이트) (0) | 2021.06.29 |
(Step 2) 개발의 '개'도 모를때 (개념,공부방법) (0) | 2021.06.25 |
(Step 1) 개발의 '개'도 모를때 (개념,공부방법) (0) | 2021.03.02 |
댓글