2018/01(18)
-
새로운 컴퓨터 패러다임, 양자 컴퓨터
Key Point양자 컴퓨팅이란 무엇인가?양자 컴퓨터는 어디에 쓰는 건가?양자 컴퓨터의 현주소양자 컴퓨터가 미칠 영향 양자 컴퓨팅이란 무엇인가? 양자 컴퓨터는 기존 컴퓨터와는 자료를 처리하는 체계 자체가 다릅니다. 기존의 컴퓨터는 0과 1, 두 개의 값으로 이루어진 '비트'라는 체계로 계산을 수행했습니다. 이와는 달리, 양자 컴퓨팅은 양자 역학적인 현상을 통해 자료를 처리합니다. 자료의 처리양이 기존의 비트가 아닌 큐비트로 측정됩니다. 양자 컴퓨터가 어떻게 자료를 처리하는지 이해하기 위해서는 먼저 큐비트란 무엇인가 이해할 수 있어야 합니다. 큐비트는 양자 컴퓨팅에서 사용하는 양자 정보 단위입니다. 기존의 이진 컴퓨터 체계에서는 0과 1 이진 비트단위로 정보를 처리했습니다. 즉, 디지털 세계에서는 0과 1..
2018.01.15 -
PHP용 AWS S3 Client 사용하기
AWS에서는 Simple Storage Service(이하 S3)라는 유용한 도구를 제공합니다. S3에는 이미지, 파일 뿐만 아니라 데이터베이스 백업, 소스코드 백업 데이터도 저장할 수 있습니다. 대용량 데이터를 저장하는데 유용한 서비스라고 할 수 있습니다. AWS Console로도 관리가 가능하지만 AWS에서는 다양한 언어로 S3의 파일(객체)들을 다룰 수 있는 도구를 제공합니다. 이번에는 AWS S3의 저장소 개념인 Bucket에 객체를 업로드, 가져오기, 삭제하는 기능과 Bucket의 객체 목록을 받아오는 Class를 직접 구현해 봅니다. 또한, S3에서 이미지 객체를 가져오는 경우 어떻게 브라우저 상에서 보여줄 수 있는지 그리고 어떤 점을 주의해야 하는 지도 함께 살펴봅니다. Composer 설치..
2018.01.12 -
PHP로 AWS S3에 파일 업로드 / 삭제
Composer 설치 Composer는 PHP에서 사용하는 의존성 관리 도구입니다. 프로젝트에서 필요한 라이브러리들을 선언해두면 이 Composer라는 녀석이 필요한 패키지들을 프로젝트 안에 모두 설치해주죠. AWS SDK를 사용하기 위해 일단 이 Composer라는 녀석부터 설치해보도록 하겠습니다. curl -sS https://getcomposer.org/installer | php curl을 사용해 Composer를 설치해줍니다. AWS SDK 설치 이제 프로젝트의 최상위 폴더에 composer.json이라는 파일을 만들어 줍니다. vi composer.json 이 파일에 AWS SDK를 설치하라는 선언을 해줄겁니다. { "require": { "aws/aws-sdk-php": "^3.34" } }..
2018.01.11 -
PHP와 Javascript에서 JSON 데이터 처리하기
웹이든 어플이든 요즘 서비스에서 서버를 사용하지 않는 경우를 찾기 힘들죠. 서버가 있다는 것은 서버에게 요청과 응답을 받는다는 얘기가 됩니다. 즉, 어떤 형식으로든 정보가 왔다갔다 해야한다는 얘기죠. 공통된 데이터 형식 어쨋건 클라이언트와 서버가 데이터를 주고 받아야 하는 상황입니다. 이런 경우를 한번 생각해보죠. 안드로이드 어플에서 Java Spring으로 만든 서버와 데이터를 주고 받는다고 가정해 보죠. 안드로이드가 Java 기반의 플랫폼이기 때문에 데이터를 주고 받는데 크게 어려움이 없을 겁니다. 하지만 갑자기 새로운 서버와 데이터를 주고 받는다면 어떨까요? PHP기반의 웹서버와 데이터를 주고 받아야 한다면 이야기가 달라지죠. 안드로이드 쪽에서 데이터를 받아서 처리하는 부분을 새로 만들어야 할 수도..
2018.01.10 -
안드로이드 TCP 통신 구현
Server TCP 예제 void callStatusListen() { new Thread(new Runnable() { @Override public void run() { try { ServerSocket call_listen_server = new ServerSocket(PORT); Log.d(TAG, "call status listen... : " + call_listen_server.getInetAddress()); client = call_listen_server.accept(); //클라이언트 소켓이 연결될 때까지 기다린다 while(isCallAlive) { Log.d(TAG, "Client Socket Accepted!"); BufferedReader in = new BufferedRea..
2018.01.09 -
커널을 파헤치다
커널(Kernel)은 무엇인가? 커널은 운영체제의 핵심적인 부분을 의미합니다. 우리가 가장 많이 사용하는 윈도우 10같은 운영체제에는 무수히 많은 프로그램들이 설치되어 있습니다. 이를 응용 프로그램이라고 지칭합니다. 사실 컴퓨터는 몇 가지 전자기판이 합쳐진 기계에 불과합니다. 이 전자기판위에서 우리가 일상적으로 사용하는 응용 프로그램들이 실행되기 위해서는 생각보다 많은 작업이 이루어져야 합니다. 프로그램은 명령어의 집합이라고 생각할 수 있습니다. “이 상황에서는 이렇게, 저 상황에서는 저렇게 동작하라”라는 명령어를 모아놓은 것이 프로그램인 것입니다. 따라서, 컴퓨터의 핵심 기능은 이 명령어들을 실행하는데 있다고 해도 과언이 아닙니다. 그럼 명령어는 누가 실행하나요? 바로 CPU입니다. CPU는 산더미처럼..
2018.01.08