본문 바로가기

분류 전체보기

[Raspberry pi] 부팅 시 프로그램 자동 실행하기 1. 서론 작년에 교차로 보행자 안전 알리미 프로젝트를 개발하면서 일반 교차로 CCTV와 비슷한 사양의 영상 데이터를 실시간으로 얻기 위해 라즈베리 파이를 사용한 적이 있다. 카메라 모듈을 통해 촬영한 데이터를 서버 쪽에 TCP 소켓을 통해 전달했는 데 라즈베리 파이의 전원이 켜짐과 동시에 서버와 TCP 소켓을 연결하고 이미지를 송신하는 부팅 시 자동 실행 기능이 필요했다. 2. 방법 방법은 생각보다 정말 간단하다. rc.local 파일을 수정하는 것이다. sudo vi /etc/rc.local 위의 rc.local파일을 켜면 아래와 같이 기존의 설정들이 기록되어 있다. 여기서 코드의 맨 아랫줄로 가서 exit 0 바로 윗줄에 자신이 실행시키고자 하는 프로그램의 실행 명령어를 작성하면 된다. 여기서 중요.. 더보기
[Node.js] express router 사용하기 1. 서론 node.js의 Restful API들을 모두 한 js 파일에 작성하게 되면 코드를 알아보기가 점점 힘들어진다. 그렇기 때문에 토픽에 맞는 router를 생성해서 path를 지정하면 각 js별로 토픽이 정해져 있어 유지 보수가 더 간단해지고 팀원들 간의 코드 리뷰에도 큰 도움이 된다. 시작하기에 앞서 지난 시간에 포스팅한 코드를 사용할 것이므로 만약 이 포스팅에 먼저 들어왔다면 여기로 가서 지난 포스팅을 간략하게 읽고 오길 바란다. 2. 폴더 구조 우리는 아래의 구조로 간단한 라우터들을 구현할 것이다. 먼저 index.js에서 요청을 받아서 각각의 path에 따라 account.js(전 시간의 rest.js)와 helloworld.js에 요청을 넘겨서 처리할 것이다. 📦express_pract.. 더보기
[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 저.. 더보기