redgo***
2024-05-20

이럴때 보는책이다.
프로그래밍 언어 공부가 처음일 때
친절한 코딩 강의와 책을 아직 못만났을 때
비전공자라서 IT개념 이해가 필요할 때
또한 이 책은,
혼자 프로그래밍을 공부할 수 있도록 돕고 있고
예제코드는 단순하지만 실생활에서 쉽게 접할 수 있는 다양한 상황을 다루고 있다.
선행지식? 필요없다!
취업에 도움? 당연히 된다!
포기하지말고 끝까지 완독해보자!! 더 나은 미래가 기다리고 있다.
출판사에서는 독자를 돕기 위해 준비한 것이 몇가지 있다
학습사이트가 준비되어 있다.
예제파일을 다운로드 할 수 있고
동영상 강의를 볼 수 있고
저자에게 질문도 해볼 수 있다
혼공 학습단과 함께할 수 있다. 고민을 함께 할 수 있는 사람이 있으니 편하게 공부해보자
https://open.kakao.com/g5rNEh7d
책은 다음과 같은 구성을 가진다
1장 ~ 3장 : 기본편, 프로그래밍을 하기전에 알아야 하는 기본 개념을 다룬다
4장 ~ 6장 : 고급편, 기본편에서 다룬 개념만 사용해서 프로그램을 만들어 본다.
이때, 단점이 발견되는데, 이것을 해결하기 위한 방법을 배우며 한 단계 점프업 할 수 있다.
목차는 아래와 같다
Chapter 01. 첫 프로그래밍
Chapter 02. 데이터
Chapter 03. 선택
Chapter 04. 데이터 세트
Chapter 05. 반복
Chapter 06. 함수
Chapter 01. 첫 프로그래밍
떨리는 순간이다.
프로그래밍은 도대체 무엇인가??? 왜 배우는가???? 어떻게 배우는가???
질문에 대한 답변을 간단하고 명료하게 알려준다. 무슨 내용인지 잠시 살펴보자
우선, 프로그램이란 무엇인가? 많이 들어 보았을 것이다. 바로 SW이다. 컴퓨터, 휴대폰 등에서 실행되는 '것'들을 프로그램이라고 한다. 책에서는 정확하게 아래와 같이 설명하고 있다.
'프로그램'은 컴퓨터에서 특정 작업을 수행하는 명령어들의 모음이다
'프로그래밍'은 프로그램을 만드는 과정을 말한다
'코딩'은 코드를 만드는 과정이며, 일반적으로 위의 '프로그래밍'과 같은 의미로 사용된다
그럼, 프로그래밍(코딩)을 왜 배워야 하는가?라는 질문이 따라 올 수 밖에 없는데,
역시 책에서는 유명한 인물들을 언급하며 명쾌하게 설명하고 있다.
스티브잡스, 빌게이츠, 오바마가 언급되지만 이들 보다는 삽화로 그려진 인물이 더 재미있게 설명하고 있다.

"가장 강한 종이 살아남는 것이 아니고, 가장 지적인 종이 살아 남는것도 아니다. 변화에 가장 잘 적응하는 종이 살아남는다" 라고 루이지애나 주립대 경영대학원 교수님인 리언 C.메긴슨이 찰스 다윈의 자연선택설을 경영학의 관점에서 풀어 쓴 문장이 인상적이다. 세상의 변화에 적응하지 못하면 살아남을 수 없다는 의미이기도 하다.
왜 프로그래밍을 배워야 하는가????
바로 변화에 적응하기 위해서 이다.
현재 우리 주위에서는 어떤 변화가 일어나고 있는가??? 따라잡아야 하지 않겠는가??
따라잡지 못하면 찰스다윈의 자연선택설을 증명하게 된다.
10여년전 세계를 호령하던 노키아폰의 몰락, 우리나라의 유명한 기업인 카카오의 성장, 이세돌9단을 이긴 인공지능 알파고, 2019년 기준 세계에서 가장 가치있는 브랜드에 '애플'이 1위, '구글'이 2위, '마이크로소프트'가 3위, 아마존과 페이스북(메타)가 그 뒤르 따르고 있다. 브랜드 파워가 가장 큰 기업은 모두 IT기업이라는 것은 이젠 놀랍지도 않다. 그리고 현재 세상을 뒤 흔들고 있는 인공지능의 발전이 있다. ?OpenAI사에서 만든 '챗GPT'가 바로 그것이다. 글도 쓰고, 요리도 하고, 심지어 프로그래밍도 한다.
주위 모든것이 변화하고 있고, 우리는 반드시 그것들을 따라잡아야 한다. 25년부터 바뀌는 우리나라의 교육과정에는 초등학생도 코딩을 배우게 되어 있다. 이 글을 읽는 당신은 어떻게 할것인가? 자연선택설을 따를것인가? 적응할것인가???
적응하려면 프로그래밍을 배워야겠지?
이 책이 도와줄것이다. 지금 사러 서점으로 가자~!!! 아니, 인터넷서점에서 주문하자
그 전에 조금 더 살펴보자 프로그래밍을 하려면 무엇을 알아야 하지?
그들의 언어를 배워야 한다. 그들이 사용하는 언어를 알야야 한다. 그리고 말을 건네보자. 이것을 프로그래밍이라고 한다.
언어, 즉 programming Language를 이용해서 source code만들면 내 말이, 내 생각이 compiler를 거쳐 그들에게 전달이 된다. 이것을 프로그래밍이라고 한다. 그들 = 컴퓨터
Programming Language는 뭐고,
Source Code는 뭐고,
Compiler는 무엇인가?
책의 구성은 이렇게 계속 꼬리를 물고 질문이 이어진다.
간단한 흐름으로 여러분들의 궁금증을 유발하며 알게모르게 지식을 재워주고 있다.
1-1장은 이렇게 끝난다. 궁금증을 유발한채로 잠도 못자게 하고 끝난다.
1-2장에서는 태어나서 처음으로 코딩을 해본다. 무려 세가지 언어를 이용해 프로그램을 만들어 본다.
같은 출력을 보여주지만 각 언어의 특징을 보여주며 비교해볼 수 있게 쉬운 사례를 들어 설명하고 있다
// C언어이다
#include
int main()
{
printf("Hello, World!");
return 0;
}
// java 언어이다
public class HelloWorld {
public static void main(STring[] args) {
System.out.println("Hello, World!");
}
}
// python 언어이다
print("Hello, World!")
프로그래밍 언어는 여러가지가 있지만 대표적인 3가지를 사례로 들어 설명하고 있다. 위의 코드들이 무슨 뜻인지는 모르지만 보기에 어떤가? 셋 중에 가장 눈이 가는것은 무엇인가? 쉬워보이는것에 관심이 가지 않는가? 같은 내용을 간단하게 표시할 수 있는것은 현재로서는 파이썬을 들 수 있다. 파이썬이 가장 훌륭하지는 않지만 가장 인기있는 언어가 된 이유는 아래 문장에서 보여준다.
"Life is short. You need python"
(인생을 짧아요. 그래서 파이썬이 필요해요")
복잡하지 않고 간단하게 문제를 해결하는데 현재로서는 파이썬 만한게 없다. 그러므로 이 책에서는 파이썬으로 프로그래밍을 배워나간다.
왜 파이썬인가?
구체적으로 알아보자
하나, 파이썬은 인기가 많다
Stack Overflow - Where Developers Learn, Share, & Build Careers
Stack Overflow | The World’s Largest Online Community for Developers
스택 오버플로우라는 사이트가 있다. 전세계 개발자들이 궁금한 점이 있을때 질문/답변을 하는 사이트인데 2011년~2017년 사이 가장 많은 질문내용이 파이썬에 관한 것이었다. 그만큼 개발자들이 많은 관심을 가지고 있다는 증거이기도 하다
둘, 파이썬은 배우기 쉽다
그냥 쉽다. 나머지는 이 책 뒷부분에서 설명한다
셋, 파이썬은 충분히 빠르다. 속도에는 두가지가 있는데,
컴퓨터가 프로그램을 샐행하는 속도
사람이 프로그램을 개발하고 유지/보수 하는 속도
컴퓨터 하드웨어의 비약적인 발전으로 프로그램의 실행속도는 점차 비중이 작아지고 있다. 그리고 유지/보수 개발에 3개월 걸리고 2초 빨라지는 자바/C와 달라 파이선은 유지/보수 개발에 1주일 걸리고 1~2초 늦어지는 정도이다. 무엇을 선택할것인가?
넷. 파이썬은 다른 언어와 궁합이 좋다
빠른 시간을 요하고, 장치를 제어하기 위해서는 파이썬보다는 C언어가 적당하다. 대신 장치로부터 얻어지는 대량의 데이터르를 인공지능으로 처리하는데는 파이썬이 더 적당하다. 이 두 언어로 만들어진 프로그램의 잘 조합이 되어 하나의 훌륭한 결과물을 만들어 낼 수 있다. 파이썬은 다른 언어들과의 호환환성이 좋다.
파이썬 코딩에 필요한것은 무엇인가?
파이썬은 컴파일러가 필요치 않다. 컴파일러는 소스코드를 기계가 이해할 수 있는 코드로 일괄 변환해주는 일종의 프로그램이다. 파이썬은 인터프리터가 필요하다. 역시 기계가 이해할 수 있는 코드로 변환하지만 일괄변환은 아니고 한줄 씩 변환해준다. 인터프리터를 PC에 설치하여 동작시킨다. 설치과정이 단순하지는 않다.
그래서 이 책은 클라우드 파이썬 개발환경으로 실습을 진행한다. PC에 인터프리터를 설치하지 않는다.
인터넷에 연결하여 코드를 만들고 버튼만 누르면 웹브라우저에서 바로 결과를 확인할 수 있다.
코딩을 위해 코랩(colab)을 이용한다.
https://colab.research.google.com
colab은 구글계정이 필요하다. 로그인 해보자.
아래와 같은 화면을 볼 수 있다.

파랑색 버튼 "+새노트"를 눌러 보면 코드를 입력할 수 있는 화면으로 전환된다.
입력해보자

코드를 입력한 왼쪽에 실행(원형삼각형)아이콘을 클릭하면 프로그램이 실행된다.

여러분은 방금 첫 프로그램을 아주 성공적으로 끝마쳤다.
책에서는 많은 종류의 실습코드를 제공하고 있다. 이러한 코드들을 일일이 입력할 수도 있지만 여의치 않은 경우 실습에 사용하는 소스코드를 GitHub를 통해 제공하고 있다. 방법은 책에 있으니 참고하도록 하자. 친절하다. ^^
지금까지 프로그램을 만들기 위한 환경 설정, 즉 프로그램을 어떻게 만드는지에 대해 알아보았다.
이제부터는 프로그램 그 자체에 대해 공부해 보자.
Chapter 02. 데이터
이 장에서는 프로그램 안에서 사용되는 데이터에 관해 배운다.
데이터를 표현하는 문자와 숫자의 차이점을 알아본다.
데이터를 계산하는 방법을 알아본다.
변수가 무엇인지도 알아본다.
02-1. 문자데이터
데이터가 무엇인지 알아보고, 문자데이터는 또 무엇인지 알아본다.
1,2,3, 과 같은 숫자는 문자인가? 숫자라고 하지 않고 왜 문자라고 하는가? 이유를 잘 알려준다.
특수문자도 있는데, 이것의 용도는 문자를 잘 표현하는데 사용된다. 예를 들면 따옴표 같은것들이 있는데, 프로그램을 코드들에서 따옴표는 중요한 역할을 한다. 그런데 문자로 표현을 하려면 어떻게 해야하는지도 알려준다.
02-2. 문자데이터 처리
문자들을 처리하는 방법을 알려준다. 처리? 자르고 붙이고 지우고 추가하는 방법들이다.
연산자들 이용한다. 어떻게하는지 코드로 구현하는 방법을 알려준다.
문자를 편집(자르거나, 붙이거나 등)을 하려면 어디부터 어디까지인지 범위를 알아야 하는데 범위를 숫자로 표한한다. 그것을 'index'라고 한다. 문자데이터는 각 글자마다 index가 붙어있다. 순서가 붙어있다.
문자열 | H | e | l | l | o | | W | o | r | l | d |
index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
위의 표에서 처럼 각 글자는 순서가 정해져 있고 그 순서에 해당되는 글자들이 있다. 따라서 원하는 글자를 편집하려고 한다면 index를 알아야 한다. 각 글자의 index를 지정하여 인쇄명령을 하면 결과는 한글자씩 출력이 된다.

문자를 가공하는 방법에 대해서도 추가로 설명한다.
문자데이터 교체 명령어 : replace
문자데이터 변환 명령어 : repr
공백 제거 명령어 : strip, lstrip, rstrip
02-3. 숫자 데이터
숫자로 표시되는 데이터도 있다. 우리가 알고 있는 아라비아 숫자이다. 이 숫자를 이용하여 더하거나 빼거나 곱하거나 나누는 계산을 수행한다. 컴퓨터에서는 숫자를 두 가지로 나누어 처리하고 있는데 바로 소수점이 없는 정수형숫자와 소숫점이 있는 실수형 숫자(부동소숫점수)로 나눈다. 여기에서 각각 양수와 음수로 또 나누어진다.
숫자들을 계산하려면 기호가 있어야 한다. 더하기(+), 빼기(-), 곱하기(*), 나누기(/) 등이 있다.
추가로 나누기는 나머지가 있는것(/), 나머지가 없는것(//) 이 있으니 적절히 사용하면 된다. 또는 나머지만(%) 구하는 방법도 있다. 그리고 제곱(**)도 있다

순자를 계산할땐 순서가 있다. 괄호가 있으면 괄호를 먼저 계산하면 되는데 그렇지 않다면 다음의 순서대로 계산된다
1순위 : 괄호
2순위 : 곱하기 혹은 나누기 (왼쪽부터)
3순위 : 더히기 혹은 빼기 (왼쪽부터)
02-4. 변수
변수는 문자,숫자 등의 데이터가 가진 이름이다. 이름을 왜 붙여주는가? 다시 불러서 사용하기 위함이다. 이름이 없다면 데이터는 일회성으로 사용되고 사라지기 때문이다. 아래와 같이 "변수1"이라는 변수에 123 값을 대입(저장)하면 다음 줄에서 "변수2"를 만들어 결과를 저장할 수도 있다.
변수1 = 123 변수2 = 변수1 + 변수1
데이터의 이름, 즉 변수를 만드는데는 규칙이 있다.
변수이름은 숫자로 시작할 수 없다
변수 이름에 공백을 사용할 수 없다
변수 이름에 특수문자는 밑줄(_) 을 사용할 수 없다. (언더스코어라고도 한다.)
변수 이름에 키워드를 사용할 수 없다. 파이썬에서 이미 사용중인 단어들이다
변수이름을 만드는 관례 Naming convention이 있는데,
변수 이름은 알파벳이 좋다(a ~ z, A ~ Z)
변수 이름만으로 변수가 가리키는 데이터를 유추할 수 있도록 충분히 자세한 이름이 좋다
두 가지 이상의 단어를 사용할땐 언더스코어, 밑줄( _ )을 단어사이에 끼워주면 보기 좋다
여기까지 데이터와 데이터를 저장하는 변수에 관해 알아보았다.
이후에는 본격적으로 프로그램을 하는 내용들이 남아 있다
선택, 반복, 함수 등은 명령어라고도 하는데, 이 명령어들로 프로그램을 만들어 나간다.
이 명령어들을 사용하는 목적은 2장에서 다룬 데이터를 어떻게 처리할것인가? 를 코드들로 표현하는 것이다
둘 중 하나를 버릴것인가 말것인가?
수많은 데이터를 하나씩 읽어올때 반복문을 사용하게 된다.
또, 많은 선택과 반복을 코드로 만들어 덩어리로 묶어 이름을 붙인것이 함수인것이다.
이 책은 프로그래밍에 관해 아는것이 없는 초보자를 위한 책이다. 내용을 추가하거나 편집할때 '뭐, 이쯤은 다 알지 않나?'하는 선입견으로 일부는 설명을 생략하고 일부는 설명을 대충할 수도 있지만 이 책은 그렇지 않다. 초보가 궁금해 할만한 내용을 콕 찝어 상세하게 설명해주고 있다. 대충은 없다. 불필요하다고 생각할 수도 있는, 하지만 실력을 업그레이드 할 수 있는 살짝 어려운 내용까지 단원의 뒷부분에 추가해주었고, 매 단원이 종료될 때마다 키워드정리, 확인문제, 도전문제 등을 이용하여 마무리 해주고 있다.
포기하지 않고 잘 따라하기만 한다면 꽤나 좋은 성과를 올릴것이 분명한 책이다.