리눅스에서 systemd로 Node.js 프로젝트를 서비스로 등록하기
학교 동아리 서버컴에 PM2를 깔고 여러 프로젝트를 돌리다보니 최근에 크게 데인것도 있고 불안정할 때가 많아져서 대체할 방법을 찾던 도중, 스택 오버플로우(링크)에서 아주 좋은 해결책을 발견했다. 이번 포스트는 그래서 systemd를 활용해 프로젝트를 서비스로 등록하는 방법을 다뤄...
학교 동아리 서버컴에 PM2를 깔고 여러 프로젝트를 돌리다보니 최근에 크게 데인것도 있고 불안정할 때가 많아져서 대체할 방법을 찾던 도중, 스택 오버플로우(링크)에서 아주 좋은 해결책을 발견했다. 이번 포스트는 그래서 systemd를 활용해 프로젝트를 서비스로 등록하는 방법을 다뤄...
UUID는 Universally Unique IDentifier의 약자로, 전세계에 하나밖에 없는 ID라는 뜻이다. 이런 ID는 고유하기 때문에 서버에서 사용자들에 UUID를 붙여서 구분하는 등 여러 방면에서 유용하게 쓰일 수 있다. 이번 포스트에서는 Node.js에서 UUID를 ...
웹사이트에서 시간 표현을 하기 위해 포맷팅을 하려면 매우 귀찮아진다. 만약 포맷팅을 해주는 함수같은게 있다면 다행이겠지만, 그걸 만드는 작업도 귀찮은건 사실이다. 그래서 이번 포스팅에서는 Moment.js라는 라이브러리를 써볼 것이다.
스마트폰이 보급된 이후로 카카오톡을 일상에서 많이 사용하는데, 만약 방이라는 개념이 없고 카카오톡을 사용하는 모든 사용자들에게만 보낼 수 있다면 매우 불편하지 않을까? 그래서 이번엔 Socket.IO의 룸과 네임스페이스에 대해 알아볼 것이다.
Node.js로 사용자와 HTTP로 통신하는 것은 Express나 내장된 http 모듈로 해본 적이 있을 것이다. 하지만 채팅같은 실시간으로 데이터를 주고받아야 하는 서비스는 어떻게 구현해야 할 것인지 막막할 때가 있다. 그래서 이번 포스팅에서는 서버와 클라이언트가 실시간 통신을 ...
Electron은 자바스크립트를 통해 데스크톱 앱을 제작하기 위해 만들어진 프레임워크이다. Chrome 브라우저의 오픈소스 버전인 Chromium을 통해 웹 페이지 기반 렌더링을 지원하고, 크로스 플랫폼으로 개발할 수 있다는 장점이 있다. 이번 포스트에서는 Electron으로 데스...
HTTP에서 활용할 수 있는 대표적인 메소드들은 GET, POST, PUT, DELETE가 있다. 이번 포스트에서는 이 메소드들을 활용하면서 바디로 데이터를 받아오는 방법을 알아볼 것이다.
Express 서버에서 요청을 받기 위해서는 요청을 수신하는 경로가 필요하다. 이번 포스트에서는 라우팅을 통해 요청을 받는 경로를 정의해볼 것이다.
Node.js는 JavaScript로 네트워크 애플리케이션을 개발하기 위해 설계된 런타임이다. 그래서 서버를 구축하는 예제들과 라이브러리들도 넘쳐나는데, 이번 포스트에서는 Express 라이브러리를 다룰 것이다.
Node.js 기반 서버를 ssh로 접속한 컴퓨터에서 구동하려면 nohup, pm2 등 여러 방법이 있다. 오늘은 pm2로 원격 컴퓨터에서 Node.js 서버를 구동해볼 것이다.
자바스크립트에서는 객체 자신을 json이라는 형식의 텍스트 파일로 출력할 수 있다. 그렇다면 다른 언어에서는 객체를 파일로 추출할 수 없는걸까? 당연히 방법은 있다. 그래서 이번에 소개할 라이브러리는 .NET 언어들의 객체를 json 형식으로 출력해주는 Json.NET이라는 라이브...
지금까지는 채팅 채널에서만 봇이 상호작용을 했지만 이번에는 음성 채널과 상호작용하여 음악을 들려주는 기능을 추가해 볼 것이다.
저번 포스트 에서는 명령어를 입력하면 입력한 명령어를 채팅으로 보내주는 간단한 봇이었다. 이번엔 더 심화적으로 명령어를 다루는 봇을 제작할 것이다.
디스코드는 게임 커뮤니티부터 팀 프로젝트 단톡방까지 활용도가 매우 높은 메신저이다. 이번 포스트에서는 C#의 라이브러리인 Discord.NET을 활용해 디스코드 봇을 제작하는 법에 대해 다뤄볼 예정이다.
.NET 프레임워크 프로젝트 에서 .NET 코어 프로젝트로 전환하는 작업을 해볼 것이다.
작년에 친구가 컴퓨터 전원을 꺼버려서 내 파일에 대한 복수의 의미로 랜섬웨어를 만들었던 기억이 나서 C#으로 암호화 하는 법을 적어볼 것이다.
마인크래프트로 웬만한 대형 서버를 들어가보면 인벤토리 창에 아이템을 놓아 여러 기능을 구현하는 경우가 많다. 예를 들어 유명한 서버들 중 하나인 하이픽셀에서는 플레이하고 싶은 미니게임을 인벤토리 창에서 골라서 접속할 수 있다. 이번 포스트에서는 인벤토리 창을 활용해서 개사기템을 뽑...
저번 포스트에선 간단하게 명령어를 추가하는 플러그인을 만들어 보았다. 이번에 무슨 기능이 좋은 예제가 될 지 고민하던 중, 몬스터헌터 월드에서 활을 사용한다면 쓸 수 있는 기술인 용의 천천시를 보고 좋은 예제가 될 것이라고 생각했다.
저번 포스트에선 몬스터헌터 활처럼 퍼져나가는 화살을 발사하는 명령어를 만들어 보았다. 이번엔 명령어가 아니라, 활을 발사할 때 발생하는 이벤트를 활용해 만들어 볼 것이다.
드디어 중요한 일들이 거의 다 끝나고 연말이 다가왔다. 하지만 슬프게도 솔로인 채로 크리스마스를 지내야 하는 사실은 변함이 없었다. 게다가 코로나도 겹쳐 밖에 나가 놀지도 못해 더 슬퍼진다. 그런 슬픔을 달래고자 갓갓 띵작 마인크래프트에서 놀기 위해 서버 플러그인을 만들어보기로 했...
저번 포스트에서는 마인크래프트 플러그인 개발을 하기 위해 프로젝트를 세팅하고 테스트까지 해보았다. 이번 포스트에서는 플러그인에 명령어를 등록하는 방법을 소개하겠다.
마인크래프트로 웬만한 대형 서버를 들어가보면 인벤토리 창에 아이템을 놓아 여러 기능을 구현하는 경우가 많다. 예를 들어 유명한 서버들 중 하나인 하이픽셀에서는 플레이하고 싶은 미니게임을 인벤토리 창에서 골라서 접속할 수 있다. 이번 포스트에서는 인벤토리 창을 활용해서 개사기템을 뽑...
저번 포스트에선 간단하게 명령어를 추가하는 플러그인을 만들어 보았다. 이번에 무슨 기능이 좋은 예제가 될 지 고민하던 중, 몬스터헌터 월드에서 활을 사용한다면 쓸 수 있는 기술인 용의 천천시를 보고 좋은 예제가 될 것이라고 생각했다.
저번 포스트에선 몬스터헌터 활처럼 퍼져나가는 화살을 발사하는 명령어를 만들어 보았다. 이번엔 명령어가 아니라, 활을 발사할 때 발생하는 이벤트를 활용해 만들어 볼 것이다.
드디어 중요한 일들이 거의 다 끝나고 연말이 다가왔다. 하지만 슬프게도 솔로인 채로 크리스마스를 지내야 하는 사실은 변함이 없었다. 게다가 코로나도 겹쳐 밖에 나가 놀지도 못해 더 슬퍼진다. 그런 슬픔을 달래고자 갓갓 띵작 마인크래프트에서 놀기 위해 서버 플러그인을 만들어보기로 했...
저번 포스트에서는 마인크래프트 플러그인 개발을 하기 위해 프로젝트를 세팅하고 테스트까지 해보았다. 이번 포스트에서는 플러그인에 명령어를 등록하는 방법을 소개하겠다.
HTTP에서 활용할 수 있는 대표적인 메소드들은 GET, POST, PUT, DELETE가 있다. 이번 포스트에서는 이 메소드들을 활용하면서 바디로 데이터를 받아오는 방법을 알아볼 것이다.
Express 서버에서 요청을 받기 위해서는 요청을 수신하는 경로가 필요하다. 이번 포스트에서는 라우팅을 통해 요청을 받는 경로를 정의해볼 것이다.
Node.js는 JavaScript로 네트워크 애플리케이션을 개발하기 위해 설계된 런타임이다. 그래서 서버를 구축하는 예제들과 라이브러리들도 넘쳐나는데, 이번 포스트에서는 Express 라이브러리를 다룰 것이다.
지금까지는 채팅 채널에서만 봇이 상호작용을 했지만 이번에는 음성 채널과 상호작용하여 음악을 들려주는 기능을 추가해 볼 것이다.
저번 포스트 에서는 명령어를 입력하면 입력한 명령어를 채팅으로 보내주는 간단한 봇이었다. 이번엔 더 심화적으로 명령어를 다루는 봇을 제작할 것이다.
디스코드는 게임 커뮤니티부터 팀 프로젝트 단톡방까지 활용도가 매우 높은 메신저이다. 이번 포스트에서는 C#의 라이브러리인 Discord.NET을 활용해 디스코드 봇을 제작하는 법에 대해 다뤄볼 예정이다.
자바스크립트에서는 객체 자신을 json이라는 형식의 텍스트 파일로 출력할 수 있다. 그렇다면 다른 언어에서는 객체를 파일로 추출할 수 없는걸까? 당연히 방법은 있다. 그래서 이번에 소개할 라이브러리는 .NET 언어들의 객체를 json 형식으로 출력해주는 Json.NET이라는 라이브...
UUID는 Universally Unique IDentifier의 약자로, 전세계에 하나밖에 없는 ID라는 뜻이다. 이런 ID는 고유하기 때문에 서버에서 사용자들에 UUID를 붙여서 구분하는 등 여러 방면에서 유용하게 쓰일 수 있다. 이번 포스트에서는 Node.js에서 UUID를 ...
웹사이트에서 시간 표현을 하기 위해 포맷팅을 하려면 매우 귀찮아진다. 만약 포맷팅을 해주는 함수같은게 있다면 다행이겠지만, 그걸 만드는 작업도 귀찮은건 사실이다. 그래서 이번 포스팅에서는 Moment.js라는 라이브러리를 써볼 것이다.
스마트폰이 보급된 이후로 카카오톡을 일상에서 많이 사용하는데, 만약 방이라는 개념이 없고 카카오톡을 사용하는 모든 사용자들에게만 보낼 수 있다면 매우 불편하지 않을까? 그래서 이번엔 Socket.IO의 룸과 네임스페이스에 대해 알아볼 것이다.
Node.js로 사용자와 HTTP로 통신하는 것은 Express나 내장된 http 모듈로 해본 적이 있을 것이다. 하지만 채팅같은 실시간으로 데이터를 주고받아야 하는 서비스는 어떻게 구현해야 할 것인지 막막할 때가 있다. 그래서 이번 포스팅에서는 서버와 클라이언트가 실시간 통신을 ...
Flutter에서는 HTTP 요청에 필요한 비동기 작업을 Future와 await 키워드로 할 수 있다.
Flutter에서는 HTTP 요청에 필요한 비동기 작업을 Future와 await 키워드로 할 수 있다.
Flutter에서는 HTTP 요청에 필요한 비동기 작업을 Future와 await 키워드로 할 수 있다.
작년에 친구가 컴퓨터 전원을 꺼버려서 내 파일에 대한 복수의 의미로 랜섬웨어를 만들었던 기억이 나서 C#으로 암호화 하는 법을 적어볼 것이다.
Node.js 기반 서버를 ssh로 접속한 컴퓨터에서 구동하려면 nohup, pm2 등 여러 방법이 있다. 오늘은 pm2로 원격 컴퓨터에서 Node.js 서버를 구동해볼 것이다.
Electron은 자바스크립트를 통해 데스크톱 앱을 제작하기 위해 만들어진 프레임워크이다. Chrome 브라우저의 오픈소스 버전인 Chromium을 통해 웹 페이지 기반 렌더링을 지원하고, 크로스 플랫폼으로 개발할 수 있다는 장점이 있다. 이번 포스트에서는 Electron으로 데스...
대부분의 앱은 설치하면서 약간의 작업이 따로 필요한 경우가 있다. 하지만 그런 작업을 사용자에게 시키기엔 부담이 있기 때문에, 그런 경우는 간편하게 설치 작업을 수행하는 프로그램을 만들어준다. 이번엔 Inno Setup을 통해 설치 프로그램을 만들어보자.
코딩을 할 때 문자열이 조건에 맞는지 체크를 해야할 때가 있다. 그런데 if문에 여러가지 조건을 밀어넣으려고 하다 보면 코드는 꼬일대로 꼬이고 조건들을 일일이 체크하는 것도 귀찮아진다. 그래서 이번 포스트에서는 정규표현식이라는 문법을 소개할 것이다.
Node.js로 HTTP 서버 프로젝트를 개발하고 실제 서버에 배포할 땐 Apache나 Nginx 같은 프록시 서버도 같이 이용하는 것을 권장한다. 이유는 보안상의 이점, 캐시 기능으로 리소스 낭비 방지 등이 있다. 이 포스트에서는 가볍고 성능이 뛰어난 Nginx 프록시 서버를 사...
학교 동아리 서버컴에 PM2를 깔고 여러 프로젝트를 돌리다보니 최근에 크게 데인것도 있고 불안정할 때가 많아져서 대체할 방법을 찾던 도중, 스택 오버플로우(링크)에서 아주 좋은 해결책을 발견했다. 이번 포스트는 그래서 systemd를 활용해 프로젝트를 서비스로 등록하는 방법을 다뤄...
학교 동아리 서버컴에 PM2를 깔고 여러 프로젝트를 돌리다보니 최근에 크게 데인것도 있고 불안정할 때가 많아져서 대체할 방법을 찾던 도중, 스택 오버플로우(링크)에서 아주 좋은 해결책을 발견했다. 이번 포스트는 그래서 systemd를 활용해 프로젝트를 서비스로 등록하는 방법을 다뤄...