전체 글17 17. 주석(Comment)에 관하여. 프로그램 코딩을 할 경우 우리는 소스 중간 중간에 특별한 설명을 달아 놓을 필요가 있습니다.이러한 설명을 주석(Comment)라고 합니다.나중에 디버그(오류 수정)나 업데이트(기능 향상) 작업을 할 경우 혹은 다른 사람이 디버그나 업데이트 작업을 할 경우 참조하기 위해서 주석은 반드시 필요로 합니다.또한 코딩 날자라든지 이후 업데이트한 내용 코딩한 사람에 관한 정보 등도 소스에 넣어 두면 추후 작업에 많은 도움을 줄 수 있습니다.솔직히 저도 코딩한 후 한달이 지나 소스를 보면 이 구문은 왜 한거지? 이 변수는 뭤때문에 선언한 건지 헷갈릴 때가 많습니다.그때 자세한 주석처리가 있으면 추후 작업이 아주 수월해 질 수가 있습니다.이 주석은 소스에만 존재하며 실지 컴퓨터가 실행하는 실행파일에는 존재하지 않습니다.. 2025. 5. 27. 16. 코드블럭에 관하여 이번에는 코드블럭(Code Block)에 관한 내용을 설명하겠습니다.코드블럭은 특별한 조건에 의해 수행되는 실행문(명령)을 그 외의 실행문과 구분하기 위해서 묶어놓은 보따리 같은 것이라고 생각하시면 됩니다.크드블럭은 조건문에 있어서 각 조건에 합치하는 경우에만 수행하는 코드들과 반복에 있어서 반복해야 할 코드들을 명확히 구분짓기 위해서 사용합니다.만약 '네가 학생이라면' 이라는 조건에 부합할 경우 '해야할일1', '해야할일2', '해야할일3'.... 같이 수행하여야 할 여러가지 명령들이 있을 것입니다.즉 조건에 부합하면 '여기서 부터 여기까지 이 명령들을 수행하라'고 구분을 지어야 원하는 결과를 얻을 수 있을 것입니다.신분이 학생인 경우 해야할일1, 2를 수행하여야 하고 학생이건 아니건 3, 4는 무조건.. 2025. 5. 27. 15. 프로그램 문장의 구성 이번 포스팅은 언어별로 하나의 명령인 문장의 종료 (Statement Termination)를 표시하는 방법에 관해서 알아보도록 하겠습니다.모든 프로그램언어는 한 문장이 종료되었을 경우 특별한 방법을 사용해서 해당 문장이 종료되었음을 표시해 주어야 합니다.여기서 한 문장이란 대입연산자나 산술연산자를 사용한 연산 혹은 입출력 실행 등 컴퓨터가 수행할 하나의 명령을 의미합니다.이전 포스팅에서 설명한 비교연산자를 사용한 비교연산은 하나의 문장(명령)이 될 수 없으며 조건문과 반복문의 일부로 사용될 뿐입니다. 따라서 if 문이나 for, while 등의 구문은 문장의 종료를 표시하지 않습니다.C와 JAVA 는 세미콜론 ; 을 사용해서 문장의 끝을 알립니다.A = 2;B = A + 3;if (A > B){prin.. 2025. 5. 22. 14. 비교연산자 이번 강좌는 기본 연산자 중 마지막인 비교연산자 (Comparison Operator)에 관해 공부하겠습니다.비교연산자는 두개의 데이터를 비교해서 참 혹은 거짓의 결과를 얻을 수 있도록 하는 연산자입니다.주로 조건분기 혹은 반복에서 반복을 제어하기 위한 조건에서 사용할 목적으로 사용합니다.비교할 데이터는 문자형이건 숫자형이건 상관이 없지만 비교하는 대상의 형은 같아야 합니다.여기서 비교라는 것은 두개의 데이터가 같은 값을 갖고 있는가 다른 값을 갖고 있는가 혹은 한쪽이 크거나 작거나 하는 것을 비교하는 것입니다.이 비교연산자를 사용한 결과 값은 항상 True(1) 혹은 False(0)의 값을 반환합니다.대부분의 언어에서 공통적으로 사용하는 비교 연산 부호는A == B : A와 B가 같으면 1(True) .. 2025. 5. 22. 13. 증감연산자 이번 포스트는 산술연산자 인데 좀 특별한 작업을 하는 증감연산자에 대해 알아보겠습니다.증감 연산자는 하나의 변수 값을 다른 변수와 상관없이 자체적으로 특정 값만큼 증가 혹은 감소시키는 연산자입니다. 즉 'A의 값을 1 증가시켜라 혹은 감소시켜라'라는 명령을 수행할 경우에 사용하는 연산자로 우리가 배운 산수에서는 볼 수 없는 프로그래밍 언어에만 있는 특별한 연산자 입니다.C 와 JAVA 에서는 ++ -- 를 사용합니다.A++ 하면 A = A + 1 의 연산과 동일한 작업을 수행하고, A-- 하면 A = A - 1 의 연산을 수행합니다.앞의 '연산자에 관해서'라는 포스트에서 잠시 언급한 바와 같이 프로그램 언어 중 C++ 언어의 ++가 이 증감연산자를 표현한 것입니다.연산자에 관해서 바로가기Visual Ba.. 2025. 5. 21. 12. 산술(계산) 연산자. 이번는 대입연산자에 이어 숫자를 계산하기 위한 계산 기술 연산자인 산술연산자(arithmetic operator)에 대해 공부해 보도록 하겠습니다.연산자 바로가기대입 연산자 바로가기산술 연산자는 말 그대로 숫자를 계산하기 위한 연산자입니다.C, JAVA, PYTHON, BASIC 등 모든 언어에서 공동으로 사용하는 연산자는+ (더해라), - (빼라), * (곱해라), / (나눠서 나온 몫 ), % (나누기의 나머지) 입니다.산수에서 곱하기는 X 나누기는 ÷ 를 사용하였지만 프로그램에서는 곱하기는 * 나누기는 / 부호를 사용하는 점이 조금 다릅니다.나머지를 구하는 % 연산자는 아마 처음 접하시는 분들이 많을 것입니다.서식을 사용하는 순서는 우리가 일반적으로 사용하는 산수의 그것과 동일하지만 앞의 대입연산자.. 2025. 5. 21. 11. 대입(치환)연산자 이번 포스팅은 전 포스팅 '10.연산자에 대하여'에서 설명한 기본 연산자 중 대입연산자(assignment operator)에 대해 알아보도록 하겠습니다.연산자 바로가기컴퓨터에서 우리가 원하는 작업을 하기 위해 열심히 일하는 부분이 연산장치(C.P.U)라고 했습니다.이 연산장치는 우리가 코딩에서 표한한 연산자를 분석해서 그에 합당한 일을 처리하고 있습니다.그 중 가장 많이 사용되는 연산자가 바로 대입연산자(assignment operator) 라고 하는 것입니다.말이 어렵지만 간단히 말하면 '어디에 무엇을 넣어라' 혹은 '무엇의 값은 무엇이다' 라는 명령입니다.어기서 '어디에' 혹은 '무엇의'는 우리가 지정한 특정 변수명이며 '무엇을' '값은' 의 의미는 또 다른 변수의 값 혹은 상수를 뜻합니다.즉 'X.. 2025. 5. 16. 10. 연산자에 관해서 이전 포스팅까지 우리는 변수와 변수의 나열인 배열에 관해 알아봤습니다.변수와상수 바로가기배열 바로가기그럼 이제부터는 이 변수를 어떻게 할 것이고 변수를 가지고 무엇을 할 것인가에 대해 알아보아야 하겠습니다.제가 이전 포스트에서 말씀드린 것처럼 컴퓨터는 가장 중요한 연산장치와 기억장치 그 외 입출력 장치 등으로 이루어졌다고 했습니다.우리가 컴퓨터에게 일을 시킨다는 것은 컴퓨터가 알아들을 수 있는 프로그램을 만들어서 컴퓨터가 그 프로그램 안에 있는 일을 하도록 하는 것이라고 할 수 있습니다.그 일을 하는 것이 연산장치(C.P.U)입니다.연산장치는 말 그대로 연산 = 계산을 하는 장치로 사실 계산 밖에는 할 수 있는게 없습니다.그것도 뭐 대단한 계산을 하는 것이 아니고 깊이 들어가보면 0과 1의 디지탈 소자를.. 2025. 5. 16. 9. 배열 이번 포스팅은 배열에 관한 내용입니다.배열은 영어로 array 라고 하고 같은 자료형으로 이루어진 다수의 데이터를 일정한 순서로 나열해 저장하는 구조입니다.만약 자료형 혹은 데이터라는 내용에 대한 확실한 이해가 없으신 분이라면 이전 포스팅인 8. 변수와 상수를 먼저 보시고 본 글을 읽으시는 것이 좋을 것 같습니다. 변수와상수 바로가기 앞의 강좌에서 설명해 드렸듯이 컴퓨터에게 어떤 일(연산)을 시키려면 연산장치가 참조할 데이터를 변수라는 것을 사용해서 특정 기억공간에 저장시킨다고 했습니다.이 변수는 변수명을 부여해야 하고 그 형태 즉 문자인가 숫자인가 및 최대 크기는 어떻한가에 따라 자료 형태를 지정해야 해야 합니다.즉 5개의 숫자를 다루고자 할 경우 우리는 "숫자1" ,"숫자2", "숫자3", "숫자4".. 2025. 5. 12. 8. 변수와 상수 이번 강좌는 어쩌면 프로그램 개발 교육 과정 중 가장 기본적이지만 가장 중요한 변수와 상수에 관한 내용을 설명해 드리도록 하겠습니다. 변수란 말 그대로 해석하면 '변하는 수'가 될 것이지만, 수를 말하는 것이 아니고 어떤 수-데이터-를 담는 공간을 뜻하며 그 공간에 데이터를 넣고 다양하게 변화시킬 수 있기 때문에 변수라고 칭하는 것입니다.영어로는 variable 이라고 하는데 역시 '변할 수 있는' 이라는 뜻입니다. 쉽게 이해하기 위해서는 우리가 평상 생활을 하기 위하여 수시로 사용하는 여러가지 그릇을 생각하시면 됩니다.즉 밥을 먹으려면 밥그릇이 필요하고 밥그릇에 밥을 담아야 밥을 먹을 수 있는 것이고 국을 먹으려면 국그릇이 필요하고 국을 담아 먹어야 합니다.하지만 밥그릇 이지만 떡을 담아 먹을 수도 있.. 2025. 5. 9. 7. 진법과 진수 아마 제목만 봐도 벌써 머리가 지끈 지끈 아파오시는 분이 있을 겁니다.'진법과 진수'하면 떠오르는 기억이 아주 오래전에 공부 좀 하신다는 친구놈 아들님께서 이 아콤 아저씨를 찾아와서 학교에서 진법에 관한 과정을 공부하는데 도저히 모르겠다고 특별 과외를 신청해서 열심히 가르쳐 준 적이 있는데 어쨋던 좋은 대학 가고 좋은 직장 다니고 얼마전에 장가도 갔습니다. 내 덕인가? ㅋㅋ아뭏든 그 공부 잘한다는 녀석도 힘들어 하는 걸 보니까 이게 좀 어려운 내용인가 싶긴 하더라고요.하지만 완전한 이해는 하지 않더라도 어느 정도는 알고 있어야 할 것 같아서 강좌에 넣었습니다.아무리 해도 이해가 안되면 할 수 없지만 아주 쉬운 예를 들고 쉽게 설명하려고 노력했으니 기본적인 개념 정도는 아시고 가는게 좋을 것 같습니다.우선.. 2025. 5. 8. 6. 보이지 않는 반복 지난 강좌에서 우리는 반복에 관해서 배워봤습니다.이번 시간에는 보이지 않는 반복에 관해서 알아보도록 하는 시간을 갖겠습니다..보이지 않는 반복은 또 뭐야?' 라는 의문이 들 것입니다.보이지 않는 반복은 제가 만든 단어로 전문 용어도 아니고 프로그램 개발 과정에서 통상적으로 사용되는 단어는 아닙니다.그러나 컴퓨터는 이 보이지 않는 반복을 통해 사용자의 의사를 받아들이고 그에 따른 적절한 작업을 수행하기 때문에 반드시 알아두셔야 할 개념입니다.일단 '보이지 않는다' 라는 것은 우리가 알고리즘을 구축하거나 코딩을 할 때 앞에서 배운 LOOP 구조로 표현하지 않기 때문입니다.즉 소스 코드상 FOR .. 나 UNTIL WHILE 등을 사용하지 않고 프로그램 언어 자체에서 제공하는 OBJECT를 배치함으로써 자동적.. 2025. 5. 7. 5. 반복에 관하여 제어의 모든 것 반복이번 강좌는 알고리즘의 모든 요소를 포함하고 있으며 모든 처리과정의 제어에 가장 중요한 역활을 하는 반복에 관해서 설명해 보도록 하겠습니다.반복 구조는 루프(loop)라고하며 반복을 하는 절차를 루핑(looping)이라고 합니다. 본 포스팅의 제목을 제어의 모든 것이라고 한 것은 반복에는 순차진행과 조건분기, 진행 위치의 이동이 모두 포함되어 있는 구조이기 때문입니다.이전 강좌 '알고리즘은 무엇인가'에서 잠깐 설명했듯이 반복은 어떤 조건이 만족할 때까지 일련의 과정을 반복해서 수행하는 뜻합니다.그것을 구현 하기 위해서는 현재 상태에서 조건이 만족하였는가 하는 조건분기의 구조가 필요하고 조건이 만족하였다면 반복에서 벗어나 다음 단계로 순차 진행하며, 조건이 만족되지 않았다면 다시 처음으.. 2025. 5. 2. 4. 조건분기에 대하여 제어의 시작 조건분기이번 강좌는 알고리즘 구성 중 두번째 조건분기에 관해 자세히 설명해 보도록 하겠습니다. 앞선 강좌에서 순차진행은 시간의 경과에 의해 자연스럽게 진행되는 것에 비하여 조건 분기와 반복은 수행 절차를 통제 제어하는 구성이라고 할 수 있습니다.제2강 알고리즘이란? 을 읽어 보신 분은 조건분기에 대해 어느 정도 이해가 있으시겠지만 다시 한번 설명하면 조건 분기는 특정 상황에서 예(Yes)/아니오(No) 혹은 참(True)/거짓(False) 의 조건을 파악하고 해당 조건에 따라 진행 과정을 달리하게 하는 것을 조건 분기라고 합니다.사실 엄밀히 따지면 진행 과정을 이쪽 저쪽으로 통제하는 것이 아니라 '만약 .... 이면 .....을 수행하라, 혹은 만약 .... 이면 ..... 을 수행하고 아니.. 2025. 5. 1. 3. 순차진행에 관하여 알고리즘의 기본 순차진행앞 강좌에서 알고리즘에 대한 대략적 개념과 알고리즘을 구출할 때 사용하는 세가지 요소에 대해 간단히 설명해 드렸습니다.이번 강좌는 그 세가지 중 첫번째 순차진행에 관해 자세히 설명해 보도록 하겠습니다.미리 말씀드렸듯이 이 강좌는 특정 언어를 가르쳐 주는 것이 아니고 어떤 특정 유형의 프로그램의 개발을 목적으로 하는 강좌가 아닙니다.다만 앞으로 개발자가 되고 싶거나 현재 개발자가 되기 위해서 공부하는데 있어 기본적인 개념을 잡지 못하시는 분을 위한 아주 기초적이 개념 정리를 위한 강좌이기 때문에 그냥 옛날 이야기 듣듯이 큰 부담 같지 말고 읽어 나가시면 됩니다.따라서 어려운 단어나 개념은 최소화 하고 최대한 이해가 쉽도록 노력하고 있으며 그냥 읽다 보면 어렴풋이 개념이 잡혀 나가는 .. 2025. 4. 30. 2. 알고리즘이란? 목차1. 알고리즘이란 무엇인가?2. 알고리즘은 무엇으로 구성되는가?3. 마무리 알고리즘이란 무엇인가?앞의 강좌에서 컴퓨터 프로그램 개발이란 알고리즘을 구축하는 과정이라고 강조했습니다. 그런데 도데체 알고리즘(algorism)은 뭐야? 사전에 찾아보니 어떤 문제를 해결하기 위해 정해진 일련의 절차나 방법이랍니다.좀더 자세한 설명이 필요하면 나무위키의 알고리즘에 관한 설명를 눌러보세요 뭔 말인지 알듯 말듯 복잡하네요. 나무위키 바로가기 자! 우리 이런 저런 소리 다 접어두고 한번 생각해 봅시다. 우리가 왜 컴퓨터를 만들고 복잡스럽게 프로그래밍을 배우고 개발하고 사용법을 또 배우고 하죠? 바로 사람이 하는 일을 컴퓨터에게 시키려고 하는 겁니다. 즉 컴퓨터가 할 수 있는 일 또는 컴퓨터에게 시키는 일은.. 2025. 4. 29. 1. 강좌를 시작하면서 - 프로그래밍과 코딩 - 프로그래머가 되기 위한 첫걸음프로그래머가 되고자 하나 아무런 경험도 없고 막 시작하고자 하는 쌩 초보자를 위해 강좌를 시작합니다. 코딩과 프로그래밍의 차이요즘 흔히 코딩을 배운다. 코딩 전문 학원 뭐 등등 코딩 코딩 하는데 우리 코딩과 프로그래밍은 확실히 구별하고 갑시다.우선 코더는 개발자가 아닙니다.코더는 개발자인 프로그래머가 구축한 알고리즘을 컴퓨터 언어인 소스 코드로 표현해서 입력하는 역할을 합니다.즉, 코딩이란 프로그래머가 원하는 바를 프로그램 언어로 컴퓨터에 입력하여 컴퓨터로 하여금 실행할 수 있는 프로그램을 만들 수 있도록 하는 과정입니다.프로그래머을 설계자라고 하면, 코더는 설계도면을 보고 연장을 사용해서 물건을 만드는 단순 기술자라고 이해 하시면 됩니다.요즘은 프로그래머가 직접 코딩을 하면.. 2025. 4. 28. 이전 1 다음