메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

[서평/리뷰] 혼공프로 개정판

redgo***

|

2024-05-20

혼자 공부하는 첫 프로그래밍 with 파이썬(개정판)

혼자 해도 충분하다! 1:1 과외하듯 배우는 프로그래밍 자습서

  • 저자 : 문현일
  • 출간 : 2024-04-05

​

이럴때 보는책이다.

프로그래밍 언어 공부가 처음일 때

친절한 코딩 강의와 책을 아직 못만났을 때

비전공자라서 IT개념 이해가 필요할 때

​

​

또한 이 책은,

혼자 프로그래밍을 공부할 수 있도록 돕고 있고

예제코드는 단순하지만 실생활에서 쉽게 접할 수 있는 다양한 상황을 다루고 있다.

​

선행지식? 필요없다!

취업에 도움? 당연히 된다!

포기하지말고 끝까지 완독해보자!! 더 나은 미래가 기다리고 있다.

​

​

출판사에서는 독자를 돕기 위해 준비한 것이 몇가지 있다

​

학습사이트가 준비되어 있다.

예제파일을 다운로드 할 수 있고

동영상 강의를 볼 수 있고

저자에게 질문도 해볼 수 있다

[한빛미디어] 혼공학습단: 혼공족의 스터디 공간

혼공학습단에 오신 것을 환영합니다! 개발하고 싶은 것을 개발하세요. 혼공시리즈와 함께라면 무엇이든 할 수 있습니다. 여러분은 성공할 운명이니까요. 자신을 한번 믿고 프로그래밍 공부를 시작해 보세요!

hongong.hanbit.co.kr

​

혼공 학습단과 함께할 수 있다. 고민을 함께 할 수 있는 사람이 있으니 편하게 공부해보자

https://open.kakao.com/g5rNEh7d

사람과 세상을 향한 모든 연결의 시작, 카카오톡

#메신저 #오픈채팅 #카카오톡 #플랫폼

open.kakao.com

​

​

책은 다음과 같은 구성을 가진다

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"

(인생을 짧아요. 그래서 파이썬이 필요해요")

​

복잡하지 않고 간단하게 문제를 해결하는데 현재로서는 파이썬 만한게 없다. 그러므로 이 책에서는 파이썬으로 프로그래밍을 배워나간다.

​

왜 파이썬인가?

구체적으로 알아보자

​

하나, 파이썬은 인기가 많다

https://stackoverflow.com/

Stack Overflow - Where Developers Learn, Share, & Build Careers

Stack Overflow | The World’s Largest Online Community for Developers

stackoverflow.com

스택 오버플로우라는 사이트가 있다. 전세계 개발자들이 궁금한 점이 있을때 질문/답변을 하는 사이트인데 2011년~2017년 사이 가장 많은 질문내용이 파이썬에 관한 것이었다. 그만큼 개발자들이 많은 관심을 가지고 있다는 증거이기도 하다

​

​

둘, 파이썬은 배우기 쉽다

그냥 쉽다. 나머지는 이 책 뒷부분에서 설명한다

​

셋, 파이썬은 충분히 빠르다. 속도에는 두가지가 있는데,

컴퓨터가 프로그램을 샐행하는 속도

사람이 프로그램을 개발하고 유지/보수 하는 속도

컴퓨터 하드웨어의 비약적인 발전으로 프로그램의 실행속도는 점차 비중이 작아지고 있다. 그리고 유지/보수 개발에 3개월 걸리고 2초 빨라지는 자바/C와 달라 파이선은 유지/보수 개발에 1주일 걸리고 1~2초 늦어지는 정도이다. 무엇을 선택할것인가?

​

넷. 파이썬은 다른 언어와 궁합이 좋다

빠른 시간을 요하고, 장치를 제어하기 위해서는 파이썬보다는 C언어가 적당하다. 대신 장치로부터 얻어지는 대량의 데이터르를 인공지능으로 처리하는데는 파이썬이 더 적당하다. 이 두 언어로 만들어진 프로그램의 잘 조합이 되어 하나의 훌륭한 결과물을 만들어 낼 수 있다. 파이썬은 다른 언어들과의 호환환성이 좋다.

​

​

파이썬 코딩에 필요한것은 무엇인가?

파이썬은 컴파일러가 필요치 않다. 컴파일러는 소스코드를 기계가 이해할 수 있는 코드로 일괄 변환해주는 일종의 프로그램이다. 파이썬은 인터프리터가 필요하다. 역시 기계가 이해할 수 있는 코드로 변환하지만 일괄변환은 아니고 한줄 씩 변환해준다. 인터프리터를 PC에 설치하여 동작시킨다. 설치과정이 단순하지는 않다.

​

그래서 이 책은 클라우드 파이썬 개발환경으로 실습을 진행한다. PC에 인터프리터를 설치하지 않는다.

인터넷에 연결하여 코드를 만들고 버튼만 누르면 웹브라우저에서 바로 결과를 확인할 수 있다.

​

코딩을 위해 코랩(colab)을 이용한다.

https://colab.research.google.com

Google Colab

코드 텍스트 Drive로 복사 expand_less expand_more Colab 시작 페이지 (신규) Gemini API를 사용해 보세요 Generate a Gemini API key Talk to Gemini with the Speech-to-Text API Gemini API: Quickstart with Python Gemini API code sample Compare Gemini with ChatGPT More notebooks Colab에 이미 익숙하다면 이 동영상을 통해 양방향 테이블, 코드 실행 기록 보기, 명령어...

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장에서 다룬 데이터를 어떻게 처리할것인가? 를 코드들로 표현하는 것이다

둘 중 하나를 버릴것인가 말것인가?

수많은 데이터를 하나씩 읽어올때 반복문을 사용하게 된다.

또, 많은 선택과 반복을 코드로 만들어 덩어리로 묶어 이름을 붙인것이 함수인것이다.

​

​

이 책은 프로그래밍에 관해 아는것이 없는 초보자를 위한 책이다. 내용을 추가하거나 편집할때 '뭐, 이쯤은 다 알지 않나?'하는 선입견으로 일부는 설명을 생략하고 일부는 설명을 대충할 수도 있지만 이 책은 그렇지 않다. 초보가 궁금해 할만한 내용을 콕 찝어 상세하게 설명해주고 있다. 대충은 없다. 불필요하다고 생각할 수도 있는, 하지만 실력을 업그레이드 할 수 있는 살짝 어려운 내용까지 단원의 뒷부분에 추가해주었고, 매 단원이 종료될 때마다 키워드정리, 확인문제, 도전문제 등을 이용하여 마무리 해주고 있다.

​

포기하지 않고 잘 따라하기만 한다면 꽤나 좋은 성과를 올릴것이 분명한 책이다.

​

​

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?