- 미운코딩새끼 강의 9개, 파이썬 설치
- linux, git, django에 대해 알아보기
- 사람들에게 바로 노출가능한 블로그 만들어서, 그동안의 코딩 log 정리해 업로드 하기.
<인프런 - 김왼손의 미운코딩새끼>
1. 왜 파이썬일까요?
1. 파이썬은 타 컴퓨터 언어에 비해 쉽기 때문에 코딩 입문언어로 많이들 접한다.
2. 파이썬은 범용 프레임 언어로 게임, 보안 등 다양한 영역에서 사용할 수 있다.
3. 파이썬은 “어떤 문제를 해결하기 위한 가장 아름답고 간결한 답이 하나 있다”를 모토로 삼는다.
대표적으로 stackoverflow라는 사이트가 있는데,
이 사이트에서는 그 아름다운 최상의 코드를 찾기 위해 많은 사람들이 소통한다.
(스크립트 언어 중 ‘펄’은 “문제 해결을 위한 수만가지의 방법이 있다”가 모토로서 파이썬의 모토와 상반된다.)
4. 파이썬의 장점
1. 코드를 간결하게 짤 수 있다.
2. 많은 자료가 있다. 기업 등에서 많은 사람들이 사용하기 때문에.
3. 빠르게 개발이 가능하다. 라이브러리가 많이 만들어져 있기 때문에 바로 가져다 사용할 수 있다.
(=있는 바퀴를 만들지 마라)
2. 파이썬 설치하기: IDLE
1. python.org 사이트를 통해 파이썬 프로그램을 설치했다.
2. IDLE: Intergranted Development Environment
: 통합개발환경으로 접속하니, 터미널과 크게 유사한 프로그램이 나타났다.
3. 그런데 명령 코드가 그냥 친구들과 대화하는 것처럼 굉장히 간결해서 깜짝 놀랐다!
예를 들어 화면에 무엇인가를 출력할 때
javascript는 consol.log(’~’ + ‘~’) 라고 입력했어야 하는데,
파이썬은 그냥 1+1 혹은 print(‘~’) 라고 입력하면 console.log와 동일한 작업을 진행해주었다.
4. 또한, my_int = ~ 식이나 my+list = [~,~,~] 식으로 객체를 간편하게 만들 수 있다.
2-1. <생활코딩-web2-python-실습환경 준비-Python 설치>
1. 컴퓨터를 제어하는 방식은 두 가지로 나눌 수 있다.
그래픽을 사용한다는 의미의 GUI와, 명령을 입력해서 컴퓨터를 제어한다는 의미의
CLI (Command Line Interface)이다.
2. 터미널은 CLI 방식으로 컴퓨터를 제어하는 방식이다.
3. 입력 방식
1. 터미널에서 특정 디렉토리를 지정하고 mkdir web2-python 이라고 입력하면,
그 디렉토리에 web2-python 파일명을 지닌 파일이 생성된다.
2. python3 이라고 입력하면, “이제부터 파이썬 언어로 이야기할꺼야” 라는 뜻이 된다.
3. exit() 를 입력하면, python3 명령을 회수한다.
(= 파이썬 언어로 소통하는 것이 끝난다.)
4. 입력 2
1. 에디터에 “파일명.py”라는 파일을 만들고, a=1+1 와 같이 수식을 입력한다.
2. cd /Application/mampstack-7.1.14-0/apache2/htdocs 를 입력하면,
현재 cd를 통해 파일 디렉토리를 지정해주고,
python3 파일명.py를 입력하면, 수식이 자동 계산되어 출력된다.
3. sudo chmod a+x 파일명.py를 입력하고, ls -al를 입력하면,
해당 파일이 실행 가능하도록 변경된 것을 볼 수 있다.
5. 입력 3
1. 터미널에 python3를 입력하면 파이썬3가 실행되어있는 경로가 나타난다.
그 경로를 복사해서 에디터에 “#!경로경로” 형식으로 입력해준다.
2. 이제 ./파일명.py 을 입력하면, 계산된 수식 결과가 바로 나타난다.
3. #!/usr/bin/env 를 입력해도 된다고 하지만,
내 컴퓨터에서는 되지 않아서 그냥 #!경로경로 식으로 입력해놓았다.
2-2. <생활코딩-web2-python-실습환경 준비-CGI설정>
1. 실습 환경 만들 때,
1. localhost:8080로 접속하는데 계속
“사이트에 연결할 수 없음, localhost에서 연결을 거부했습니다.” 문구가 확인되었다.
apache와 관련있는 부분이라고 기억이 나서 컴퓨터에서 apache, bitnami 등
여러가지를 검색해 실행해보고, 구글링도 해봤으나 답이 나오지 않았다.
2. 결국 생활코딩에서 bitnami를 설치했을 때 본 강의를 다시 봤다.
apache를 켜는 bitnami 프로그램을 여는 이름은 “manager-osx”였다!!
파일이름에 apache나 bitnami가 포함되었더라면 좋았을텐데 ㅠㅠ
앞으로는 이런 검색키나, 터미널에서 기본 설정하는 코드 등을 바탕화면에 메모해두려고 한다.
2. CGI 설정 1 시작
1. localhost:8080/helloworld.py 로 이동하니,
내가 해당 파일에 적은 코드 그대로가 화면에 출력되었다.
2. file: apache2/conf/httpd.conf로 이동해서
mod_cgid.so 줄 맨 앞의 #을 삭제했다.
(만일을 대비해서, 우선 해당 파일을 백업해두었다.)
#을 삭제하면, 해당 기능이 활성화된다.
3. 확장자가 .py인 파일이 cgi로써 실행될 수 있도록 코드를 추가해보자.
DocumentRoot의 자식태그 맨 끝에 files 태그와 명령 코드를 입력한다.
<Files *.py> (확장자가 py인 모든 파일에 대해서 다르게 동작하라는 뜻)
Options ExecCGI (확장자가 py인 파일에 대해서는 CGI 기능을 활성화 시키라는 뜻)
AddHandler cgi-script .py (확장자가 py인 파일은 cgi로써 실행시켜라는 뜻)
</Files>
4. apache 웹서버를 Restart 한다.
5. localhost를 reroad 했으나 internal server error가 확인되었다.
3. CGI 설정 2 오류 해결
1. file: apache2/logs/error.log로 이동해서 어떤 오류가 났는지 확인했다.
malformed header 가 확인되었다.
(유효하지 않은 형식의 헤더 값을 스크립트가 보내주고 있다는 뜻)
2. python.org 사이트에서
검사-network-header-response headers-content-type 을 보니,
text/html; charset=utf-8가 확인되었다.
3. helloworld.py 파일에
print("content-type:text/html; charset=utf-8\n”)을 입력했다.
(\n은 꼭 넣어 줘야 하는 줄바꿈 약속이다.)
4. localhost를 reroad 하니, 수식 결과인 4.0이 출력되었다.
<인프런 - 김왼손의 미운코딩새끼>
3. 출력하기: print()
1. print는 값을 출력하는 코드이다. 소괄호는 문법, 약속이다.
2. 꼭 정확한 스펠링과 약속대로 입력해주어야, 컴퓨터도 그 약속대로 출력해준다.
3. >>> print('Hello world!’) >>> print([1,2,3]) >>> print('My name is', 'Right') 등을 입력하여 출력할 수 있다.
1. input은 무엇인가를 입력하는 코드이다. 아래와 같이 입력할 수 있다.
1. >>> input('당신의 나이는? :')
2. 당신의 나이는? :23
3. '23'
2. 객체로 담는 것처럼 아래와 같이 입력할 수도 있다.
age라는 변수에 19라는 값이 저장되어 있는 것이다.
1. >>> age = input('당신의 나이는?')
2. 당신의 나이는? 19
3. >>> age
4. ' 19'
5. 변수와 변수이름
1. 조금 전 age에 19라는 변수를 담았다. 이 숫자는 변할 수 있기에 ‘변수’이다.
2. 예를 들어 my_int = 1 라는 문장이 있을 때,
equal 문자는 ‘같다’는 뜻보다는 ‘할당한다’는 뜻으로 더 통용된다.
“1에 my int라는 이름을 붙여준다.”는 뜻이다.
3. pythontutor.com의 live programming mode를 사용하면,
객체 등 코드를 자세히 분석할 수 있다.
4. Naming: 변수명을 짓기 위한 여러 약속이다.
1. 어떤 글자든 다 조합이 가능하다.
2. 대문자 소문자를 구분한다.
3. 한글, 특수문자도 사용 가능하다. (유니코드를 사용하기 때문)
4. 숫자로 시작할 수 없다. (숫자가 글 중간이나 끝에 들어가는 건 가능하다)
6. 기본재료1 : 숫자형, 문자열, 불린
1. Data type = [‘Numeric’, ’String’, ‘Boolean’]
2. 숫자형 = [정수형(1,3,7), 실수형(1,2, 1.44), ]
1. 변수에 숫자를 담고, type(변수이름) 함수를 입력하면 해당 타입이 확인된다.
2. 파이썬에서는 거의 모든 것이 객체로서 존재한다.
3. 문자열 = 작은, 큰 따옴표로 구분한다.
4. 불린 = True / False 를 구분한다. (꼭 대문자 T와 F로 시작해야 한다.)
7. 기본재료2 : 리스트, 튜플, 딕셔너리
1. List
1. 다양한 재료형을 모아 저장해서 사용하는 것이다.
2. List 이름 = [] 와 같이 대괄호 내에 따옴표를 사용해 문자를 저장할 수 있다.
3. print(random.choice(List 이름)) 을 입력하면,
List 이름의 대괄호 중 하나가 랜덤하게 나타난다.
4. List 이름.append(추가이름) 형식으로 내용을 추가할 수도 있다.
5. List 이름[0] = ‘추가이름’ 형식으로 기존 값을 변경할 수도 있다.
2. Tuple
1. my_tuple = ()와 같이 소괄호 내에 따옴표를 사용해 문자를 저장할 수 있다.
2. List와 비슷하나 내용 변경이나 추가가 가능하지 않다.
3. Dictionary
1. javascript에서 객체와 같이 내용을 정리할 수 있다.
2. my_dict = {‘1’:’2’, ‘3’:’4’, ‘5’:’6’} 형식으로 입력한다.
3. my_dict[‘1’]를 입력하면, ‘2’가 출력된다.
4. 의미있는 이름을 붙여주는 행위로서, 1,3,5처럼 앞에 있는 단어를 key라고 한다.
2,4,6처럼 뒤에 있는 단어를 값이라고 한다.
5. my_dict[‘1’] = ‘7’ 형식으로 값을 변경할 수도 있다.
8. 자료형 변환하기
1. 정수형을 실수형이나 문자열로 바꾸거나,
문자열을 list로 바꾸는 등 자료형 변환 작업이 가능하다.
9. 주석
1. Comment: 컴퓨터가 이 코드를 볼 수 없다.
2. 사람을 위해 설명을 붙여놓을 때 주석을 달아놓는다.
3. # 문자 형식으로 입력하면, # 뒤의 문자는 컴퓨터가 무시한다.