반응형

Programming 164

[Python] 파이썬 인코딩 문제 SyntaxError: Non-ASCII character

들어가며 파이썬으로 코딩을 할때 많은 에러가 발생하지만 가장 자주 마주하는 에러는 인코딩 문제일 것이다. 파이썬은 기본 인코딩이 ASCII코드이다. 우리가 파이썬 한글이 포함된 스크립트를 실행할때 발생하는 에러와 에러 해결 방법에 대해서 설명하겠다. 에러 내용 SyntaxError: Non-ASCII character '\xeb' in file app.py on line 166, but no encoding declared; see http://python.org/dev/peps/pep-0263/ f or details 해결 방법 .py의 파일 위에 나는 utf8, euc-kr의 인코딩을 기본으로 사용할 것이다. 라고 명시적으로 입력을 해주면 문제가 해결된다. #-*- coding: utf-8 -*- 또..

Programming/Python 2016.03.26

구글 프로토콜 버퍼(Google Protocol Buffer)란? (설치/proto만들기/컴파일링/사용방법)

구글 프로토콜 버퍼 (Google Protocol Buffer) 란? Google에서 개발한 protocol buffer의 특징은 아래와 같습니다.language-neutralplatform-neutralextensible mechanism for serializing structed data 쉽게 말하면 XML, Json등 과 같이 데이터를 저장하는 하나의 포맷이라고 할 수 있습니다. 하지만 가볍고, 빠르고, 그리고 사용하기에 쉽습니다. 사용법은 최초에 우리가 사용하고자 하는 데이터를 구조화하고, 사용하는 언어의 코드로 컴파일링을 하면 자동으로 코드가 생산됩니다. 자동으로 생성된 코드는 파일을 쓰고/읽는데 사용하면 됩니다. 구글 프로토콜 버퍼는 Java, Python, 그리고 C++을 지원하고 있습니다..

Programming/기타 2016.03.23

[Python] Join, Split 리스트를 문자열로, 문자열을 리스트로 변환

들어가며 파이썬에 내장되어 있는 함수 join, split을 이용해 문자열(String)을 리스트(List)로 변환하는 방법입니다. Join 함수는 리스트를 특정 구분자를 포함해 문자열로 변환해 주는 함수입니다. Split함수는 문자열을 특정 구분자를 기준으로 나누어 리스트로 변환해 주는 함수입니다. 리스트(List)를 특정 구분자를 포함해 문자열(String)으로 변환 animals = ['사자', '코끼리', '기린', '원숭이', '바나나원숭이'] print ",".join(animals) # >> 사자,코끼리,기린,원숭이,바나나원숭이 print "\n".join(animals) # >> 사자 # >> 코끼리 # >> 기린 # >> 원숭이 # >> 바나나원숭이 print "/".join(animal..

Programming/Python 2016.03.23

[Python] MySQL 설치 및 쿼리 (접속/SELECT/INSERT/DELETE/UPDATE)

들어가기 Python에서 MySQL을 연동하는 방법입니다. 설치부터 접속, SELECT, INSERT, DELETE, 그리고 UPDATE고에 대해서 정리해 놓은 내용입니다. 설치하기$ pip install MySQL-python 접속하기 import MySQLdb con = MySQLdb.connect('192.168.1.198', 'username', 'password', 'database') cur = con.cursor(MySQLdb.cursors.DictCursor) 여기서 MySQLdb.cursors.DictCursor를 사용하는 이유는 query를 통해 데이터를 얻을때 python의 dict로 얻기 위한 방법입니다. SELECT query = " select * from %s" & (table..

Programming/Python 2016.03.23

[Android] 안드로이드 스튜디오 File size exceeds configured limit 오류가 발생하는 경우

들어가며 프로젝트 IDE로 IntelliJ를 사용하는 개발자들은 많을 것이다. 갑자기 'cannot resolve symbol' 이라는 에러와 함께 import가 되지 않는 현상이 나왔습니다. 'File size exceeds configured limit' 의 에러는 코드 사이즈가 제한을 초과했다는 말을 나타냅니다. 저 같은 경우에는 Google Protobuf에서 자동으로 생성되는 코드의 용량이 너무 커서 생겼습니다. 해결방법 문제를 해결하기 위해서는 android-studio/bin/idea.properties에 idea.max.intellisense.filesize=25000로 수정하면 된다. (default는 2500)

Programming/Android 2016.03.21

[Python] 유니코드, UTF-8를 해결하는 방법 (Unicode, UTF8)

들어가며 지난 포스팅에서 UnicodeEncodeError에 대해서 문제점과 해결방법에 대해서 포스팅을 했다. UnicodeEncodeError:'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 이 에러는 작기도 하지만... 어쩔때는 엄청 큰 문제야 정말..그렇다면, 애초에 unicode를 신경 쓰지 않고, 기본으로 utf-8로 설정 한다면, 매번 unicode를 unicode_str.encode('utf8')을 할 필요가 없다. 자 이제 그만 귀찮은 작업 하지말고, 근본적인 문제를 해결해보자. 문제점 파이썬 내장모듈인 locale을 import한 뒤에 getdefaultlocale()함수를 통해 현재 loca..

Programming/Python 2016.03.20

[Python] UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)

들어가며 파이썬으로 구현을 하다보면 한번씩은 겪는 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 파이썬은 기본적으로 unicode를 사용한다. 그렇기 때문에 한글을 사용하기 위해서는 unicode를 utf-8로 변환해서만 사용할 수 있다. 변경하는 방법은 아주 간단하다. unicode를 utf8로 encoding을 해주면 문제를 해결할 수 있다. 문제점 예를 들어서 웹페이지에서 한글 텍스트를 입력받은 값을 website.text라고 가정하자. 아래 내용은 website.text를 print문으로 출력했을때 UnicodeEncodeError가 발생한다. python 내장함수..

Programming/Python 2016.03.20

[NodeJs] NodeJs 시작하기 (이클립스(Eclipse) 설치 및 개발환경 설정) (2/2)

들어가며 이번에는 NodeJs시작하기 두번째 포스팅, 지난번 포스팅에서는 NodeJs의 특징과 설치 방법에 대해서 설명을 했습니다. 하지만 command에서 구현을 할 것인가... 우리는 프로젝트를 관리하는 툴이 필요하고, 그런 툴을 IDE라고 말한다. Integrated Development Environment 의 약자입니다. 이번 포스팅에서는 node.js를 구현하고, 프로젝트를 관리하기 위해 여러 종류의 IDE가 있지만 그 중에서도 우리가 흔히 익숙한 Eclipse를 설치하고 개발 환경을 설정하는 방법에 대해서 설명하겠습니다. 간단한 프로그램은 vi와 같은 editor로 작성 후 아래와 같이 실행해도 되지만, 프로젝트가 어느정도 규모가 되면 IDE를 통해서 관리하는 편이 좋다.$ node run...

[NodeJs] NodeJs 시작하기 (특징/설치) (1/2)

NodeJs는 JavaScript의 서버 사이드 개발 환경(?)이라고 할 수 있지, 하나의 라이브러리나 프레임워크가 아니다. Event Driven, Event Loop & Callback Pattern을 사용한다. 내가 생각했을때 가장 큰 특징은 Non-blocking(비동기) I/O와 다양한 모듈이라고 할 수 있는데, NPM(Node Package Manager)으로 외부 모듈을 설치하고 관리하는 매니저가 따로 있어서 쉽게 설치하고, 사용이 가능하다. 이렇게 말하면... 무슨 얘기인지 하나도 모르겠지 하지만 이제 하나씩 차근차근 설명을 들으면 충분히 이해가 가능하다. 일단 node.js를 다운받기 위해서는 node.js 공식홈페이지(http://nodejs.org)에 접속해서 사용하는 플랫폼에 맞게 ..

[NodeJs] C++ Addon 하는 방법 (설치/속성/메서드/파라미터,리턴/callback/객체생성반환/함수생성/C++객체생성)

NodeJs에서 없는 Module의 경우 C++의 코드를 NodeJs에서 호출이 가능하다. C++을 NodeJs로 Addon하는 방법이다. 아래에 자세한 내용을 참고해서 기능은 추가할 수 있다. 로직만 추가하면...https://nodejs.org/dist/latest-v4.x/docs/api/addons.htmlhttps://v8docs.nodesource.com/node-4.2/ binding.gyp의 파일명은 항상 일치해야 한다. Pre-InstallationC++ Compiler (Visual Studio설치)Python 설치npm install -g node-gypNode.js native addon build tool $ node-gyp configure $ node-gyp build (.cc..

반응형