본문 바로가기

개발

[Node.js] express 사용하기 1. 서론 node.js를 서버로 사용하는 경우 가장 표준으로 인식되는 express.js에 대해 알아보도록 하자. 사실 크게 어려운 부분은 없으며, Restful API를 개발하기에 매우 간편하다. 2. 환경 설정 기본 전제 사항 당연히 node.js는 설치돼있다고 가정한다. 혹시 설치하지 않은 분은 여기를 클릭해서 설치하세요. 우선 폴더를 하나 만들어 node.js 개발 환경을 구축하도록 하자. # 폴더 생성 및 열기 mkdir express_practice cd express_practice # package.json 초기화 npm init -y # http, express 모듈 설치 npm install http express 3. Hello world! 출력하기 가장 간단한 Hello world.. 더보기
[Python] TCP image socket 구현하기(Server, Client) 1. 서론 작년에 진행한 교차로 보행자 안전 알리미 프로젝트 Raspberry pi4와 인공지능 서버 사이의 TCP image socket을 구현했다. 실시간 영상 및 비디오 영상을 OpenCV를 사용하여 프레임 단위로 송수신하는 socket을 구현했다. 만약 Raspberry pi를 이용한다면 OpenCV 설치법이 좀 복잡해서 이 포스팅을 참고하길 바란다. 2. TCP image socket Server TCP socket으로 이미지를 송수신할 때 가장 중요한 것은 클라이언트에서 서버로 해당 이미지 데이터의 크기를 같이 보내는 것이다. TCP socket을 사용해서 한 번에 보낼 수 있는 데이터의 크기는 제한되어 있으므로 이미지 데이터를 string으로 변환해서 보낼 때 이 크기가 얼마나 큰 지가 중요.. 더보기
[Python] 간단한 Anaconda 가상 환경 관리하기 기본 전제 사항 당연히 Python과 Anaconda는 깔려있다고 가정한다. 혹시나 둘 중 하나가 깔려있지 않다면, 아래에 첨부한 각각의 링크에 접속해서 다운로드하기 바란다. www.python.org/downloads/ docs.anaconda.com/anaconda/install/ 1. Anaconda 가상 환경 생성, 제거, 활성화 # anaconda 버전 확인 conda --version # anaconda 업데이트 conda update conda # anaconda 가상 환경 생성 # ex) conda create -n 가상_환경_이름 설치할 패키지 conda create -n example_env python=3.7 # anaconda 가상 환경 목록 확인 conda info --envs #.. 더보기
[Raspberry pi] OpenCV 4 설치하기 1. 서론 작년에 교차로 보행자 안전 알리미 프로젝트를 개발하면서 일반 교차로 CCTV와 비슷한 사양의 영상 데이터를 실시간으로 얻기 위해 라즈베리 파이를 사용한 적이 있다. 카메라 모듈을 통해 촬영한 데이터를 서버 쪽에 TCP 소켓을 통해 전달했는 데 이때 이미지 가공을 위해 사용했던 툴이 OpenCV이다. 다른 많은 블로그들에서 OpenCV 설치를 따라 해 봤지만 매번 Makefile 도중 build과정에서 오류가 나서 다시 포맷을 돌리고 설치하기를 반복한 결과 유일하게 성공한 설치 방법이 있어 포스팅을 한다. 2. 설치 방법 사전 필요 작업 당연히 라즈 베리 파이에 라즈비안 os가 설치된 상태라고 가정하고 시작하겠다. 설치 시에는 이 순서에 반드시 따라주기 바란다. 글쓴이도 띄엄띄엄 따라 하다가 제.. 더보기
3. 오픈소스 라이선스 고지 방법 오픈소스 라이선스에 관하여 1. 오픈소스 라이선스란 무엇인가? 2. 오픈소스 라이선스 종류 3. 오픈소스 라이선스 고지 방법 1. 서론 지난 포스팅까지 오픈소스 라이선스의 개념과 종류별 특징에 대해서 알아봤다. 이번에는 실제 모바일 애플리케이션에서의 고지 방법에 대해 알아보도록 하자. 2. 고지 방법 예시 카카오톡 카카오톡을 먼저 살펴보면 공통적으로 모든 오픈소스 라이선스를 표기하는 특징이 있다. 오픈소스명 공식 홈페이지 주소 저작권 라이선스 종류 이렇게 어떤 오픈소스들을 사용했는지 표기를 한다. 하지만 이상한 점이 있다. 오픈소스는 항상 라이선스의 공식 문서 내용도 함께 기록되어 있어야 한다. 카카오톡의 경우 아래와 같이 사용한 라이선스의 문서를 따로 명시를 해두었다. Chrome 다음으로 구글의 크롬.. 더보기
2. 오픈소스 라이선스 종류 오픈소스 라이선스에 관하여 1. 오픈소스 라이선스란 무엇인가? 2. 오픈소스 라이선스 종류 3. 오픈소스 라이선스 고지 방법 1. 서론 지난 시간에는 오픈소스 라이선스란 무엇인가에 대해 알아봤다. 이번에도 OLIS(오픈소스 SW 라이선스 종합정보시스템)에서 정보를 얻었다. 따라서, 더 자세한 사항을 보고 싶다면 해당 사이트를 방문하기를 바란다. 이번 포스팅은 주요 오픈소스 라이선스의 종류 및 특징, 의무 등에 대한 포스팅이다. 2. 주요 오픈소스 라이선스 특징 비교 라이선스의 특징 및 의무사항 BSD Apache 2.0 GPL 2.0 GPL 3.0 LGPL 2.1 MPL CDDL CPL/EPL 복제·배포·수정의 권한 부여 O O O O O O O O 배포시 라이선스 사본 첨부 O O O O O O O 저.. 더보기
1. 오픈소스 라이선스란 무엇인가? 오픈소스 라이선스에 관하여 1. 오픈소스 라이선스란 무엇인가? 2. 오픈소스 라이선스 종류 3. 오픈소스 라이선스 고지 방법 1. 서론 현재를 살아가는 개발자들에게 없어서는 안 될 것이 바로 오픈소스 SW이다. 많은 개발자들이 오픈소스 SW의 개발자이면서 동시에 사용자이다. 글쓴이도 최근 애플리케이션 개발을 거의 마치고 배포를 앞두고 있는 시점인 데 처음으로 애플리케이션을 직접 배포하다 보니 오픈소스 라이선스를 등록하는 방법이나, 라이선스마다의 특징 및 의무 사항이 제각각이어서 많은 어려움을 느껴 이 포스팅을 쓴다. 아래의 정보들은 모두 OLIS(오픈소스 SW 라이선스 종합정보시스템)에서 수정을 거치지 않고 그대로 가져온 내용이므로 출처를 남긴다. 2. 오픈소스 SW란? 오픈소스 라이선스를 알기 전 먼저.. 더보기
[JavaScript] Callback 지옥 벗어나기 1. 서론 JavaScript는 매우 유연하고 편리한 비동기식 언어이다. 글쓴이도 JavaScript 생태계를 매우 좋아하며 ReactJS, Node.js 등을 자주 사용하고 있다. (최근에는 Go로 갈아타려고 공부중이만.. 크흠) 정말 편리하고 좋은 언어인 JavaScript에서 가장 불편한 점이 있다면 바로 Callback 지옥일 것이다. 비동기 언어를 동기식으로 처리하려다 보니 Callback 안에 Callback 안에 Callback 안에 Callback이... 이러한 Callback 지옥은 코드 가독성을 떨어뜨려 협업에서 치명적인 것은 물론이거니와... 자신이 짠 코드마저 2주 뒤에 다시 보면 암호 해석을 해야하는 상황이 발생하게 된다. 이러한 문제점에 대한 해결책으로 나온 것이 Promise이.. 더보기