오픈소스/노드 썸네일형 리스트형 [Node] Audio Raw PCM data 에서 amplitude 추출 Audio PCM 데이터에서 정상적인 데이터가 맞는 지, 구간 마다 어느정도의 파장크기를 확인 하는 방법을 본 문서에서 정의하고 있습니다. 개발을 하다가 음성 발화 인식을 위해 해당 코드를 작성하게 되었으며 16bit little endian mono 채널에서만을 기준으로 작성되었습니다. 사진을 보게 되면 파장이 -1.0 부터 1.0 까지 구성되어 있습니다. 이러한 로직을 처리하는 부분입니다. # Contents 예제 코드 # 예제 코드 코드는 아주 간단합니다. 매번 2바이트를 처리하는데, little endian이므로 8비트를 왼쪽 시프트하고, 부호처리를 하게 되면 0-1사이의 값 이 나오게 됩니다. 해당 코드는 값이 들어오는 구간 마다 데이터의 max 값을 찾는 코드였습니다. 해당 코드를 응용하여 사.. 더보기 [Node] Express 서버에서 Form을 이용하여 여러 개 데이터 전송 Express를 이용하여 서버 쪽에서 파일을 공유 하는 방법입니다. 보통은 클라이언트 단에서 서버 쪽으로 폼 데이터를 전송하여 메시지를 요청하는데, 어느 서버에서는 클라이언트가 처리하도록 서버에서 폼 데이터를 전송하는 그러한 자료를 본 적이 있습니다. 물론 이러한 방식은 여러 파일을 한꺼번에 처리하게 되어 서버 측 입장에서는 아주 간단하고 편리 하지만, 클라이언트 측 입장에서는 바운더리 처리와 더불어 로직을 새로 짜야하는 상황이 존재하기 때문에 혹시 이러한 상황이 발생하시더라도 기본적인 틀을 이용하여 코드를 작성하면 도움이 되지 않을까 해서 작성하게 되었습니다. # Contents 서버 클라이언트 # 서버 서버 쪽 코드는 아주 간단합니다. 해당 라우터에 get 메소드를 통하여 폼 데이터 를 전송하면 끝이.. 더보기 [Node] Express 404 Not Found 처리 Express를 사용하면 웹 서버를 구동하기가 아주 편리해집니다. 또한 Express는 미들웨어 프레임워크 를 적용하여 사용하기 때문에 웹 서버 개발의 아주 많은 도움이 되는데요. 웹 서버에 등록되지 않은 페이지 혹은 URI 로 들어가면 아래와 같은 오류 명령어 가 뜨는 경우가 대다수 있었을 것입니다. 이런 경우 Express에서는 어떻게 처리하면 내가 원하는 페이지 혹은 문자열이 나오게 할 수 있는지 에 대해 알아보도록 하겠습니다. # Contents 오류 핸들러 작성 오류 핸들러 라이브러리 사용 # 오류 핸들러 작성 라우터 미들웨어의 경우에는 등록된 라우터 순으로 처리되어집니다. 라우터가 등록된 코드 끝까지 확인 한 후에 등록되지 않은 패스일 경우에 오류 메시지를 뿌려주는 것 이죠. 그러면 라우터 마.. 더보기 [Node] 04. 콜백을 사용한 비동기 제어 흐름 패턴 본 문서는 Node.js 디자인 패턴 바이블을 읽고 리뷰를 남기고 있습니다. 문고들은 이 책의 일부분을 인용한 것임을 밝힙니다. 동기식 프로그래밍 스타일을 사용하는 플랫폼에서 Node.js와 같이 연속 전달 스타일과 비동기 API를 일반적으로 사용하는 플랫폼으로의 적응은 쉽지 않을 수 있습니다. 비동기 코드는 구문이 실행되는 순서를 예측하기 어렵게 할 수 있습니다. 이 장에서는 몇 가지 규칙과 패턴을 사용하여 실제로 어떻게 콜백을 능숙하게 제어하며, 깔끔하게 관리 가능한 비동기 코드를 작성할 수 있는지 살펴볼 것입니다. 콜백을 올바르게 다루는 법을 알게 되는 것은 프라미스와 async/await와 같이 최근에 쓰이는 접근법을 사용하기 위한 초석이 될 것입니다. # Contents 비동기 프로그래밍의 어려.. 더보기 [Node] 03. 콜백과 이벤트 본 문서는 Node.js 디자인 패턴 바이블을 읽고 리뷰를 남기고 있습니다. 문고들은 이 책의 일부분을 인용한 것임을 밝힙니다. 비동기식 프로그래밍에서는 파일 읽기 또는 네트워크 요청 수행과 같은 일부 작업을 백그라운드 작업으로 실행할 수 있습니다. 비동기 작업이 호출되면 이전 작업이 아직 완료되지 않은 경우에도 다음 작업이 즉시 실행됩니다. Node.js에서 비동기 작업의 완료를 통지받는 가장 기본적인 메커니즘은 콜백입니다. 콜백은 비동기 작업의 결과를 가지고 런타임에 의해 호출되는 함수일 뿐입니다. 비동기식 프로그래밍인 Node.js에 대해 배워보도록 하겠습니다. 비동기 코드를 작성하기 위해서 그것이 무엇을 의미하는지도 이해해 볼 것입니다. 또한 콜백 패턴과 연관이 있는 관찰자 패턴을 배워볼 것입니다.. 더보기 [Node] INI 라이브러리를 통한 환경설정 파일 구현 - ini Parser - 본 문서는 INI 라이브러리 ini 을 모듈화 하여 프로젝트와 의존하지 않은 코드를 작성하였습니다. 프로젝트의 오류와 반영된 코드 및 결과 값들을 파악하여 동작을 이해할 때 사용하기도 합니다. ini Parser를 사용하게 되면 환경설정 파일을 외부로 반출 시킬수 있기 때문에 환경설정 파일과 코드와의 의존성이 약해져서 더욱 좋은 코드가 작성될 수 있다는 점입니다. 환경설정을 변경하기 위해 코드를 고치는 것 보다 간단하게 ini 환경설정 파일을 고치는 것이 유용하다고 판단됩니다. 그러면 아래 예제를 통해 시작해보도록 하죠. # Contents ini Install 예제 코드 # ini Install 해당 라이브러리를 이용하기 위해 우리는 2개의 라이브러리를 설치할 예정입니다. ini : ini로 구성된 파.. 더보기 [Node] Logging 라이브러리 winston 본 문서는 Logging 라이브러리 winston 을 모듈화 하여 프로젝트와 의존하지 않은 코드를 작성하였습니다. 프로젝트의 오류와 반영된 코드 및 결과 값들을 파악하여 동작을 이해할 때 사용하기도 합니다. 그러면 아래 예제를 통해 시작해보도록 하죠. # Contents winston Install 예제 코드 # winston Install 해당 라이브러리를 이용하기 위해 우리는 2개의 라이브러리를 설치할 예정입니다. winston : 로깅을 도와주는 실질적인 라이브러리 입니다. winston-daily-rotate-file : winston에서 로깅된 로그들을 파일로 저장해주는 winston 유틸리티 라이브러리입니다. 설치 방법은 아래와 같습니다. npm install --save winston npm.. 더보기 [Node] 02. 모듈 시스템 본 문서는 Node.js 디자인 패턴 바이블을 읽고 리뷰를 남기고 있습니다. 문고들은 이 책의 일부분을 인용한 것임을 밝힙니다. Node.js의 모듈 시스템은 CommonJS와 ESM을 사용하고 있습니다. 두 가지의 형태가 왜 존재하는지 얘기하고, 각각의 장점과 단점을 알아볼 예정입니다. # Contents 모듈의 필요성 JavaScript와 Node.js에서의 모듈 시스템 Node.js에서의 JavaScript # 모듈의 필요성 좋은 모듈 시스템은 소프트웨어 엔지니어링의 몇 가지 기본적인 필요성을 마주할 때 도움을 줍니다. 코드베이스를 나누어 여러 파일로 분할하는 방법 : 코드를 좀 더 구조적으로 관리 할 수 있게 해주고, 각각의 독립적인 기능의 조각들을 개발 및 테스트하는 데에 도움을 주며 이해하기 .. 더보기 이전 1 ··· 3 4 5 6 7 다음