Programming 73

[AuthTech] Jwt 토큰 방식

JWT 토큰 인증 방식에서 Access Token과 Refresh Token은 서로 다른 목적을 가지고 있으며, 보안성과 사용자 경험을 균형 있게 유지하기 위해 함께 사용됩니다.🔐 Access Token의 역할주요 목적: 클라이언트가 인증된 사용자임을 증명하기 위해 서버에 요청할 때 사용됩니다.유효 기간: 짧습니다. 일반적으로 수 분 ~ 수십 분.내용: 사용자 정보(예: userId, role 등)와 권한이 포함되어 있으며, 서버는 이 토큰만으로 인증을 처리합니다 (DB 조회 없이).보안 측면:탈취될 경우 공격자가 그 시간 동안은 자유롭게 API를 호출할 수 있으므로, 짧은 만료시간이 중요합니다.보관 위치:웹에서는 일반적으로 메모리나 Secure HTTP-only Cookie에 저장 (XSS, CSRF..

[ntsysv] Red Hat 계역 서비스 관리 유틸리티 - ntsysv

ntsysv는 Red Hat 계열 리눅스(RHEL, CentOS, Rocky Linux 등)에서 런레벨(runlevel) 별 서비스 관리를 위한 텍스트 기반 유틸리티입니다. 서버 관리 차원에서 service enable/disable 처리를 편하게 관리할 수 있는 유용한 툴이라 소개할까 합니다.📌 ntsysv란?서비스를 켜고 끄는 기능을 제공하는 TUI(텍스트 기반 UI) 프로그램chkconfig의 대체 도구로 쓰였지만, 현재는 systemctl로 대체됨systemd가 도입된 최신 배포판(RHEL 7 이상, Rocky Linux 8 이상)에서는 사용되지 않음🛠️ ntsysv 활용법1️⃣ ntsysv 설치최신 배포판에서는 기본적으로 제공되지 않지만, CentOS 6/RHEL 6 이하에서는 다음과 같이 ..

Programming/etc 2025.03.06

[PM2] Process Manager 2

📌 개요PM2는 Node.js 기반의 프로세스 매니저로, 다양한 애플리케이션을 손쉽게 관리할 수 있도록 도와줍니다. 자동 재시작, 로그 관리 등의 기능을 제공하여 안정적인 서비스 운영이 가능합니다. 특히, 배포 및 운영 환경에서 프로세스 유지와 모니터링을 간편하게 할 수 있어 많이 사용됩니다.📌 활용1️⃣ 프로세스 관리PM2는 애플리케이션을 백그라운드에서 실행하고, 자동 재시작 및 다중 인스턴스 실행 기능을 제공합니다.pm2 start app.js --name myApp --instances 4 # 4개의 인스턴스로 실행pm2 restart myApp # 애플리케이션 재시작pm2 stop myApp # 애플리케이션 중지✅ 장점: 서버가 예기치 않게 종료되어도 자동으로 다시 실행됨.2️⃣ 프로세스..

Programming/etc 2025.03.06

[Security] JWT 기반 인증 vs 세션 기반 인증

JWT 기반 인증과 세션 기반 인증은 각각 다른 방식으로 사용자의 인증 정보를 관리합니다. 아래 표를 통해 주요 차이점을 정리하고, 각각의 장단점을 설명하겠습니다.🔹 JWT 기반 인증 vs. 세션 기반 인증 비교표비교 항목 JWT 기반 인증 세션 기반 인증인증 방식토큰 (JWT) 기반 인증서버 세션 저장 방식저장 위치클라이언트 (로컬 스토리지, 쿠키, 메모리)서버 메모리 또는 DB상태(State)Stateless (무상태)Stateful (유상태)서버 부담낮음 (세션 저장 필요 없음)높음 (서버에 세션 저장 필요)보안 방식서명된 토큰 검증 (HS256, RS256 등)세션 ID 검증 (세션 쿠키)토큰 크기비교적 큼 (Base64 인코딩된 JSON)작음 (세션 ID만 저장)확장성 (Scalability)..

[Security] CSRF란?

❓ CSRF 비활성화가 필요한 이유는?http.csrf().disable(); 설정이 필요한 경우는 주로 Session 기반 인증이 아닌 JWT 또는 API 서버 환경일 때입니다.🔹 CSRF(교차 사이트 요청 위조)란?사용자가 로그인한 상태에서 공격자가 악의적인 요청을 보내 사용자의 권한으로 서버에서 특정 작업을 수행하도록 유도하는 공격 방식입니다.예를 들어, 사용자가 은행 웹사이트에 로그인한 상태에서 악성 스크립트가 특정 계좌로 송금 요청을 자동으로 보내는 경우가 CSRF 공격입니다.🔍 CSRF 비활성화가 필요한 경우REST API 서버에서 JWT 또는 OAuth2를 사용한 인증REST API 서버는 기본적으로 Stateless(무상태) 하기 때문에 CSRF 보호가 필요 없음.JWT나 OAuth2 ..

[Linux] virtualbox에서 리눅스 서버 고정 ip 할당 및 사용

Rocky Linux 9.5 (Minimal) 환경에서 nmcli를 사용하여 IPv4를 고정값(Static IP)으로 설정하는 방법을 설명하겠습니다.📌 1. 현재 네트워크 인터페이스 확인먼저, 현재 활성화된 네트워크 인터페이스 목록을 확인합니다.nmcli device status출력 예시:DEVICE TYPE STATE CONNECTION enp0s3 ethernet connected enp0s3wlo1 wifi connected my_wifi 유선 네트워크: enp0s3Wi-Fi 네트워크: wlo1이제 사용할 유선 네트워크 인터페이스 이름(예: enp0s3)을 기억하세요.📌 2. 기존 DHCP 설정 제거먼저, 기존 네트워크 설정이 DHCP로 되어 있다면 ..

Programming/Linux 2025.02.07

[Docker] wrk(HTTP benchmarking tool) 웹 서버 성능 테스트 도구 docker compose 구축

wrk를 Docker Compose로 실행하기 위한 docker-compose.yml 파일을 작성하겠습니다.✅ docker-compose.ymlversion: '3.8'services: wrk: image: williamyeh/wrk container_name: wrk-benchmark network_mode: "host" # 호스트 테스트 환경 유지 entrypoint: ["wrk"] command: ["-t4", "-c100", "-d30s", "http://example.com"]⚙️ 설명image: williamyeh/wrk: wrk를 위한 경량화된 Docker 이미지 사용.container_name: wrk-benchmark: 컨테이너 이름 지정.entrypoint:..

Programming/Docker 2025.02.07

[Linux] Rocky 9.5 에 Docker 설치

Rocky Linux 9.5에 Docker를 설치하는 방법은 다음과 같습니다.1. 시스템 업데이트sudo dnf update -ysudo dnf install -y dnf-plugins-core2. Docker 저장소 추가sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoRocky Linux는 CentOS와 호환되므로 CentOS 저장소 사용 가능.3. Docker 설치sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin4. Docker 서비스 시작 및 부팅 시 자동 시..

Programming/Linux 2025.02.07

[SpringBoot] No serializer found for class *$*Dto and no properties discovered to create BeanSerializer 에러 원인

Spring Boot RestController 테스트를 하다 다음과 같은 에러가 발생하였다. 해결 : 에러 코드 중 No serializer found for class *$*Dto and no properties discovered to create BeanSerializer 에 대한 부분은 해당 DTO에서 변수를 getter 할 수 없다는 의미이므로 lombok 어노테이션을 추가해주거나 별도의 getter를 생성해주면 된다.

Programming/Spring 2022.07.24

[Docker] 도커 컨테이너 관리

docker 이미지로 부터 컨테이너를 생성한다. 이미지의 실체는 'Docker에서 서버 기능을 작동시키기 위해 필요한 디렉토리 및 파일들'이다. 구체적으로는 Linux의 작동에 필요한 /etc나 /bin 등과 같은 디렉토리 및 파일들이다. docker container create 명령을 실행하면 이미지에 포함될 Linux의 디렉토리와 파일들의 스냅샷을 취한다. 스냅샷이란 스토리지 안에 존재하는 파일과 디렉토리를 특정 타이밍에서 추출한 것이다. docker container create 명령은 컨테이너를 시작하지는 않는다. docker container create 명령으로 생성된 컨테이너 이미지의 상태는 'Created'이다. ■ 명령 옵션 -a, --attach list 표준입력(STDIN), 표준출..

Programming/Docker 2022.05.10