프로그래밍/NodeJS
-
NodeJS 텔레그램 API를 이용한 오류 보고 프로그램프로그래밍/NodeJS 2019. 4. 21. 22:09
최근에 라즈베리파이가 랜섬웨어를 당하면서 대안책으로 하루마다 MySQL 데이터를 자동으로 구글드라이브로 백업하는 프로그램을 작성했습니다. (글 참고) 다만 이 백업작업이 항상 제대로 작동하고 있는지 항상 구글드라이브에 직접 SQL파일을 확인하여야했는데 이 프로그램이 실행될 때 마다 휴대폰으로 알람을 받아보면 좋겠다는 생각을 하게되었습니다. 또한 포트폴리오 NodeJS 앱에서 오류가 발생하면 이 또한 휴대폰으로 알람을 받으면 좋겠다는 생각에서 시작하게 되었습니다. 우선 앞서 작성한 Batch 파일에서 아래 코드를 추가시켜주었습니다. START http://expressme.herokuapp.com/telegramtimeout /T 20 /nobreak >nultaskkill /IM chrome.exe /F..
-
Google Puppeteer를 이용한 네이버 밴드 파싱 프로그램 개발기프로그래밍/NodeJS 2019. 4. 1. 19:46
전에 친구들과 카카오아지트를 사용하면서 항상 데이터를 모으고 싶다는 생각은 하곤있었지만 실제로 행하진 못했습니다. 이후에 구버전 카카오아지트가 서비스를 종료하기도 하면서 그 이후론 네이버 밴드를 사용하였습니다. 최근에 빅데이터에 관심이 많아지면서 데이터를 수집하고 정리하여 활용해보는것을 좋아하는데 이를 위해선 어디에선가 데이터를 스크랩해와야하고 저는 그동안 정보가 많이 쌓인 네이버 밴드를 파싱해보기로 하였습니다. 우선 공식적인 방법으로 파싱하는 방법을 찾아보니 네이버 밴드에서 제공하는 Band API가 존재하지만 쿼터가 너무 적은데다가 문서가 너무 제대로 되어있지않기도 하고 구글에 네이버 밴드를 활용한 프로젝트가 너무 적어서.. 다른 방법을 사용해보기로 하였습니다. NodeJS를 활용해서 파싱해올것이라 ..
-
[Express] NodeJS CRUD 애플리케이션 개발프로그래밍/NodeJS 2018. 7. 13. 13:57
어찌되었건 소프트웨어의 대부분의 구조는 CRUD 구조라는것은 무시할수가 없는 부분이고 이걸 제대로 만들기는 쉽지 않다는 것을 알고 있다. 예로들어 단순한 한 페이지의 CRUD 기능을 가진 웹 앱은 개발하기가 어렵지 않다. 예제도 많고 자료들도 널려있기 때문이다. 다만 여기에 여러가지 기능이 삽입되고 복잡도가 높아질수록 처음부터 설계를 잘해야한다는 생각이 들게된다. 저번에도 Zzapcord를 만들때 이리저리해서 모양은 어~ 비슷하게 만들어졌네? 라고 생각했는데 추가 개발이 들어가려고 하니 설계를 잘못해서 다 엎어야하는 상황이 발생했었다. 게다가 내가 PUG 탬플릿 엔진을 잘 다루지 못하고 CSS에 약해서 ㅠㅠ 디자인에 너무나 많은 시간을 투자해버렸었다. Flex로 모양 만드는 방법이 추천되는것같던데 나중에..
-
Express Generator를 활용하여 Express 기본 앱 틀 생성하기프로그래밍/NodeJS 2018. 7. 10. 21:15
NodeJS 강좌를 들으면서 빼놓을수 없는것이 Express가 아닐까 생각한다. 이유로는 오픈되어있는 무료 강의중 하나인 생활코딩 강좌에서 NodeJS 수업을 하면서 빼놓지 않는것이 Express이기 때문이다. NodeJS의 플랫폼은 여러가지인것같지만 아직까지 그 차이점은 잘 모르겠다. Express 강좌를 듣기전에는 Inflearn에서 제공하는 React 강좌를 보았었고 생활코딩의 Node 구버전 강좌를 들어보면서도 Express를 통하여 CRUD 앱 및 보안, 로그인 기능을 구현해보았었다. 뭔가 나와 잘맞아서 개인 프로젝트를 진행해보기도 했었지만 생각보다 앱의 규모가 커짐에 따라 유지보수가 너무나 힘들어서 내버려두었다.. 한창 Discord가 유명할때 디스코드와 똑같이 구현해보겠다고 진행한 프로젝트인..
-
[Node.js 5강] Express 템플릿 엔진 Pug (Jade) Express-Template Engine Pug프로그래밍/NodeJS 2017. 11. 28. 16:17
본 강의는 생활코딩 강좌를 바탕으로 복습하며 진행되는 코드들을 재구성한것입니다. 일부 코드들의 경우 호환성의 이유로 원본의 강좌와 다를수 있음을 알려드립니다.NodeJS 6.11.0 LTS, Express 4.X 버전에서 완벽하게 작동하는것을 확인하였습니다. 이번 강좌에서는 Pug (구 Jade)을 사용하여 Express 앱내에서 웹페이지를 구현하지 않고 따로 탬플릿 엔진을 사용하여 구현하는 방법에 대해서 알아보도록 하겠습니다. 이 강좌를 진행하기 전에 NPM으로 pug 모듈을 설치해주셔야합니다. 생활코딩 강좌의 경우 Jade 기준으로 작성되어있지만 저작권 문제로 Jade가 Pug로 변경됨에 따라 NPM에서도 pug 모듈을 사용해주셔야 정상적인 값이 반영됩니다. 우선 전체적인 코드를 살펴봅시다.새로 추가..
-
[Node.js 4강] Express로 웹페이지를 표현하는 방법 How to Express Web Pages with Express프로그래밍/NodeJS 2017. 11. 28. 15:10
본 강의는 생활코딩 강좌를 바탕으로 복습하며 진행되는 코드들을 재구성한것입니다. 일부 코드들의 경우 호환성의 이유로 원본의 강좌와 다를수 있음을 알려드립니다.NodeJS 6.11.0 LTS, Express 4.X 버전에서 완벽하게 작동하는것을 확인하였습니다. 이번 강의에서는 Express 프레임워크에서 웹페이지를 구현하는 방법론에 대해서 알아보도록 하겠습니다. 프로그래밍이라는것이 그렇듯이 이렇게 구현하는 것이 답이라는 것은 아닙니다. 다만 코드의 가독성을 위해서 최대한 간결하고 읽기 쉬운 코드를 작성하는것이 좋은데 이를 위해서는 프레임워크 단위에서 제공되는 각종 기능들을 잘 활용하는것이 중요하다고 생각합니다. Express로 웹페이지를 제공하는 방법은 여러가지가 있지만 지난 2~3강에서 구현했던 방식의 ..
-
[Node.js 3강] Express 정적파일 서비스 Express How to serve static files프로그래밍/NodeJS 2017. 11. 28. 14:41
본 강의는 생활코딩 강좌를 바탕으로 복습하며 진행되는 코드들을 재구성한것입니다. 일부 코드들의 경우 호환성의 이유로 원본의 강좌와 다를수 있음을 알려드립니다.NodeJS 6.11.0 LTS, Express 4.X 버전에서 완벽하게 작동하는것을 확인하였습니다. 2강의 내용과 비슷합니다. 다만 Express의 정적파일을 다루는 기능을 포함하고 있기에 하위강좌로 분류되지 않을까 생각됩니다. 이 강좌의 코드는 생활코딩과는 일부 다른점이 있습니다. Node 버전과 Express 버전이 업데이트되면서 발생되는 문제가 아닐까 싶은데 코드를 살펴보면서 확인하여봅시다. 전체적인 코드는 아래와 같습니다. 2강에서처럼 각자 라우팅 경로를 정해주고 있지만 path라는 모듈과 app.use(express.static(path...
-
[Node.js 2강] Nodejs Express 웹앱 개발 Nodejs Express Web App Development프로그래밍/NodeJS 2017. 11. 28. 14:08
본 강의는 생활코딩 강좌를 바탕으로 복습하며 진행되는 코드들을 재구성한것입니다. 일부 코드들의 경우 호환성의 이유로 원본의 강좌와 다를수 있음을 알려드립니다.NodeJS 6.11.0 LTS, Express 4.X 버전에서 완벽하게 작동하는것을 확인하였습니다. 이번에는 Node와 Express를 사용한 웹 애플리케이션을 개발해보도록 하겠습니다. 라우트라고 하나요? 코드를 보시면 아시겠지만 Express를 사용하면 일반적으로 우리가 보이는 웹 링크 주소에서 라우팅 링크를 생성할수가 있습니다. 위의 링크를 살펴보시면 app.get 다음에 / 를 확인하실수 있을겁니다. 여기서 /란 최상위 디렉토리를 의미합니다. 그리고 아래의 /login 디렉토리를 확인하실수 있는데요. 127.0.0.1:3000/login으로 ..