CS

    [Http] http req에서 userId 얻는법

    HTTP 요청에서 user ID를 얻는 방법은 인증 메커니즘에 따라 다양할 수 있습니다. 일반적으로 사용되는 몇 가지 방법을 소개해 드리겠습니다:JWT (JSON Web Token) 사용:JWT는 가장 흔히 사용되는 방법 중 하나입니다. 클라이언트가 로그인하면 서버는 JWT를 발급하고, 이후의 요청에서 클라이언트는 이 토큰을 함께 보냅니다.const jwt = require('jsonwebtoken');// 미들웨어 함수function authenticateToken(req, res, next) { const authHeader = req.headers['authorization']; const token = authHeader && authHeader.split(' ')[1]; if (token ..

    [DB] DATETIME 타입에 DEFAULT 값으로 현재 시간 입력

    [DB] DATETIME 타입에 DEFAULT 값으로 현재 시간 입력

    출처 : https://spiderwebcoding.tistory.com/3 [MYSQL] DATETIME 타입에 DEFAULT 값으로 현재 시간 입력개요 평소 DB 테이블을 생성할 때 날짜에 대한 부분은 Type 값을 DATETIME으로 주고 Service단 (또는 DB를 컨트롤하는 로직, 모듈) 에서 현재 날짜에 대한 부분을 변수에 담아 해당 변수를 INSERT 또는 UPDATspiderwebcoding.tistory.com  개요평소 DB 테이블을 생성할 때 날짜에 대한 부분은 Type 값을 DATETIME으로 주고Service단 (또는 DB를 컨트롤하는 로직, 모듈) 에서 현재 날짜에 대한 부분을 변수에 담아 해당 변수를INSERT 또는 UPDATE 해주었다.하지만, 현재 날짜로 들어가는 regD..

    [CS] 멘토링 24.8.27. // db, redis, kafka

    [CS] 멘토링 24.8.27. // db, redis, kafka

    * 세션dbrediselastic search => text, 자연어 검색, 게시글 검색mysql을 이용한 게시글검색구현 : 주로 like를 씀 => 한글지원x, 잘안돌아감 (-)게시글검색, 장바구니 기능은 es를 쓰자. * kafka, rabbitMQ, AWS SQS웹 구조웹서버(정적요청 처리, was 사망시 오류처리)was(동적요청 처리, db에 연결해서 데이터가져옴, 고급인력)db+ message Queue => 회원가입 email 발송 등 * 클라우드가 안전한 이유?구글 클라우드에서 오류나서 사과한뉴스가 있나? -> 그만큼 안전하다이유 : 분산저장, 3copy단점 : 백업서버는 I/O작업만 함 -> cpu가 놀고있음해결 : 기억이안남 ㅜㅜ * Line 동작원리redis => 실시간 msg 응답ha..

    [Linux] 원격 db 연결안됨 해결 //리눅스 포트 방화벽설정방법

    [Linux] 원격 db 연결안됨 해결 //리눅스 포트 방화벽설정방법

    * 원인 : 방화벽설정을 저장안함 * 해결 : accept 후 iptables-save로 저장함.  * 문제 : 서버 재부팅시 다시 초기화됨 * 해결 : iptables-persistent 사용* 결과 * 방법2쉴스크립트 작성 && 네트워크 시작될때 해당 스크립트 실행!이방법도 재밌을것같다.

    [DB] Connection Pool

    [DB] Connection Pool

    * 의문 : https://sidorares.github.io/node-mysql2/docs/examples/connections/create-connection createConnection | QuickstartFor queries please see the Simple Queries and Prepared Statements examples.sidorares.github.io공식문서 연결방법에 createConnection vs createPool 두 방법이 있길래, 비교해보고자 한다.* create Connection의 단점 db 연결비용은 매우 비싸다.이를 요청이올때마다 연결을시작하고요청이 끝나면 연결을 끊고 ... 반복하는게 너무 비효율적이고 비싸다. * 해결 : 커넥션 풀 * 개념커넥션 풀 ..

    [Linux] DB 설치 && 개발환경 문제, 개발워크플로우

    전제 : db는 원격 리눅스서버에 설치해야함* 방안 a : 리눅스 서버에 소스코드를 모두 옮기기* 방안 b : 개발은 로컬에서하고 db만 연결소스 코드 배치 방식 비교: a. 리눅스 서버에 JS 소스 코드를 모두 옮기는 방법: 장점: 애플리케이션과 데이터베이스가 같은 환경에 있어 네트워크 지연 최소화 배포 및 관리가 단순화됨 보안 설정이 더 쉬워짐 (외부에서 DB 직접 접근 불필요) 단점: 로컬 개발 및 테스트가 불편할 수 있음 서버 리소스 관리에 더 주의를 기울여야 함 b. 로컬에 JS 소스를 두고 리눅스 DB에만 연결하는 방법: 장점: 로컬 개발 및 테스트가 용이함 애플리케이션과 데이터베이스의 독립적인 스케일링 가능 개발 환경과 프로덕션 환경의 분리가 명확함 단점: 네트워크 지연으로 인한 성능 저하 ..

    [Linux] 원격으로 mysql 설치하기 && 로컬에서 원격으로 연결하기

    [Linux] 원격으로 mysql 설치하기 && 로컬에서 원격으로 연결하기

    * MySQL 설치 방법 1. MySQL 설치 sudo apt updatesudo apt install mysql-server 2. MySQL 포트 설정 (mysql 기본 포트는 3306임) sudo ufw allow mysql 3. MySQL 실행 - MySQL 실행sudo systemctl start mysql - 서버 재시작시 MySQL 자동 재시작 설정 방법 (권장사항)sudo systemctl enable mysql  4. root(관리자) 계정 비밀번호 재설정 - mysql 접속 sudo mysql -u root - root 계정 비밀번호 설정 ALTER USER 'root'@'localhost' IDENTIFIED BY '비밀번호'; - 변경된 비밀번호 적용하기 FLUSH PRIVILEGES..