논-블로킹(non-blocking) I/O, 비동기(Asynchronous) I/O 차이 이해하기
블로킹(Blocking) I/O 및 동기(Synchronous) I/O 블로킹 I/O(혹은 동기 I/O)는 I/O 작업 시 대상 파일의 디스크립터(Descriptor)가 준비되어 있지 않은 프로세스는 시스템 호출 응답 대기상태(차단 상태)가 된다. 즉, 그 동안 프로그램 처리를 진행할 수 없다. 아래는...
블로킹(Blocking) I/O 및 동기(Synchronous) I/O 블로킹 I/O(혹은 동기 I/O)는 I/O 작업 시 대상 파일의 디스크립터(Descriptor)가 준비되어 있지 않은 프로세스는 시스템 호출 응답 대기상태(차단 상태)가 된다. 즉, 그 동안 프로그램 처리를 진행할 수 없다. 아래는...
Google Calendar 의 일정 정보(생성, 삭제, 시작)를 다른 메신저나 서비스로 전달하는 방법은 매우 다양하지만, 결과를 보여주고자 하는 환경에서 별도의 인터페이스를 제공하지 않는 경우 중간에 릴레이 역할을 하는 매개체(서버)가 반드시 필요하다. 그런 의미에서 자체적으로 연결을...
Windows 도 그랬든 macOS 역시 개발 환경에 맞도록 일부 기능을 제한 할 필요가 있다. (나에게) 최적화된 macOS 환경을 만들어보자. 가장 먼저 ‘시스템 환경설정’으로 들어가자. macOS 설정은 시스템 환경 설정에서 모두 제어할 수 있다. Dock...
효율적인 개발을 위해 나에게 맞는 도구들을 갖추고 꾸며 “개발 환경”을 만들어야 한다. XCode 와 같이 차선책이 존재하지 않는 경우가 있는 반면, Visual Studio Code 또는 ATOM 같이 선택이 가능한 경우도 있다. BSD 계열의 macOS...
작년에 진행된 글로벌 프로젝트에서, 설계가 잘못되어 대안을 제시해야 했다. 우선, 작업 환경은 다음과 같다. 주 언어는 PHP 다. 개발자들은 Amazon Web Service 의 활용/사용 방법을 잘 모른다. (때문에 API Gateway, Lambda 를 쓸 수...
대부분 이미 만들어진 API 받아 처리하는 방법을 만들었지, 실제 데이터를 보내는 API 를 개발하는 경우는 그리 많지 않을것이다. PHP 를 사용해 POST 로 JSON 데이터를 받았을 때 처리 예제다. 여기서 중요한 부분은 php://input 이다....
모든 환경은 분명 일장일단이 있으며, 어떠한 환경이 진리라는 건 존재하지 않는다. 산출물을 내기 위해 본인에게 가장 이상적인 환경을 선택하면 되기 때문에 강요할 필요가 없다. Windows 에서 능숙한 사람에게 MacBook 을 맡겨보자. OS 및 IDE,...