WAS 의 탄생배경을 공부하다 보니 Servlet 과 Servlet Container 가 튀어나오기 시작하더니 결국 CGI 까지 공부하게 되어 공부하는 김에 블로그에 작성하기로 하였다. 1. Static Web (정적 웹)CGI에 깊게 들어가기 전에 가장 초창기 웹 기술부터 알아보도록 한다. 인터넷 초기에는 서버에 .html 파일(정적페이지)이 저장되어 있고, 사용자가 요청하면 그냥 그 파일을 복사해서 던져주는게 전부였다.한계 : 사용자마다 다른 화면을 보여줄 수 없다.해결책 : 서버에서 "프로그램"을 돌려서 결과값을 실시간으로 만들자!2. CGI(Common Gateway Interface)그래서 나온것이 CGI의 개념이다. CGI는 웹 서버와 애플리케이션 간에 데이터를 주고받는 방법을 웹 서버에 알려..
오늘은 Google Calendar API를 n8n 노드에 붙여, 당일 일정을 카카오톡 나에게 보내기로 정리하여 보내는 과정을 정리해보려고 한다.1. Google Calendar API 사용 설정먼저 Google Calendar API를 활용하여 그날의 일정을 공유할 수 있게 설정해야 한다.1.1 Google Cloud 콘솔 접속, 프로젝트 생성https://cloud.google.com/cloud-console?hl=ko 구글 클라우드 콘솔에 접속 -> 내 콘솔로 이동 -> 좌측 상단 -> 새 프로젝트 만들기 에서 프로젝트를 생성한다. 필자의 경우 n8n-calendar-workflow 로 지정하였다. Google Cloud Console 내에서 API 및 서비스 메뉴로 이동한 뒤, Google Cal..
저번 포스팅에서는 Docker, Firecrawl, n8n 을 구축하고 Cursor 에 MCP 서버를 올리는 것 까지 했다. 이제 카카오API 와 n8n에 노드를 생성하여 카카오톡 나에게 보내기를 구현해보기로 한다. 1. Kakao 개발자 계정 설정1.1 카카오 개발자 앱 등록https://developers.kakao.com/ Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해 보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com 카카오 개발자 사이트에 접속하여 앱을 등록한다. 필자는 n8n-test 로 앱을 등록하였다.1.2 애플리케이션 등록 및 앱 키 발급 확인앱 -> 일반 -> 앱 키 -> RES..
Cursor 의 인기가 하늘을 찌르고 있는 와중에 Cursor 를 활용할 계기가 생겨 구축 겸 셋팅기를 적어보려고 한다. Cursor와 n8n, Firecrwal, 카카오API 를 활용한 MCP 구축하기이다.개인적으로 맥북에 로컬로 Docker 를 올리기 싫어서 라즈베리파이에 Docker 를 올려서 사용하였으나, 인터넷이 끊겼다가 다시 연결되는 과정에서 내부 IP 주소 변경으로 인해 외부에서 접근이 불가능한 상황이라 맥북에 Docker 를 올려보기로 한다.1. Homebrew Cask 를 활용하여 Cursor, Docker, n8n, Firecrwal 설치Homebrew는 MacOS 운영 체제에서 패키지 관리를 쉽게 할 수 있도록 도와주는 오픈 소스이다. Homebrew 를 사용하면 터미널을 통해 다양한..
Nest 를 간단하게 맛보기 위해 사용하는 도중 Spring Boot 와 같은 구조(controller/service/module)를 자동으로 생성해주는 CLI 가 있다고 하여 사용해보았다.1. Nest CLI 설치https://docs.nestjs.com/cli/overview Documentation | NestJS - A progressive Node.js frameworkNest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Orie..
채팅 서비스 발전에 대해 계속해서 작성했으나, 너무 중구난방 적으로 포스팅 되어 있는 것 같아, 현재까지 개발된 내용만을 작성한다.0. 개발 흐름도1. GCP에서 VM 인스턴스를 활용하여 node.js와 socket.io를 활용한 실시간 양방향 통신 구현 ↓2. GCP 리소스 문제로 인해 개인 서버로 이전 ↓3. 개인 서버 이전 과정에서 부족한 메모리와 저장장치 추가 ↓4. OKD를 활용하여 MSA 프로젝트 구성 ↓5. Kafka와 ScyllaDB를 추가 구성, Kafka Connect를 활용하여 ScyllaDB 연결 ↓6. 채팅방 CRUD API 구현 ↓7. node.js와 Kafka 연동 구현 ↓8. Redis를 활용한 오프라인 유저 구현 ↓9. Redis를 활용한 Pus..
처음 웹을 개발할 때 SSR 과 CSR 의 차이점을 명확하게 알지 않고 단지 UX 측면에서 CSR 이 더 유리하기 때문에 무조건 CSR 방식이 좋다고 생각하였다. 하지만 현 시점, SSR 방식의 웹페이지가 다시 사용되고 있다는 아티클을 접하고, 두 방식에 대해 정확하게 알아보기 위해 공부하고 작성하기로 한다. 이번 글에서는 SSR 과 CSR 의 차이점, 이를 이해하기 위해 필요한 개념 SPA 와 MPA 그리고 SEO 에 관해서 다뤄보기로 하고, 어떤 방법이 어떤 웹 개발시 적합한지에 대해 작성한다.0. SEO 알아보기SSR 과 CSR 을 알아보기 전에 SPA 와 MPA 를 알아야 하는데, SPA 와 MPA 를 공부하다보니 SEO 라는 용어가 나와 이것 또한 공부해보기로 한다.SEO (Search Engi..
여러가지 이것저것의 이유로 블로그 작성이 뜸했고 (변명), 꽤나 심오한 문제로 인해 프로젝트 아키텍쳐가 변경되었기 때문에 이제와서 글을 작성하게 되었다. 핵심적인 내용은 React-Native 기반의 EXPO 에서 React Vite 로 넘어오기로 결정하였고, 현재 '앱' 의 출시는 상대적으로 어려워 질 것 같다는 점이다.만약 EXPO 나 React native 검색을 통해 여기까지 찾아오게 되었다면 EXPO 사용은 다시한번 고민해봐야 할 것임을 장담한다 ...0. EXPO 에서 React Vite 로 변경된 이유초기 프로젝트 설계 단계에서 반응형 웹을 통해 웹과 앱에서의 UI/UX를 조절할 수 있었기 때문에, 전체적인 방향성을 웹앱(Web App) 형태로 잡게 되었다. 또한, 프론트엔드 개발 인력이 부..