본문 바로가기

728x90
반응형

전체 글

(254)
PostgreSQL: Int id 충돌 문제 # auto increasement error # duplicate key value violates unique constraint PostgreSQL에서 int pk를 auto increment (숫자 자동 증가)로 부여하는 경우,종종 존재하는 id로 row를 추가하려는 경우가 있다. 예시 오류SQLSTATE[23505]: Unique violation: 7 ERROR: duplicate key value violates unique constraint "pages_pkey"DETAIL: Key (id)=(4) already exists. -> id auto increment를 마지막 int부터 다시 시작하도록 설정 psql shell을 진입 - 해당 데이터 베이스 사용 (\c database_name) 1.현재 sequence value를 확인하자(참고: table 명이 pages 인 경우이다)SELECT last_value, i..
Prisma: Next.js Prisma 사용하여 SQL ORM npm install @auth/prisma-adapter @prisma/clientprisma-adapter, prisma/client를 설치 아래 명령어로 초기화를 진행npx prisma init .env에 DATABASE_URL 구성 아래는 예시DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public" prisma init을 통해 생기는 prisma/schema.prisma에 아래와 같이 구성generator client { provider = "prisma-client-js"}datasource db { provider = "postgresql" url = env("DATABASE_URL")..
Javascript: MutaionObserver # DOM 변경 감지 input, button 등 에서 addEventListener를 통해 이벤트를 감지할 수 있는 것처럼 MutationObserver class를 사용하여HTML 내의 구성(attribute, text, childList) 등이 바뀐 경우, 이를 감지하여 이에 따른 반응 로직을 구현할 수 있다. 실제 사용 코드const searchedBlockMemberUl = document.querySelector('#searchedBlockMemberUl');const observer = new MutationObserver((mutationsList) => { const blockUserInput = document.querySelector('#blockUser'); for (const mutation..
Cursor: Notepad 사용 VSCode 대신 Cursor를 사용중에 있다.Notepad 기능이 있는데 유튜브 등에서는 컴포저를 열어서 control panel 아이콘을 누르면 된다고하는데contrl panel이 없다 나는... 왜인지 모르겠네... 한참을 찾아 헤매던 중 Notepad를 작성하는 방법을 찾았다. Ctrl + Shift + p 를 누르면 IDE 상단 중앙에서 검색을할 수가 있는데, notepad를 검색해보자. Notepad: Create and Open New Notepad를 열자이렇게하고 저장한 후 chat을 해보자   글을 쓰고보니 Notepad가 왼쪽 사이드뷰에 있다....
Javascript: 클라이언트 단에서의 대용량 데이터 처리 성능 이슈 개선 # 비동기처리 # Chunk # requestAnimationFrame (rAF) 브라우저에서 request를 통해서 데이터를 받아와서 브라우저에 나타내는 과정에서데이터가 굉장히 큰 경우 병목현상이 발생했다.이 병목현상을 개선하는 예제를 정리 사용 예제  인풋창에서 텍스트를 입력하면 해당 텍스트를 포함하는 유저를 실시간 검색한다. 병목 발생 지점  1) request - SQL - response 과정에서 SQL문 자체가 오래걸림  2) javascript data handling     1)을 통해 받아온 데이터가 크다보니, javascript를 통해 UI에 데이터를 삽입하는 과정에서 병목 발생 해결방법  1) request 비동기 처리    - Ajax를 활용해서 request를 하고 있는데, request 및, response 처리 과정을 Promise를 사용하여 비동기처리로 변..
PHP: log monitoring # access.log # error.log # php-fpm.log PHP는 Nginx, Apache 등의 서버를 통해 실행되므로tail -f 를 통해 log를 추적하는게 일반적이다. Linux 기준, php7.4 버전 기준으로 로그를 모니터링Nginx 로그, php7.4-fpm 로그 # Nginxtail -f /var/log/nginx/access.logtail -f /var/log/nginx/error.log# php7.4-fpmsudo tail -f /var/log/php7.4-fpm.log
PHP: 특정 버전 설치 & Nginx 사용 # php7.4 # php-fpm # apache 제거 Linux (WSL)에서 특정 버전의 PHP를 설치하고Nginx를 사용해서 서버 구성하기 단계는 다음과 같다.1. 특정 버전의 php를 설치하기 위한 준비2. php 설치 (7.4 기준으로 설명)  - php와 관련 설치도 포함 (+ php-fpm, php-cli ...)3. nginx 설치 & 실행  - apache로 인해 실행이 안되면 '5. nginx 실행' 으로 진행4. apache 제거  - php를 설치하니 apache가 따라온다.  - 나는 원하지 않으니 apache를 제거하고 nginx를 사용5. nginx 실행  - 3에서 apache의 80 포트 사용으로 실패시 다시 실행  * FastCGI server 설정 활성화 PHP 설치 준비1. php 설치 준비sudo apt update 2...
Python: script내의 argument(인자) 받는 함수 실행하기 # python -m script_path method args 예제 코드 if __name__ == "__main__": import sys with Database() as db: if len(sys.argv) > 1: method_name = sys.argv[1] method = getattr(db, method_name, None) args = sys.argv[2:] # Get additional arguments if method is not None and callable(method): method(*args) # Pass the arguments to the method el..

728x90
반응형