분류 전체보기 234

[이슈] MediaRecorder(Web API)로 촬영한 webm 영상이 정상 재생되지 않음

1. 개요 node.js환경의 vue-electron으로 윈도우즈 프로그램을 개발하는 프로젝트 중의 일이다. 빌드 된 프로그램의 Chromium기반 웹페이지에서 Web API 내장 라이브러리인 MediaRecorder로 영상을 촬영한 후, 클라우드에 업로드 한 뒤 링크를 따서 외부 프로그램에서 영삿 재생이 바로 가능하도록 구현해야 했다. 하지만 웹에서 스트림 형식으로 촬영하고 처리한 후 생성한 영상에 여럿 까다로운 문제가 발생할 줄 몰랐으니.. 이를 파악하고 처리했던 히스토리를 공유하고자 포스팅으로 작성해본다. 2. 영상 처리 로직 처음에 MediaRecorder 인스턴스를 아래와 같이 초기화 한 후, // prompts the user for permission to use a media input w..

Ubuntu 18.04 관리자 권한으로 폴더 프로그램 사용

간혹 root폴더에 진입하는 등 root권한으로 파일 프로그램을 사용해야 할 때가 있다. 터미널을 열고, 아래 명령어로 nautilus-admin 패키지를 설치한다. (nautilus는 우분투의 파일 관리자 프로그램으로, 이 프로그램의 관리자 권한 실행 패키지이다.) $sudo apt install nautilus-admin -y 설치가 끝났다면, 아래 명령어로 nautilus를 재시작 해주면 적용 된다. (기존에 탐색하던 창들이 닫히니 주의하자) $nautilus -q 이제 폴더를 우클릭 해보면 "Open as Administrator" 메뉴가 보이고, 클릭 시 root 권한으로 폴더를 열어 작업할 수 있다. 루트 권한의 폴더인 /root 디렉토리로 진입한 모습이다.

ETC 2022.09.29

[NPM] NPM이란? 자주 사용되는 커맨드

1. NPM이란? NPM은 Node Packaged Manager의 약자이다. 이름처럼 NPM은 Node.js로 만들어진 모듈을 웹에서 받아서 설치하고 관리해주는 프로그램이다. 개발자는 CLI로 손쉽게 기존에 공개된 모듈들을 설치하고 활용할 수 있다. 프로그램보다 조금 작은 단위인 이 모듈들을 필요에 따라 적절하게 활용할 수 있도록 도와준다. (Java랑 비교를 하자면 메이븐과 비슷한 역할을 한다.) 2. NPM 설치 위에서 설명했던 것 처럼, NPM은 Node.js의 패키지 관리자이다. 따라서 NPM을 사용하기 위해서는 Node.js를 설치해야 한다. (공식 사이트에 들어가서 다운로드 할 수 있다.) 정상적으로 설치 하였다면, 다음 명령어로 설치된 NPM의 버전을 확인할 수 있다. 3. 자주 사용되는 ..

[Node.js] fs 모듈로 파일 입출력 처리

1. 개요 fs 모듈은 FileSystem의 약자로 파일 처리와 관련된 모듈이다. 메소드가 굉장히 많은데 가장 중요하고 기초적인 내용 위주로 살펴보자. 2. fs 모듈 불러오기 fs 모듈은 Node.js에 내장되어 있기 때문에 별도의 라이브러리 설치 없이 바로 불러와서 사용할 수 있다. CommonJS모듈 시스템을 사용하는 프로젝트에서는 require 키워드로 불러오고, ES모듈 시스템을 사용하는 프로젝트에서는 import 키워드를 사용 할 수 있다. // CommonJS Modules const fs = require("fs"); // ES Modules import fs from "fs"; 3. fs 모듈의 비동기 함수 vs 동기 함수 fs 모듈은 비동기(asynchronous) API와 동기(syn..

[Vue/Electron ISSUE] 외부 모듈 Cannot find module 문제

1. 개요 외부 모듈을 npm으로 설치하여 package.json 에 의존성 정보 삽입 및 node_modules에 설치가 되었다. 하지만 serve 명령어로 electron을 띄었을 시에는 해당 모듈 import시 문제가 발생하지 않았는데, build 명령어로 프로그램을 빌드 후 실행하였을때 해당 모듈 import시 아래와 같이 Cannot find module 에러가 떴다. serve시에는 로컬에 이미 설치되어 있는 모듈을 잘 참조하지만, 빌드시에는 해당 모듈이 package.json에 관리되어 있어도, electron-builder가 프로그램에 필요한 모듈이라 생각하지 않아 설치되지 않고 빌드되어, 참조시에 에러가 발생하는 모양이다. 2. 해결방법 해결책을 찾은 사이트: https://stackov..

SPA Framework/Vue 2022.09.26

[Java] 예외처리

1. 예외란? 개념적으로 예외란, 어떤 이유로 컴퓨터가 더 이상 프로그램을 진행할 수 없는 상태가 되는 것을 의미한다. 예를 들어서 배열의 크기보다 큰 곳을 접근하려 한다던가, 0으로 수를 나누려 한다던가, 가져오려는 값이 Null일 경우 등등.. 프로그램을 만들다 보면 수없이 많은 오류를 마주치게 된다. 이러한 오류들은 프로그램이 오동작을 하지 않도록 하기 위한 선기능이 있으며, 이러한 오류들을 무시하고 싶을 때도 있고, 오류가 날때 적절한 처리를 하고싶을 때도 있을 것이다. 이러한 예외들을 자바에서는 어떻게 처리하는지 살펴보고, 보다 안전하고 유연한 프로그래밍을 구사해보자. 2. 예외 처리 기본 (try / catch) Java의 예외처리의 기법에 대해서 살펴보자. 다음은 예외처리를 위한 try, c..

Java 2022.09.22

[Maven] mvn clean install

1. mvn clean, install 명령어는? clean: 빌드시 생성된 모든 것들을 삭제해준다. Maven에서 자체 빌드 수명 주기 단계이다.(action이나 task로 생각할 수 있다.) 주로 빌드 결과물인 target폴더의 내용을 모두 삭제해준다. install: 프로젝트를 빌드하여 jar 실행 파일을 만들어주는 명령어이다. local repository에 패키지를 배포한다. 의존성 있는 다른 프로젝트에서 local repository에 존재하는 패키지를 참조할 수 있게 된다. 2. 메이븐 생명주기 (Maven lifecycle) (1). process-resources /src/main/resources 디렉토리를 에 생성한다. (2) complie 소스코드를 컴파일해서 클래스를 에 생성한다...

Java/Maven 2022.09.22

[Git] 특정 커밋의 상태 clone하기

1. 개요 프로젝트를 내려받고 싶으나, 특정 커밋의 상태로 내려받고 싶은 경우가 있다. 이럴땐 어떻게 해야하는지 정리해 보았다. 읽기 전 전제사항 Git 사용법에 대한 기본 지식 2. 방법 (1) 가져오고 싶은 프로젝트 clone 위에서 복사한 URL을 clone해준다. $git clone [REPOSITORY_URL] git clone을 하면 제일 최신 버전의 프로젝트가 내려받아진다. (2) clone한 디렉토리로 이동한 후 git log $cd [PROJECT_PATH] $git log 명령어를 입력하면 git log들이 출력되게 된다. 되돌아가고 싶은 커밋 버전의 ID(아래 사진의 빨간박스)를 확인하자. (3) 특정 커밋 버전으로 되돌리기 복사한 commit id로 아래와 같이 git reset명령..

Git 2022.09.22

[GitHub] 토큰 인증 로그인(Please use a personal access token instead) 사용법

1. 개요 GitHub을 사용하는 개발자라면, GitHub 계정 인증 시 아래와 같은 메시지를 본 적이 있을 것이다. GitHub에서 ID/PW 기반의 Basic Authentication 인증을 금지하고. ID/Personal Access Token 방식의 Token Authentication 인증을 요구하고 있다. 이는 2020년 8월 13일부로 시행되었는데, 공식문서에 따르면 이에 대한 배경은 다음과 같다. 최근 GitHub은 여러 보안관련 개선사항을 내놓았는데, 이러한 개선사항에도 불구하고 역사적 사유로 2단계 인증이 활성화되지 않은 고객은 GitHub 사용자 이름과 비밀번호만 사용하여 Git 및 API 작업을 계속 인증할수 있었다. 정리하자면, 공격자가 여러 웹 사이트에서 재사용된 암호를 가져와..

Git 2022.09.18

[일기] 아는 만큼 궁금하다.

아는 만큼 궁금하다. 이는 어느 분야에서나 통용되는 말이다. 단적인 예로, 소프트웨어로 예를 들어보자면, 소프트웨어에 일가견이 없는 사람의 대부분은 사용하고 있는 소프트웨어가 어떤 구조를 가지고 어떻게 동작하는지 궁금하지 않을 것이다. 단지 사용하는 목적에 맞게 잘 동작하냐 아니냐가 관건일 뿐이다. 하지만, 해당 분야에 대해 공부를 하였고 아는것이 많다면, 첫째로 이 소프트웨어에 대해 말할 수 있는 점이 많아질 것은 당연지사고, 신선하거나 잘 만든 소프트웨어에 대해서는 어떻게 설계하고 구현하였는지 궁금증이 마구 샘솟을 것이다. 참여중인 프로젝트에서 다루고 있는 기술이 있다. 하지만 누군가 나에게 이 기술에 대해 물어본다면, 자신있게 설명할 수 있던 적이 그렇게 많지는 않았던것 같다. 사용하고 있는 기술에..

Record/IT Diary 2022.09.05
반응형