반응형

Programming 164

[HTTP] URL구성과 의미

들어가며 우리가 인터넷을 사용할때 주소를 보면 다 의미가 있다. 의미를 보고 생각하면 이 페이지를 코딩한 사람이 어떤식으로 값을 받고, 데이터는 어떻게 관리하는지 조금은 짐작이 가능하다. 아무 생각없이 주소를 보기보다는 의미를 생각하며 보면 더 좋을 것 같다. 또한 우리가 '도메인 네임을 신청한다.'라고할때 도메인네임이 URL의 구성에서 어디인지는 정확히 알아야 하지 않는가? 웹프로그래밍을 하다보면 아래 개념이 정확히 잡혀있지 않으면 404를 많이 보겠지요. URL의 구성 http://www.example.com/folder/file.html#idhttp:// www example.com /folder /file.html #id URL Schema 서버 도메인 네임 폴더이름 파일 이름 Fragment 아..

Programming/기타 2016.04.08

[NodeJS] TCP 서버프로그래밍 - net 모듈 이용하기

들어가며 서버와 클라이언트 프로그래밍은 다양한 방법으로 할 수 있습니다. 그 net모듈을 사용하여 통신하는 서버 프로그래밍입니다. TCP/IP는 우리가 스타크래프트에서 네트워크 통신을 하며 게임을 해보았다면 익숙한 단어입니다. 아래 예제는 tcpserver.js와 tcpclient.js를 생성해 두개가 서로 데이터를 보내는 예제입니다. 최초 서버가 접속이 가능하도록 대기를 하고 있고, 클라이언트는 서버로 접속을 합니다. 접속된 connection을 통해 서로 데이터를 주고 받을 수 있습니다. 소스코드 소스코드는 tcpserver.js와 tcpclient.js로 구성되어 있습니다. tcpserver.js 서버를 생성하기 위해서 net의 모듈을 상용합니다. net.createServer를 통해 서버 객체를 ..

[NodeJs] 파일입출력을 이용해 파일복사, 에디터 구현

들어가며 node.js의 fs모듈을 이용해서 파일을 복사하는 방법과 키보드로 입력을 받아서 파일로 작성하는 코드에 대해서 설명해볼까 합니다. shell에서 input path와, output path를 파라미터로 전달해서 복사하는 cp와 동일한 역할을 합니다. Editor 같은 경우에는 우리가 텍스트창에 입력을하고, 입력 후에 텍스트를 파일로 저장하는 방식이라고 생각하시면 됩니다. 파일 복사하기 일단 파일에 관련된 작업을 할때는 fs모듈을 사용한다고 생각하시면 됩니다. 최초 readStream을 생성하여 파일을 읽는 Stream을 만들고, writeStream을 생성하여 쓰여질 파일을 만들어 주면 됩니다. input의 내용을 pipe를 통해 output으로 써주면 끝납니다. 여기서 Stream은 데이터가..

[Python] 파이썬 MySQL사용시 UnicodeEncodeError 해결 방법

들어가며 Python과MySQL을 사용해본 사람 중에 Encoding문제를 한번도 겪지 않았다면, 이 글을 읽을 필요가 없습니다. 하지만 이 두개는 쌍으로 encoding문제로 괴롭히는 주범이라고 할 수 있지요. 각각의 설정에 대해서 설명하겠습니다. MySQL MySQL에서는 테이블 생성시에 설정을 해주면 됩니다. 테이블의 기본 character 를 utf8로 설정하시면 됩니다. 또는 각 string값이 들어가는 varchar와 같은 변수옆에 character set 'utf8'을 하나씩 해주셔도 됩니다. create table `test`.`test` ( `text` varchar(50) character set 'utf8' ) default character set =utf8 Python MySQLd..

Programming/Python 2016.03.31

[NodeJs] 파일 입출력 I/O Stream

들어가며 파일 입출력에 대해서 설명을 해드리겠습니다. NodeJs에서는 File I/O의 주요 함수는 동기식, 비동기식 그리고 Stream을 이용한 방식이 있습니다. NodeJs는 비동기 방식이기 때문에 순차적으로 함수를 수행하지 않습니다. 그렇기 때문에 만약에 큰 파일을 읽고 있는 상태에서, 만약 그 파일을 쓰는 코드를 작성할 경우에는 에러가 발생 할 수도 있으니 주의하셔야 합니다. 이런 경우에는 동기식으로 파일 읽기/쓰기를 하시면 문제없이 사용할 수 있습니다. 파일입력 주요 함수readFile('filename', 'encoding', callback(error, data));readFileSync('fileㄱname', 'encoding') : datawriteFile('filename', data..

[NodeJs] NodeJs 이벤트 사용하기 - Event Emitter

들어가며 NodeJs는 일반적인 'procedural programming'의 개념과는 다른 'event driven programming' 개념을 가지고 있습니다. 'event driven programming'은 특정 이벤트가 발생할때, 미리 선언된 함수가 호출 되는 형태를 말합니다. 일반적으로 순차적으로 실행하는 프로그램이과는 다르기 때문에 언제 어디가 호출 될지 모릅니다. 이러한 이벤트 방식은 안드로이드에서 버튼 클릭 이벤트와 같이 callback 함수를 바인딩 시켜놓은 형태와 라고 할 수 있습니다. 이번 포스팅에서는 이러한 event를 연결, 제거, 생성, 발생 등 어떻게 해야하는지에 대해서 설명하겠습니다. 연결 on('eventname', eventHandler)연결 개수 제한은 10개setM..

[NodeJs] NodeJs 입력받기 - readline 모듈사용

들어가며 모든 언어에서 기본적으로 배우는 내용이 입력/출력 입니다. 이번 포스팅은 키보드로 부터 입력을 받는 예제입니다. 처음에는 1번 입력받는 예제를 설명하고, 반복적으로 입력을 받는 예제에 대해서 설명해 볼까 합니다. 구현하기 1번 입력 받는 예제 입력을 받기 위해서는 readline의 모듈을 사용하시면 됩니다. 최초에는 createInterface를 통해 input과 output을 생성을 해주고, quest메소드에 callback 함수를 생성합니다. 최초 질문을 "Do you like banana?"라고 했을때 키보드로 부터 입력이 받아지면 answer에 담겨져 옵니다. 여기서 callback함수는 간단하게 이벤트가 왔을때 실행되는 함수라고 생각하시면 됩니다. 키보드로 부터 입력이 왔으니 해당 fu..

[NodeJs] 내장 모듈 사용하기 (os, url, querystring, util)

들어가며 NodeJS에서 기본으로 제공하는 API에 대해서 알아보도록 하겠습니다. 일단 말그대로 내장 모듈이기 때문에 추가적인 설치가 필요하지 않습니다. NodeJs의 장점중 하나인 제공되는 모듈이 많다는 점을 적극 활용하시면 더 빠르게 결과를 얻을 수 있을것 같습니다. [API 문서바로가기] 내장모듈 사용하기 내장모듈에서 자주 사용하는 모듈에 대해서 설명을 해드리겠습니다. os 모듈 : OS 관련 정볼르 보여주고, 전역객체인 Process 객체와 비슷하지만, 좀 더 많은 정보를 제공하는 모듈 var os = require("os"); console.log(os.hostname()); // 호스트 이름 console.log(os.type()); // os 이름 console.log(os.platform(..

[Android] 안드로이드 HTTP요청 사용법 (GET/POST/PUT/DELETE)

들어가며 HTTP는 Server와 통신하는데 가장 modern한 방식 중 하나이다. 서버에 GET, POST, PUT, DELETE 요청을 통해 데이터를 주고 받는 방법에 대해서 설명한다. 오픈 소스인 OkHttp를 설치하고, HTTP요청 방법에 대해서 설명하겠습니다. 설치하기 설치하는 방법은 총 3가지이다. jar파일 다운 또는 Maven, Gradle 추가이다. v3.2.0 Jar [다운로드] Gradle compile 'com.squareup.okhttp3:okhttp:3.2.0' Maven com.squareup.okhttp3 okhttp 3.2.0 GET package okhttp3.guide; import java.io.IOException; import okhttp3.OkHttpClient;..

Programming/Android 2016.03.27

[Android] 안드로이드 SharedPreference 사용하기

들어가며 안드로이드에서 코딩을 하다보면 앱이 종료되도 값을 저장해 유지해야 할때가 많습니다. 만약 앞으로 설명해야 할 SharedPreference가 없다면, 파일입출력을 통해서 데이터를 저장을 해야하는 번거로움이 있습니다. 파일 입출력 없이 간단한 데이터를 Key, Value로 저장할 수 있다면 쓰기/읽기가 수월할 것입니다. 사용 예로는 안드로이드에서 Setting값을 항상 내가 설정한 값으로 유지해야하는 경우가 있는데, 이때 SharedPreference를 사용하면 문제를 쉽게 해결 할 수 있습니다. 하지만 앱을 제거 후 새로 설치되면 SharedPreference의 값은 초기화가 됩니다. 사용방법 SharedPreferences는 안드로이드에서 제공하고 있습니다. Context를 통해서 값을 가져올..

Programming/Android 2016.03.26
반응형