본문 바로가기

728x90
반응형

분류 전체보기

(256)
홈 서버 구축 # 집에서 서버 구축 # KT # iptime 남는 PC를 통해 집에서 사용 가능한 서버를 구축해보자. 사용된 서버 종류 및 전체적인 과정을 요약해보면 다음과 같다. 서버 및 네트워크 정보  - 운영체제: Ubuntu  - Internet: KT 과정  1) ssh 접속  - Ubuntu에 ssh 설치  - 방화벽 설정 및 22 포트 허용  - 포트포워딩    공용 IP port 22 -> 서버 컴퓨터 IP (사설 IP) port 22  상세 설명  Ubuntu에 ssh 설치# installsudo apt updatesudo apt install openssh-server# Verify SSH is runningsudo systemctl status ssh 방화벽 설정 및 22 포트 허용sudo ufw allow ssh 포트포워딩  모뎀(공용 IP)..
git: git reflog # 지워진 커밋 복구하기 commit 내역을 로컬에서도 지우고, force push 등으로 remote에도 지워진 경우에,git 에서 해당 커밋을 복구하는 방법 git reflog -> 해당 명령어를 통해 commit 내역들을 볼 수 있다 (지워진 커밋도) -> 원하는 커밋을 찾았다면 commit hash를 통해 해당 커밋 내역으로 git reset --hard 이제 커밋을 복구하면 된다. 참고 블로그:https://junvelee.tistory.com/25
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

728x90
반응형