TIL 19 (2020.07.23)

백은진·2020년 8월 6일
0

TIL (Today I Learned)

목록 보기
19/106
post-thumbnail
post-custom-banner
  • 오늘 할 일
  1. 미운코딩새끼 강의 9개, 파이썬 설치
  2. linux, git, django에 대해 알아보기
  3. 사람들에게 바로 노출가능한 블로그 만들어서, 그동안의 코딩 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') 등을 입력하여 출력할 수 있다. 

4. 입력하기: input()

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. # 문자 형식으로 입력하면, # 뒤의 문자는 컴퓨터가 무시한다.
profile
💡 Software Engineer - F.E
post-custom-banner

0개의 댓글