전체 글

    [IoT] 스마트 CCTV(1) - 모션 감지

    개요 공부 목적으로 프로젝트를 하나 고민하다가 라즈베리 파이를 이용해 스마트 CCTV를 만들고자 한다. 프로젝트 github :github.com/sive2045/smart_CCTV sive2045/smart_CCTV Contribute to sive2045/smart_CCTV development by creating an account on GitHub. github.com 주요 기능 1. 침입 감지 2. 피플카운트 3. 체류시간분석 4. 조견 별 영상 검색기 제공 5. 카메라 훼손 탐지 6. 스마트 영상 요약 Stack 이미지 프로세싱 : python환경의 openCV 백엔드 : flask (공부가 주된 목적이기에 선택) 카메라 스트리밍 : github.com/jacksonliam/mjpg-stre..

    [NestJS] 개요 및 REST API 예제 [1]

    개요 NestJS는 Node.js의 Express/Fastify 기반으로 만들어졌다. 기본적으로 typescript를 지원한다. 다른 Node.js의 프레임워크에는 없는 구조를 가지고 있다. 따라서 기업 단위의 백엔드를 쉽게 만들 수 있다. (사전 셋팅된 유용한 기능들이 많다. 대부분 자동으로 만들어 준다!!) 생성 nest new //nest 설치 후 위 명령어를 입력하면 폴더 이름을 받고, 구조를 만들어 폴더가 생성된다. 생성 후 nest 명령어를 통해 필요한 것을 생성하고 import 해준다. 구조 main.ts 여러 모듈을 하나의 모듈로 main.ts에서 생성하고 포트를 연다. 이때 pipe 설정과 같은 것을 이용해 데이터의 타당성을 검사할 수 있다. 이를 통해 서버를 보호할 수 있다. impor..

    [프로그래머스 C++] 배달

    제목 : 배달 문제 설명 N개의 마을로 이루어진 나라가 있습니다. 이 나라의 각 마을에는 1부터 N까지의 번호가 각각 하나씩 부여되어 있습니다. 각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데, 서로 다른 마을 간에 이동할 때는 이 도로를 지나야 합니다. 도로를 지날 때 걸리는 시간은 도로별로 다릅니다. 현재 1번 마을에 있는 음식점에서 각 마을로 음식 배달을 하려고 합니다. 각 마을로부터 음식 주문을 받으려고 하는데, N개의 마을 중에서 K 시간 이하로 배달이 가능한 마을에서만 주문을 받으려고 합니다. 다음은 N = 5, K = 3인 경우의 예시입니다. 위 그림에서 1번 마을에 있는 음식점은 [1, 2, 4, 5] 번 마을까지는 3 이하의 시간에 배달할 수 있습니다. 그러나 3번 마을까지는..

    [TypeScript] 개요 및 블록체인 예시

    소개 TypeScript는 MS사에서 만든 open-source 언어이다. 기반은 JS이다. 즉, javascript의 superset이다. 개인적인 견해로는 JS의 상위 호환 언어이다. 마치 C/C++ 관계처럼.. JS와 차이점 가장 크게 차이나는 점은 변수 type의 명시이다. JS의 특징 중 하나가 뭐든 일단 받는다. 그러다 보니 작업하다 보면 이게 맞는지 헷갈린다. 하지만, typescript는 명시를 하기 때문에 코드를 작성하면서 예측이 가능하다. -> 인수나 변수 타입이 안 맞는 경우 ts자체적으로 컴파일 불가하다. 이외 세세한 것들은 공식 문서를 참고해보자. www.typescriptlang.org/docs/ The starting point for learning TypeScript Fin..

    [프로그래머스 C++] 방문 길이

    문제 : 방문 길이 게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다. U: 위쪽으로 한 칸 가기 D: 아래쪽으로 한 칸 가기 R: 오른쪽으로 한 칸 가기 L: 왼쪽으로 한 칸 가기 캐릭터는 좌표평면의 (0, 0) 위치에서 시작합니다. 좌표평면의 경계는 왼쪽 위(-5, 5), 왼쪽 아래(-5, -5), 오른쪽 위(5, 5), 오른쪽 아래(5, -5)로 이루어져 있습니다. 예를 들어, "ULURRDLLU"로 명령했다면 1번 명령어부터 7번 명령어까지 다음과 같이 움직입니다. 8번 명령어부터 9번 명령어까지 다음과 같이 움직입니다. 이때, 우리는 게임 캐릭터가 지나간 길 중 캐릭터가 처음 걸어본 길의 길이를 구하려고 합니다. 예를 들어 위의 예시에서 게임 캐릭터가 움직인 길이는 ..

    [프로그래머스 C++] 게임 맵 최단거리

    문제 : 게임 맵 최단거리 문제 설명 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다. 위 그림에서 검은색 부분은 벽으로 막혀있어 갈 수 없는 길이며, 흰색 부분은 갈 수 있는 길입니다. 캐릭터가 움직일 때는 동, 서, 남, 북 방향으로 한 칸씩 이동하며, 게임 맵을 벗어난 길은 갈 수 없습니다. 아래 예시는 캐릭터가 상대 팀 진영으로 가는 두 가지 방법을 나타내고 있습..

    [프로그래머스 C++] 2018 카카오 3차 n진수 게임

    문제 : [3차] n진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, … 열 번째 사람은 9를 말한다. 10 이상의 숫자부터는 한 자리씩 끊어서 말한다. 즉 열한 번째 사람은 10의 첫 자리인 1, 열두 번째 사람은 둘째 자리인 0을 말한다. 이렇게 게임을 진행할 경우, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, … 순으로 숫자를 말하면 된다. 한편 코딩 동아리 일원들은 컴퓨터를 다루는 사람답게 이진수로 이 게임을 진행하기도 하는데,..

    [프로그래머스 C++] 2018 카카오 3차 파일명 정렬

    문제 : [3차] 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 ["img12.png", "img10.png", "img2.png", "img1.png"]일 경우, 일반적인 정렬은 ["img1.png", "img10.png", "img12.png", "img2.png"] 순이 되지만..