[Node.js] 시놀로지 Docker + Node.js 서버 [Error: ENOENT: no such file or directory, open '***'] 오류 해결

웹/Node.js 2022. 8. 21. 00:30

Node.js + Vue.js 로 만든 프로젝트 완성 후 제대로 작동하는걸 확인해 시놀로지 NAS로 서버를 옮기는 작업을 했습니다. 첫번째로 한 작업은 Node.js 와 Vue.js 프로젝트를 코드 하나로 통합하는 작업이였습니다. 프론트엔드단 Vue Cli로 생성한 Vue.js 코드는 웹 서버가 내장되어 있어서 8080 포트로 따로 돌아가고, 백엔드단 Node.js는 Express 프레임워크를 이용해서 API 서버를 제작했는데 3000번 포트로 돌아가게 됩니다. 프론트엔드단과 백엔드단이 깔끔하게 분리되어 제작된 바람직한 코드지만 웹 서버도 실제로 2개나 돌아가서 배포할때는 비효율적인 구조입니다. 그래서 Vue.js 에서 WebPack 을 이용해 빌드 과정을 거쳐서 HTML CSS JS 로 통합 파일을 생..

Article Thumbnail
[Vue.js] <v-data-table> Rows per page 텍스트 및 내용 수정 + 바닥글 수정 방법

웹/Vue, React, Angular 2022. 8. 16. 04:30

* 다음 글은 Vue.js 2.0 버전 + Vuetify 환경을 기준으로 작성되었습니다. Vuetify의 컴포넌트 태그를 이용하면 간단하게 데이터 테이블을 구현할 수 있습니다. 저는 엑셀 파일을 서버에 업로드 하면 미리 보기 하는데 굉장히 유용하게 사용하고 있구요. 기본적으로 표의 열(Column) 이름이나 아이템 요소들은 그냥 객체가 여러개 들어있는 배열을 주면 간단하게 수정이 가능하나 저기 빨간색 부분으로 표시된 Rows per page, 1-5 of 10 과 같은 텍스트 들은 Vuetify 공식 문서에서도 따로 바꾸는 방법을 명시해서 알려주고 있진 않습니다. Vuetify 로 사이트 만드는 사람들이 전부 영어권 사람들은 아닐꺼니깐.. 당연히 바꾸는 방법이 존재합니다! 오늘은 저 아래에 있는 바닥글의..

Article Thumbnail
SMS 전송 웹 서비스(Web APP) 개발 완성 + Vue.js 로 개발한 후기

프로젝트/프로그래밍 2022. 8. 12. 22:37

안녕하세요 파일입니다. 오늘은 저번에 시작한 프로젝트인 SMS 전송 웹 서비스를 완성하게 되어 최종적으로 남기는 후기 입니다. 서비스 자체도 지인들에게 일부 공개할 예정이기에 본 글은 서비스의 홍보 목적이 아닌 개발 후기 및 자랑 목적(?) 이 되겠습니다. (누구한테 알려줄 목적이 아니니 어렵게 쓸거에요!! ) 개요 우선 본 프로젝트의 시작 계기가 된 SMS 전송기 입니다. 사실 이 프로그램을 만든 계기는 본질적으로 아버지 업무에 도움을 드리기 위해 제작하였고 이와 같은 형태의 프로그램을 이번까지 2번이나 만들었습니다. * 이번에 비슷한걸 또 만들게 됐으니 총 3번이 되겠네요. 처음에는 Python 코드로 만든 CLI (No GUI) 형태, 동생한테 이렇게 도스창에서 메세지 전송하는게 불편하다고 피드백이..

Article Thumbnail
웹 프로젝트 진척 90%?

일상 2022. 8. 10. 05:03

거창하게 시작한 웹 프로젝트 완성이 머지 않았습니다 ㅠㅠ 이제 SMS 예약 전송 기능 프론트 화면만 잘 만들면 거의 끝... 위 화면은 Node.js Express 백엔드단 API 서버 리팩토링한 결과물입니다. 라우터를 파일 별로 분리해서 (모듈화) 코드를 깔끔하게 정리했습니다. 사실 일반적으론 백엔드가 할 일이 더 많고 힘들다지만, 이번에 Vue.js 기초만 떼고 프론트 들이박기 시도해본 결과 프론트도 만만치 않은 거 같습니다. 지금 제대로 완성이 안되는 것도 프론트 코드를 다 못짜서.. (V-dialog 같은거 일일히 만드는거 너무 귀찮네요) 현재 프론트, 백, 데브 옵스 혼자 다 해야해서 정신이 나갈거 같지만 이번에 웹 개발을 어떻게 할 지 확실히 감이 온 거 같네요. 그리고 간단한거 아니면 앞으로..

Article Thumbnail
[Node.js] winston custom level 추가하기

웹/Node.js 2022. 8. 6. 23:43

Node.js의 라이브러리인 winston 을 이용하면 로그를 저장하는걸 간편하게 구현할 수 있습니다. winston 은 level 이라는 개념으로 로그 우선순위를 관리하는데 로그 level은 아래와 같습니다. { error: 0 , warn: 1 , info: 2 , http: 3 , verbose: 4 , debug: 5 , silly: 6 } 숫자가 낮을 수록 우선순위가 높으며, error이 가장 위험한 로그라고 보시면 됩니다. winston 은 이러한 level로 로그를 저장하며 특정 level 을 설정해놓고 그 level에 맞춰서 로그를 저장하라고 파일에 지시해주면 그 로그만을 저장하는게 아니라 숫자가 같거나 낮은 로그까지 한꺼번에 저장하게 됩니다. 예를 들어서 level : info 로 설정하..

Article Thumbnail
[Vue.js] Vuetify + Node.js Express로 웹앱(SPA)을 제작중 입니다

웹/Vue, React, Angular 2022. 8. 4. 04:20

안녕하세요 파일입니다~ 요새 얼마 남지 않은 방학 오랜만에 프로젝트 진행으로 Vue.js, Node.js 를 통해서 웹앱을 하나 제작중입니다. 완전히 새로 만드는건 아니고 예전에 C#으로 SMS 전송기를 구현한적이 있는데 이걸 웹 버전으로 바꾸는 작업중입니다. 이 SMS 전송기는 저희 아버지 업무 자동화에 큰 도움을 드리고 있는 프로그램인데 현재도 잘 작동합니다만 우선 자체적인 서버가 없어서 예약 메세지가 안되는게 가장 불편한 점이였고, 서버에서 연동되지 않는 단순히 클라이언트기 때문에 여러 컴퓨터에서 메세지를 보낼때 그 내용이 서로 연동되지 않는다는 불편함이 있었습니다. 이 SMS 전송기를 웹으로 만들면 모든 애로사항을 해결할 수 있습니다. 제 서비스를 사용하는 몇 명한테만 제한적으로 오픈할 것이기 때..

Article Thumbnail
[Vue.js] 전체 화면 드래그 앤 드롭 구현 (FullScreen Drag and Drop)

웹/Vue, React, Angular 2022. 8. 2. 17:56

Vue 2 + Vuetify 로 프론트엔드단 작업을 하다가 위 사진 처럼 풀스크린 드래그 앤 드롭을 구현해야 하는 상황이 생겼습니다. 아마 사이트를 쓰시다보면 파일 업로드 할 때 저런 전체화면 형태의 드래그 드롭 화면을 한번쯤 만나보셨을 겁니다. Vue 를 안썼으면 그냥 바닐라 JS로 body전체 DOM에 드래그 이벤트 리스너를 걸었을 거 같은데 Vue 에서는 더 쉬운 방법으로 구현할 수 있지 않을까 싶어서 관련 라이브러리를 찾아보았습니다. 우선 Vue 자체에서도 @Event 형식을 통해서 쉽게 드래그 드롭을 구현할 수 있어 보였는데 제가 Vue 지식은 초보 강좌 하나 본게 다라서 ㅎㅎㅎ 구글링을 열심히 해도 방법을 못찾겠더라구요.. vuedraggable 이란 나름 유명한 라이브러리가 있었는데 이것도 ..

Article Thumbnail