본문 바로가기

분류 전체보기

(47)
NuxtJS(ReactJS) + Spring + JWT 토큰 발급 과정 및 보안 고려사항 웹 애플리케이션에서 JWT(JSON Web Token)를 활용하여 인증과 권한 부여를 처리하는 것은 매우 일반적입니다. 이 글에서는 NuxtJS와 Spring을 사용하여 JWT를 관리하는 과정과 관련된 보안 고려사항을 설명하겠습니다.1. JWT 토큰 저장 위치 및 보안 고려사항JWT 토큰은 크게 두 가지, 즉 accessToken과 refreshToken으로 나뉩니다. 각각의 저장 위치와 보안 측면을 고려할 때, 다음과 같은 옵션이 있습니다LocalStorage장점: 데이터 접근이 용이하여 편리합니다.단점: JavaScript에서 접근할 수 있어 XSS(Cross-Site Scripting) 공격에 취약합니다.Cookie장점: Secure 및 HttpOnly 속성을 설정하여 보안을 강화할 수 있습니다.단..
Spring Framework @Scheduled 사용 방법 @Scheduled 어노테이션은 Spring 프레임워크에서 일정 주기로 메서드를 실행할 때 사용됩니다. 1. Fixed Rate 설정 fixedRate 속성을 사용하여 메서드 호출 간격을 밀리초 단위로 지정합니다. import org.springframework.scheduling.annotation.Scheduled; public class MyScheduledTask { @Scheduled(fixedRate = 5000) // 5초마다 실행 public void myTask() { // 실행할 코드 } } 2. Fixed Delay 설정 fixedDelay 속성을 사용하여 이전 메서드 실행이 완료된 시점부터 다음 메서드 호출까지의 시간을 밀리초 단위로 지정합니다. import org.springfra..
Linux 루트 디렉토리 구조 Linux 시스템의 디렉토리 구조는 표준화되어 있으며, 대부분의 배포판에서 공통으로 사용됩니다. 일반적인 Linux 디렉토리 구조는 다음과 같습니다 /bin (바이너리) 이 디렉토리에는 시스템 부팅 및 복구에 필요한 기본 명령어들이 들어 있습니다. 일반 사용자와 시스템 관리자 모두가 사용하는 명령어들이 여기에 위치합니다. /boot (부트로더 파일) 시스템 부팅과 관련된 파일들이 저장되는 곳입니다. 커널 이미지 및 부트로더 설정 파일들이 여기에 위치합니다. /dev (디바이스) 시스템에서 사용되는 각종 장치 파일이 이 디렉토리에 있습니다. 이 파일들은 시스템에 연결된 각종 하드웨어를 나타냅니다. /etc (설정) 시스템 전체의 설정 파일들이 여기에 위치합니다. 네트워크 설정, 소프트웨어 구성 등을 담당하..
Docker 기본 명령어 정리 도커(Docker)는 컨테이너 기반 가상화 플랫폼으로, 애플리케이션을 패키징하고 배포하는 데 사용됩니다. 아래는 도커의 기본 명령어입니다. 도커 이미지 관련 명령어: docker pull [이미지명]: 도커 이미지를 다운로드합니다. docker images 또는 docker image ls: 로컬에 저장된 도커 이미지 목록을 확인합니다. docker rmi [이미지명]: 도커 이미지를 삭제합니다. 도커 컨테이너 관련 명령어: docker run [옵션] [이미지명] [명령] [인자]: 도커 컨테이너를 생성하고 실행합니다. docker ps: 현재 실행 중인 도커 컨테이너 목록을 확인합니다. docker ps -a: 모든 도커 컨테이너 목록을 확인합니다. docker start [컨테이너명 또는 ID]: ..
Lombok @Builder 사용 시 기본값 지정 방법 Lombok은 자바에서 반복적이고 지루한 코드를 줄이기 위한 라이브러리로, @Builder 어노테이션은 해당 클래스에 빌더 패턴을 자동으로 생성하는 데 사용됩니다. 그중 @Builder.Default 어노테이션은 @Builder와 함께 사용되어 생성된 빌더에 대한 기본값을 지정할 때 사용됩니다. 간단한 예제를 통해 설명하겠습니다: import lombok.Builder; import lombok.Builder.Default; @Builder public class MyClass { @Default private int myNumber = 42; // 기본값은 42로 설정됨 private String myString; public static void main(String[] args) { MyClass ..
[Spring Boot Reference V3.0.6] Spring Boot Messaging Messaging Spring Framework는 JmsTemplate메시지를 비동기식으로 수신하기 위한 완전한 인프라를 사용하여 JMS API의 단순화된 사용에서 메시징 시스템과의 통합을 위한 광범위한 지원을 제공합니다. Spring AMQP는 Advanced Message Queuing Protocol과 유사한 기능 세트를 제공합니다. RabbitTemplateSpring Boot는 또한 RabbitMQ 에 대한 자동 구성 옵션을 제공합니다 . Spring WebSocket은 기본적으로 STOMP 메시징에 대한 지원을 포함하고 Spring Boot는 스타터 및 소량의 자동 구성을 통해 이를 지원합니다. Spring Boot는 Apache Kafka도 지원합니다. 1. JMS 인터페이스 는 JMS 브로..
[Spring Boot Reference V3.0.6] Spring Boot IO IO 대부분의 애플리케이션은 어느 시점에서 입력 및 출력 문제를 처리해야 합니다. Spring Boot는 IO 기능이 필요할 때 도움이 되는 다양한 기술과의 통합 및 유틸리티를 제공합니다. 이 섹션에서는 캐싱 및 유효성 검사와 같은 표준 IO 기능과 스케줄링 및 분산 트랜잭션과 같은 고급 항목을 다룹니다. 또한 원격 REST 또는 SOAP 서비스 호출 및 이메일 전송에 대해서도 다룹니다. 1. 캐싱 Spring Framework는 애플리케이션에 투명하게 캐싱을 추가하기 위한 지원을 제공합니다. 핵심적으로 추상화는 메서드에 캐싱을 적용하여 캐시에서 사용 가능한 정보를 기반으로 실행 횟수를 줄입니다. 캐싱 논리는 호출자에 대한 간섭 없이 투명하게 적용됩니다. 주석 을 사용하여 캐싱 지원이 활성화되어 있는 한..
[Spring Boot Reference V3.0.6] Spring Boot Data Data Spring Boot는 SQL 및 NoSQL과 같은 여러 데이터 기술과 통합됩니다. 1. SQL 데이터베이스 Spring Framework는JdbcTemplate 직접 JDBC 액세스 에서 Hibernate와 같은 완전한 "객체 관계형 매핑" 기술에 이르기까지 SQL 데이터베이스 작업에 대한 광범위한 지원을 제공합니다 . Spring Data는 추가 수준의 기능을 제공합니다. Repository인터페이스에서 직접 구현을 생성하고 규칙을 사용하여 메서드 이름에서 쿼리를 생성합니다. 1.1. 데이터 소스 구성 Java의 javax.sql.DataSource인터페이스는 데이터베이스 연결 작업의 표준 방법을 제공합니다. 전통적으로 a는 일부 자격 증명과 함께 DataSourcea를 사용하여 URL데이터..

반응형