토요일, 파이썬 기초과목을 수강하기 위해 출근?? 하였습니다.


간단하게 OT를 하고 수업을 진행하였습니다.


이지호 강사님!


이번 강의노트는 캡쳐를 많이 해서인지 유독 긴 것 같습니다. 물론 시간상으로도 3시간 분량보다 훨씬 많기도 하거니와 적절하게 집중도 잘 되게 강의를 해 주셔서 거의 대부분을 놓치지 않고 기록을 할 수 있었습니다. 참고로 스크롤이 굉장히 많이 내려갈 수 있으니 차분하게 봐주시기 바랍니다.


========================================  1  ========================================


[ 09 : 00 ~ 09 : 50 ] 


어떤 언어를 다루어 보았는지를 질문하시면서 파이썬 기초를 강의 할 예정이라고 하셨습니다.


이 과정의 목표는 파이썬이라는 언어를 처음 접하는 개발자를 위한 과정이라고 소개를 해 주셨습니다.


파이썬에 대해 소개를 시작으로 강의를 하셨습니다.


자바는 1995년에 만들어졌고, 그보다 빠른 1991년에 파이썬이라는 언어가 개발이 되었다고 하셨습니다.


파이썬의 특징은 다음과 같습니다.

 - 플랫폼 독립적

 - 인터프리터 언어

 - 객체지향

 - 동적 타이핑 -> 동적으로 자료형을 바꾸는 것 (변수의 형을 선언하지 않음)


파이썬 소프트웨어 제단이 스펙을 주도하고있습니다. 강사님께서는 파이썬 2 이하버전을 사용하는것을 지양하셨습니다.

그리고 https://www.python.org/ 에서 다운로드 받아 파이썬 설치를 하였습니다. Windows 와 Mac 용을 지원을 합니다. 이 외의 OS사용자는 다른 방법(소스 컴파일, 페키지 설치)으로 설치 및 사용이 가능합니다.

위의 화면과 같이 Python 3.6.0을 선택합니다.


<아래 화면 두장은 2017.03.06 자로 제가 다시 https://www.python.org/ 에 접속하여 파이썬을 설치하기 위해 본 화면입니다.>


파이썬 설치




다운로드 한 파일을 실행하면 위와같은 창이 열립니다. 


설치 진행이 바로 됩니다.


설치가 완료되었습니다. 굳이 화면 가이드가 필요 없을 정도로 간단한 과정으로 설치가 되었습니다.








그리고 파이썬용 통합 개발툴인 PyCharm의 설치를 진행 해 보겠습니다.


IDE로는 PyCharm을 사용 할 예정이라고 하셨습니다.  http://www.jetbrains.com/ 에 가시면 받으실 수 있습니다. 현재 근무하고 있는 회사에서 사용하는 툴입니다. 구매했던 기억이 새록새록 나네요.


커뮤니티 버전을 받아서 설치를 진행하였습니다. 다운로드 하시고 설치는 아래 이미지들을 확인하시고 진행해주시면 됩니다.

 1) Next를 눌러서 계속 설치를 진행해줍니다.


  2) 경로를 지정 해 주고 다음으로 넘어갑니다.

3) OS선택 및 확장자 연결을 선택 해 줍니다.

 4) 프로그램 메뉴에 들어갈 폴더이름을 지정해줍니다. 기본값을 써서 그냥 바로 Install을 눌러도 됩니다.


다른 프로그램들과 같이 상태바가 보이며 설치정도를 확인할 수 있습니다.

 5) 설치 완료 - Finish를 누르게 되면 설치가 끝납니다.


처음 파이참을 켜면 설정을 Import할지 여부를 선택하는 창이 나타나게 됩니다. 처음 설치하시는 분은 위와 같이, 그렇지 않다면 라디오버튼의 위 항목을 선택하시고 설정파일의 경로를 찾아서 Import해 주시면 됩니다.


 파이참 커뮤니티 버전의 시작화면입니다.


파이참 커뮤니티 편집기의 설정창입니다. 저는 기본값으로 설정되어 있는 것을 그대로 사용하여 OK를 바로 눌렀습니다.





 위의 이미지와 같이 버전관리프로그램 체크아웃 메뉴를 누르면 대표적인 형상관리 프로그램들을 몇가지 볼 수 있고 해당 형상관리 프로그램에 도움이 되는 기능들도 들어가있다고 하셨습니다. 평소에 사용하시는 형상관리 도구를 선택하시면 됩니다.




 그리고 새 프로젝트 만들기!를 누르면 프로젝트 생성 창으로 넘어갑니다.


 파이참은 초기 프로젝트를 생성하면 경로를 지정하는데 해당 경로의 최 하위 폴더의 이름이 프로젝트의 이름이 됩니다.


 저의 경우는 "Kosta"라는 이름으로 프로젝트를 생성하였습니다.


 프로젝트가 생성되면 처음엔 Tip을 알려주는 창과 함께 편집기가 열립니다.



편집기에서 문서를 따로 열지 않으면 위와 같이 간단하면서도 자주 사용하는 파이참 단축키가 나타나 있습니다.



 간단하에 툴 사용법을 쭉 알려주셨습니다.



먼저 새로 파일을 생성하는 방법입니다. 

( jetBrain의 제품들은 따로 저장을 하지 않아도 편집중인 파일이 저장된다고 하셨습니다. )

파일을 생성하는 방법은 아래와 같습니다. 


파일을 생성 할 경우 위와같이 선택을 하면 아래의 파일 이름을 입력하는 창이 나타나게 됩니다.



환경설정을 하는 방법은 아래와 같습니다. File -> Setting 를 아래와 같이 선택합니다.


환경설정창의 메뉴는 아래와 같습니다. 왼쪽에는 메뉴의 목록이 쭉 나열되어있고, 오른쪽, 중앙부분에서는 각 항목들에 대한 설정이 가능합니다. 


이번에는 파이썬 콘솔을 여는 방법입니다. 콘솔을 여는 단축키는 따로 적혀있지 않습니다.

View -> Tool Windows -> Python Console 을 선택합니다.


위의 메뉴와 같은 부분에 터미널을 여는 방법입니다. 메뉴는 위의 이미지를 참고해주시기 바랍니다.

View -> Tool Windows -> Terminal 을 선택합니다.


그리고 네비게이터에 대해 어떤 메뉴가 있는지 한번 훑어주셨습니다.


마찬가지로 VCS 메뉴도 한번 보여주셨습니다.



파이썬 버전을 확인하는 방법입니다. 위의 설정을 열고, 오른쪽 Tab에서 프로젝트 이름을 누르면 Project Interpreter를 설정할 수 있습니다. 다른 수강생 한분이 PC에 파이썬2버전대가 깔려있다고 하셔서 강사님께서 확인하는 방법을 알려주셨습니다.


그리고 위의 화면에서 오른쪽 상단에 녹색 +버튼을 누르면 새로 환경을 등록하는 창이 아래와 같이 열리게 됩니다.


파이썬은 라이브러리 사용이 어려워서 별도의 가상 환경을 설정을 하고, 거기에 라이브러리 설치를 하여 사용을 해도 전역에 설치가 되지 않으며, 해당 가상환경만 날리면 모든 라이브러리를 삭제할 수 있다고 하셨습니다.



========================================  2  ========================================


[ 10 : 00 ~ 10 : 51 ]


새로 파일을 하나 만들어 보았습니다. 프로젝트의 이름에서 마우스 오른쪽 버튼 클릭 -> New ->  Python File 을 선택합니다. 

위에서 소개한 방법과 다른 방법으로 파일을 추가하는 방법입니다.



파일을 추가하면 PyCharm의 편집기 화면이 아래와 같이 나타납니다.


실행 및 디버깅을 하려면 상단의 메뉴에서 Run을 선택합니다.





파이썬 변수와 표현식에 대해 소개를 해 주셨습니다.
이 내용은 인쇄된 강의자료 9페이지에 메모를 하였습니다.

그 후 코딩을 해 보았습니다.

변수화 표현식 중 숫자 타입에 대해 코딩을 해 보았습니다.








그 후 문자열에 대해서도 확인 해 보았습니다.

문자열에서 특이한 것은 배열 Index를 음수로 넣으면 문자열의 끝에서부터의 인덱스틑 찾게 됩니다.


파이썬 포멧에 대해 보다 더 자세한 정보를 원하실 경우 https://pyformat.info/를 방문해주시기 바랍니다.








문자 더하기와 문자 곱하기를 출력 해 보면서 재미있는 것도 확인을 해 보았습니다.


문자열의 인코딩 함수입니다.


문자열의 디코딩 함수입니다.


모든 변수는 다 객체입니다.  강의자료 13페이지에 문자열 메서드에 대해서 한번 확인해보겠습니다.





========================================  3  ========================================


[ 11 : 00 ~ 11 : 51 ] 

이번 시간에도 문자열 함수를 이어서 보았습니다.


새로운 연산결과가 기존의 결과, 연산의 대상에 영향을 주지 않습니다.


문자열에 이어 배열과 유사한 자료형, 리스트에 대해 알아보겠습니다.

리스트를 만들 때 값이 있는 리스트르 만들 수도 있고, 빈 리스트를 만들 수도 있습니다. 또한 클래스를 써서 만드는 방법도 있습니다. 

리스트에 원소 추가는 아래와 같이 합니다.


이번에는 특정 원소를 제거하는 방법입니다.


리스트에 삽입(중간에 추가)하는 방법입니다. insert 함수를 사용합니다.


이번엔 리스트의 복사를 하는 방법입니다. 첫번째 방법은 슬라이싱이라는 것을 이용(?)한 것이라고 설명을 해 주셨습니다. 슬라이싱을 하면 특정 범위를 가져올 수 있는데 아래의 8번라인과 같이 쓰면 전 범위를 가리킵니다.


이번엔 특정 원소나 특정인덱스의 원소를 제거하는 방법입니다.


리스트의 순서를 뒤집어주는 함수도 있습니다.


이번에는 문자열을 뒤집어서 출력하는 방법입니다.


List정렬함수입니다. 두가지 함수의 기능이 살짝 다릅니다.


이번에는 문자열을 리스트에 저장 해 보겠습니다. 결과는 아래 결과창과 같은데 아마 저러한 결과가 익숙하지만은 않을 수 있습니다.


위와 같은 결과가 아니라, 문자열을 하나의 요소로 리스트에 넣는 방법은 아래와 같습니다.


이번에는 리스트를 합치는 함수입니다. 함수의 이름인 extend라는 것만 봐도 리스트를 확장 해줍니다.


위에서 원소를 추가할 때 사용했던 append와 extend의 차이점을 명확하게 보여주는 화면입니다. append는 원소를 추가하는 함수이고, extend는 리스트를 연장하는 함수입니다.


이번에는 배열을 반복적으로 생성하는 2가지 방법입니다.


익명함수, Lambda함수입니다.


map과 fillter를 살펴보겠습니다.


<메모 - map과 fillter>

map과 fillter에 대해서도 학습을 했습니다. 강의자료 16페이지에 자세하게 설명이 되어있습니다.

map과 fillter 모두 반복이 가능한 테이터 타입입니다. 이러한 데이터타입을 시퀀스 타입의 자료형(ex : 문자열, 리스트, 튜플)이라고 합니다.

map과 fillter 모두 함수와 자료형을 인자로 받습니다.


map(func, 자료형) 

fillter(func, 자료형) 


func : 함수의 이름으로 문자열이 아니라 실제 함수의 이름입니다. def키워드로 선언된 함수이거나 lambda함수(인라인 함수, 혹은 익명함수)


map은 모든 시퀀스 타입의 요소에 대해 어떤 일을 한 결과를 반환합니다.

fillter는 모든 시원스 타입의 요소에 대해서 적합성 여부를 판단해서 새로운 결과를 만들어냅니다. 적합성 여부는 True/False로 반환하면 됩니다.







강사님께서 메모하는 것은 좋은데 메모한 것을 보는것은 더 좋다고 하시면서 메모하는것보다 진짜로 학습을 하고 활용을 하고 보는것의 중요성을 한번 이야기 하셨습니다.



========================================  4  ========================================



[ 12 : 00 ~ 12 : 51 ] 

이번 강사님께서는 정말 칼같이 시간을 딱딱 맞춰주셔서 신기했습니다.



맵과 필터는 다루는데 리듀스는 왜 다루지 않느냐는 질문을 받으셨다고 하시면서 수업을 시작하셨습니다.

리듀스함수는 누적된 값을 만들어주기 위해 사용한다고 하셨습니다. 이전의 계산결과에 새로운 계산결과를 알려주는 함수라고 하셨고, 파이썬의 기본 함수가 아니라서 모듈에서 가져와 쓰셔야 한다고 하셨습니다. 


중간에 수강생 질문으로 파이썬 2와 3의 호환에 관해 이야기를 해 주셨습니다. Datatype, 문법 등을 고려하면 기본적인 부분을 제외하고는 호환이 거의 되지 않으므로 파이썬 2를 사용하는것을 권하지 않으셨습니다. 


숫자, 문자, 리스트를 다루었습니다. 이제 튜플을 다루어 보겠습니다.

튜플은 기본적으로 순서가 보장이 되며 반복이 되는 것은 리스트와 동일합니다. 시퀀스 기준으로 슬라이싱도 가능합니다. 하지만 개별의 요소번경, 추가, 삭제가 되지 않습니다. 

튜플의 생성 방법입니다.


위에서 설명한 튜플의 특징으로 수정을 하려고 하면 Error를 발생시킵니다.


튜플과 리스트의 전환은 아래와 같이 합니다. 각각을 서로 인자로 넣어서 생성함수를 사용하면 되겠습니다.



사전에 대해서도 알아보겠습니다. 사전은 순서가 보장이 되지 않는다고 하셨습니다.


사전을 생성하는 방법입니다. 리스트가 대괄호, 튜플이 소괄호를 사용하였다면, 사전은 중괄호를 사용합니다. 


사전은 다른 언어의 Hashmap과 유사하다고 하셨습니다.


사전에 대해 조금 더 설명을 하면 아래와 같습니다. Key와 Value로 이루어진 쌍의 연속된 데이터리스트입니다. 






아래의 방법을 사용하면 숫자로도 Key를 생성할 수 있습니다. 다른 벙법으로는 문자열만을 이용할 수 있습니다.


















집합에 대해서도 알아봤습니다.



부울과 None.

True와 False는 첫번째 문자를 대문자로 해서 사용해야 합니다. None은 Memory상에 있는 쓰래기 값이라고 설명 해 주셨습니다. 


파이썬에서 사용하는 연산자


in 은 for문 안의 것과 아닐 때 서로 다릅니다. in은 있는지 없는지를 확인하여주는 연산자입니다. 

not in


+ Recent posts