언어
-
[Python] Socket과 TCPServer를 이용한 TCP/IP 프로그래밍 (작성중)언어/파이썬 & 장고 2016. 12. 6. 19:50
파이썬에는 HTTP, FTP, SMTP등 다양한 프로토콜을 구현한 네트워킹 라이브러리들이 있는데 그 라이브러리들이 공통으로 사용하는 라이브러리가 있습니다. 바로 Socket 모듈입니다. socket모듈은 TCP/IP, UDP/IP를 지원하는 버클리 소켓 인터페이스를 여러가지 함수와 socket클래스를 통해 제공합니다. socket 클래스를 이용하면 거의 모든 인터넷 프로토콜을 구현할 수 있다는 장점이 있지만, 익히고 사용하기가 간단하지 않다는 단점도 있습니다. 그래서 여기서는 socket클래스와 함께 TCPServer 클래스 모듈을 이용한 TCP/IP 프로그래밍을 설명합니다. TCPServer 클래스는 이름이 말하는 것처럼 서버 애플리케이션에서 사용하며 클라이언트의 연결 요청을 기다리는 역할을 합니다. ..
-
[Python] 환경변수 값 구하기언어/파이썬 & 장고 2016. 12. 6. 10:10
보통 장고에서 환경에 따라 다른 파일을 실행하기 위해 settings.py을 분리하는데 이때 사용자가 입력한 환경변수의 값을 다음 함수를 사용하여 구할 수 있습니다. # 실행 명령어 $ python3 manage.py run --settings=base.settings.local import os env_var = os.environ.get('DJANGO_SETTINGS_MODULE') print(env_var) # 결과 # base.settings.local
-
[Golang] Command line arguments 사용하기 (인자값 사용하기)언어/Golang 2016. 12. 1. 14:35
go를 실행할 때 사용자임의로 인자값을 추가하여 실행할 수 있습니다. go에서 이러한 인자값을 받아서 처리하고자 할 때, 다음과 같이 실시합니다.package main import ( "os" "strings" ) func main() string{ var argu string for _, v := range os.Args { // 커맨드라인으로 받은 한 줄의 명령어를 스페이스바 단위로 쪼개어 반복문 실행. if strings.Index(v, "-com") == 0 { // -com이라는 값이 있으면 아래와 같이 사용자가 원하는 값 이외의 값을 제거 argu = strings.Replace(v, "-com=", "",-1) break } } fmt.Println(argu) } # 실행 go run tes..
-
[Python] request 모듈 간단 사용법언어/파이썬 & 장고 2016. 12. 1. 14:06
Python에서 HTTP 요청을 보내는 모듈인 requests를 간단하게 정리해보겠습니다.HTTP GET 요청 방법import requests url = 'http://google.com' response = requests.get(url=url) print(response.status_code) print(response.text) # 결과 # 200 # 검색 이미지 지도 Play YouTube 뉴스 Gmail 드라이브 더보기 »웹 기록 | 설정 | 로그인 한국 # 고급검색언어도구 광고 프로그램비즈니스 솔루션+GoogleGoogle 정보Google.com© 2016 - 개인정보처리방침 - 약관www.google.com주소로 GET 요청을 하고 서버에서는 해당 요청을 받아 작업을 처리한 후 요청자인 사용..
-
[Python] 파이썬에서 shell 명령어 사용하기 (shell script 작성법)언어/파이썬 & 장고 2016. 12. 1. 13:22
파이썬에서 쉘 명령어를 내리는 방법은 아래와 같습니다.import os os.system('ls -la') total 48 drwxr-xr-x@ 9 user staff 306 Dec 1 13:16 . drwxr-xr-x 20 user staff 680 Nov 3 14:58 .. drwxr-xr-x@ 8 user staff 272 Dec 1 11:03 .idea -rw-r--r-- 1 user staff 9 Nov 23 17:57 aa.log -rw-r--r-- 1 user staff 1888 Dec 1 13:16 gocom.py 하지만 여기서 출력되는 내용을 변수로 담아서 사용이 불가능합니다. os.system()은 명령이 성공적으로 실행하면 0을 리턴하고 그렇지 않으면 -1과 같은 숫자를 리턴합니다.쉘..
-
[Django] settings.py 데이터 호출언어/파이썬 & 장고 2016. 12. 1. 13:12
from base.settings.py import DATABASES 와 같이 하지 않은 이유는 settings.py이 분리가 될 수도 있고 위치가 바뀔 수도 있기 때문에 아래와 같이 호출하는 것이 좋습니다. from django.conf import settings print(settings.DATABASES['default']['NAME']) print(settings.CACHES) # settings.py에 정의되어 있는 databases의 default name 정보와 caches의 정보가 출력
-
[Python] Tip - 메타클래스로 서브클래스를 검증언어/파이썬 & 장고 2016. 11. 26. 17:48
메타클래스를 응용하는 가장 간단한 사례는 클래스를 올바르게 정의했는지 검증하는 것입니다. 복잡한 클래스 계층을 만들 때 스타일을 강제하거나 메서드를 오버라이드하도록 요구하거나 클래스 속성 사이에 철저한 관계를 두고 싶을 수도 있습니다. 메타클래스는 서브클래스가 정의될 때마다 검증 코드를 실행하는 신뢰할 만한 방법을 제공하므로 이럴 때 사용할 수 있습니다.보통 클래스 검증 코드는 클래스의 객체가 생성될 때 __init__ 메서드에서 실행됩니다. 메타클래스를 검증용으로 사용하면 오류를 더 빨리 일으킬 수 있습니다.서브클래스 검증용으로 메타클래스를 정의하는 방법을 알아보기에 앞서 메타클래스가 표준 객체에는 어떻게 동작하는지 이해해야 합니다. 메타클래스는 type을 상속하여 정의합니다. 메타클래스는 기본으로 자..
-
[Python] Tip - 지연 속성에는 __getattr__, __getattribute__, __setattr__을 사용언어/파이썬 & 장고 2016. 11. 26. 17:22
파이썬의 언어 후크를 이용하면 시스템들을 연계하는 범용 코드를 쉽게 만들 수 있습니다. 예를 들어 데이터베이스의 row를 파이썬 객체로 표현한다고 할 때, 데이터베이스에는 스키마 세트가 있습니다. 그러므로 로우에 대응하는 객체를 사용하는 코드는 데이터베이스 형태도 알아야 합니다. 하지만 파이썬에서는 객체와 데이터베이스를 연결하는 코드에서 로우의 스키마를 몰라도 됩니다. 코드를 범용으로 만들면 됩니다.사용하기에 앞서 정의부터 해야하는 일반 인스턴스 속성, @property 메서드, 디스크립터로는 이렇게 할 수 없습니다. 파이썬은 __getattr__이라는 특별한 메서드로 이런 동작을 가능하게 합니다. 클래스에 __getattr__ 메서드를 정의하면 객체의 인스턴스 딕셔너리에서 속성을 찾을 수 없을 때마다 ..