전체 글
-
Node.js 애플리케이션 관리 프로세스 매니저, pm2란?Server/AWS,서버관리 2024. 12. 6. 09:46
pm2에 대해서 정리해두자.pm2란?Node.js 애플리케이션을 관리하기 위한 프로세스 매니저로, 특히 서버 애플리케이션의 안정성과 성능을 유지하기 위해 널리 사용된다. PM2는 애플리케이션의 실행, 관리, 모니터링 등을 쉽게 수행할 수 있도록 다양한 기능을 제공한다. 주요기능프로세스 관리Node.js 애플리케이션을 백그라운드에서 실행하고, 중단 없는 실행을 보장애플리케이션이 중단되거나 크래시 날 경우 자동으로 재시작애플리케이션의 실행, 중지, 재시작 등을 명령어로 간단히 제어로드 밸런싱, 클러스터 모드여러 CPU 코어를 활용할 수 있도록 클러스터 모드를 지원하여 Node.js 애플리케이션 성능 극대화클러스터 모드로 트래픽을 균등하게 분배.로그 관리실행 중인 애플리케이션의 로그를 관리하고 로그를 실시간으..
-
Cursor + Next.js 개발설정Tool/VSCode&Cursor 2024. 12. 4. 17:37
1. Next.js 프로젝트 생성하기공식사이트를 보고 생성한다.test 폴더를 생성하고 source 프로젝트를 생성한다.$ mkdir test$ cd test$ npx create-next-app@latest source --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter" 노드 버전 오류npx: installed 1 in 0.905sUnexpected token '??=' node를 최신 버전으로 변경하고 재시도 한다. 2. 서버 실행$ cd source$ cat package.json$ yarn dev scripts를 확인하고 서버를 실행해 본다. node 버전이 낮으면 아래와 같은 에러가 발생..
-
react-hook-form을 사용하여 배열 형태 input 사용Language/React 2024. 12. 2. 12:32
배열형태의 Input을 처리하는 방식을 정리해 둔다. ChatGPT 예시import React from "react";import { useForm, useFieldArray, Controller } from "react-hook-form";function MyForm() { // react-hook-form의 useForm 훅 사용 const { control, handleSubmit, register, formState: { errors } } = useForm({ defaultValues: { users: [{ name: "" }] // 기본값으로 하나의 입력 필드를 넣음 } }); // useFieldArray 훅을 사용하여 동적으로 필드 추가 및 제거 const { ..
-
selenium으로 크롤링하고 Slack에 메시지 전송Language/Python 2024. 11. 24. 16:57
시에서 운영하는 캠핑장들은 빈자리가 생겨서 알림을 받을수 없는것 같다, 수시로 새로고침해서 예약을 하다 보니 겁나 귀찮다.캠핑은 좋고 예약은 힘들고 알림이라도 받아서 하는게 어떨까? 그냥 크롤링으로 알림 받는걸 만들어 놓자.하지만 사용하진 않는다, 배치형태로 돌려야 할 것 같은데 서버를 어떤식으로 할지도 고민해봐야 할듯해서 일단은 대충 만들어 놓고 나중에 진짜로 사용할때 좀더 고급스럽게 커스터 마이징해서 사용하도록 하자. 참고로 python에서 slack에 메시지 보내는 방법은 이전 포스팅에 작성되어 있다. 1. 요구사항`금`,`토` (주말) 및 `공휴일`에 자리가 있다면 데이터를 추출빈자리가 있을때 알림이 오게하는게 1차 목표임으로 데이터를 가공하지는 않는다.추출한 데이터를 json형태로 Slack에 ..
-
파이썬으로 Slack 메시지 보내기Language/Python 2024. 11. 24. 15:39
1. Slack API Key 생성 (slack api)1.1. Create An App를 클릭한다. 2.2. From scratch 2.3. App Name 및 채널을 선택한다. 2.4. Basic Infomation 2.5. OAuth & PermissionsSlack에 메시지 전송을 위한 권한을 부여하도록 하자. 2.6. chat, channels 권한 추가Add an OAuth Scope버튼을 클릭하고 3가지 Scope을 추가해 주자.chat:writechat:write.publicchannels:history 2.7. OAuth Token 생성OAuth Tokens에서 건담봇 워크스페이스를 선택하고 토큰을 생성해주자. 2.8. OAuth Token을 생성하고 토큰 값을 복사한다. 2. Slac..
-
ChromeDriverManager install 에러Language/Python 2024. 11. 24. 14:42
캠핑을 좋아해서 캠핑장소의 빈자리가 나면 알려주는 크롤링을 Selenium으로 개발해 둔게 있었는데, 크롬 드라이버 다운로는 받는 과정에서 에러가 발생하였다. 에러 분석Selenium v4.6이상이 출시 되면서 webdriver_manager를 사용하여 ChromeDriver를 명시적으로 다운로드 할 필요가 없다고 한다.$ pip3 show seleniumName: seleniumVersion: 4.19.0Summary: Home-page: https://www.selenium.devAuthor: Author-email: License: Apache 2.0Location: /Users/deokjoonkang/.pyenv/versions/3.11.3/lib/python3.11/site-packagesReq..
-
타입스크립트 예외처리Language/React 2024. 11. 22. 16:10
jsx파일로 개발된 컴포넌트들을 타입스크립트로 변환하면서 일을 진행하고 있다.수많은 컴포넌트들을 한번에 타입스크립로 변환하기에는 무리가 있다.모두 한번에 바꾸기는 힘든데 하위 컴포넌트로 소속되어 타입 에러가 나는 경우가 있다.그럴때는 여러 고민하지 말고 가장 간단한 방법으로 예외처리를 해보자. (원래 일에 집중해야지!) 에러 발생 해결import LocationFilter from '../../../common/filter/LocationFilter';const AnyLocationFilter = LocationFilter as any;...... 해결 방법이야 여러가지가 있겠지만 일단 선택하고 집중하자, 지금 안바꾼것은 나중에 관련 작업할때 바꾸면된다. 우리에겐 오픈 일정이 중요하자나!!