전체 글 (260) 썸네일형 리스트형 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.. PostgreSQL: password 안전하게 사용하기 # PGPASSWORD # .pgpass # .env Python에서 프레임워크가 아닌 Script를 통해 sql문을 사용하는 상황에서create table sql을 작성할 때 DB 접근을 위해 PASSWORD가 필요하다. .env에 기록을 해두고 load_dotenv로 사용할 수 있는데,psql command에 .env에서 불러온 password를 넣는 방식은 보안에 취약할 수 있다.비밀번호 등이 명령어 히스토리에 남을 수 있기 때문이다. 예제코드를 통해 살펴보자import subprocessimport osfrom pathlib import Pathfrom dotenv import load_dotenvload_dotenv()def create_table(): db_user = os.getenv('DB_USER') db_name = os.get.. Python: script 실행시 상위 경로 인식 못하는 문제 # -m option - a.py- b_dir - b.py 위와 같은 파일 구조로 되어있고, b.py에서 a.py에 있는 a_url을 import 해서 쓰는 경우 # b.pyfrom a import a_url 위와 같은 상황에서 VS code의 'Run Python File' 버튼을 누르거나, python b.py 명령어로 실행시키면,No module named 'a' 라는 오류가 나온다.또는 상위 경로에서python a.b 명령어를 실행하면can't open file ... [Errno 2] No such file or directory 오류가 발생한다. 이런 경우에는 a.py가 있는 경로에서 -m 옵션을 주고 실행하면 된다.python -m a.b 이전 1 2 3 4 5 ··· 33 다음