프로그래밍 193

spring boot 이용한 JWT 로그인 로그아웃 토큰 유효성 검사

Spring Boot3.1 과  JWT를 이용하여 로그인 / 로그아웃 / 토큰 생성 / 토큰 검증 기능을 간다하게 구현해 봅니다.프로젝트 구성src/main/java/com/example/jwtapp/ ├── controller/AuthController.java ├── filter/JwtFilter.java ├── model/AuthRequest.java ├── model/AuthResponse.java ├── model/LogoutRequest.java ├── security/JwtUtil.java ├── security/SecurityConfig.java ├── service/TokenBlacklistService.java └── JwtAppAppli..

전문 mymq 릴레이소켓 연결시 이슈

이슈input 값 정상적으로 셋팅후 network > ws  에서 올리는것만 나오고 응답은 안받음다시 보내면 그 다음 응답 받음.그런데 그 후에 이상한 값이 계속 무한대로 떨어짐 해결맨앞 4바이트의 값이 잘못됬음정상 0000014931334331202020202020202020202020646f6d202020202057363131325330312020202020202020202020202020202020202020202020202020202020203030302e3030302e3030302e303030203030302e3030302e3030302e3030302030302d30302d30302d30302d30302d303020202053303138323835202020202020202020574820202..

스프링에서 빈(Bean)을 등록하는 두가지 방법

1. 어노테이션 기반 빈 등록스프링이 제공하는 특정 어노테이션을 클래스에 선언하여 빈으로 등록하는 방식입니다.대표적인 어노테이션:@Component: 일반적인 컴포넌트로 빈 등록.@Controller: MVC 패턴에서 컨트롤러 역할을 하는 클래스에 사용.@Service: 비즈니스 로직을 처리하는 서비스 레이어 클래스에 사용.@Repository: 데이터 접근을 담당하는 DAO 클래스에 사용.어노테이션 사용 시 스프링이 **컴포넌트 스캔(Component Scan)**을 통해 해당 클래스를 찾아 빈으로 등록합니다.예제@Componentpublic class MyComponent { public void doSomething() { System.out.println("Component 실행..

vscode 에서 devtools 정상적으로 작동하지 않을때(자동리로드 안될때)

처음엔 자동 리로드 잘 되다가 갑자기 안되고 여러가지 설정을 셋팅해도 안될때확장팩에 문제가 있는 듯.... build.gradleplugins { id 'java' id 'war' id 'org.springframework.boot' version '3.1.0' id 'io.spring.dependency-management' version '1.1.6'}group = 'com.coforward'version = '0.0.1-SNAPSHOT'java { toolchain { languageVersion = JavaLanguageVersion.of(17) }}configurations { compileOnly { extendsFrom annotationProcessor }}repositories { m..

[vscode] java17 + springboot3.1 + mysql8 + mybatis3.0 + themleaf

오랜만에 java 프로젝트 생성해봅니다.이번엔 intelliJ IDEA 대신 vscode 로 셋팅해 봅니다.Mysql 테이블 생성 및 데이터 insertCREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL);INSERT INTO users (name, email) VALUES('John Doe', 'john.doe@example.com'),('Jane Smith', 'jane.smith@example.com'),('Mike Johnson', 'mike.johnson@example.com'),('Emily Brown', 'emily.brown@e..

높은 응집력과 느슨한 결합

느슨한 결합모듈 간의 의존성(dependency)을 낮춰 각 모듈을 독립적으로 변경할 수 있도록 하는 원칙입니다. 예를 들어, 주문 처리 모듈이 결제 모듈과 느슨하게 연결되어 있다면, 결제 방식이 바뀌어도 주문 처리 모듈은 영향을 받지 않습니다.높은 응집도모듈 내부 요소들이 밀접하게 결합되어, 해당 모듈의 기능이 일관성 있게 수행하도록 하는 원칙입니다. 결제 모듈 내 모든 클래스와 함수가 결제 처리 작업에만 집중하도록 하는 것을 예로 들 수 있습니다.

프로그래밍 2024.10.29

Promise.all 모든 비동기 작업이 끝난후 작업 실행

Promise.all은 JavaScript에서 여러 개의 비동기 작업을 병렬로 처리하기 위한 메서드입니다.주요 특징병렬 실행: 여러 프로미스를 동시에 실행합니다배열 입력: 프로미스 배열을 인자로 받습니다단일 프로미스 반환: 모든 프로미스의 결과를 담은 배열을 반환하는 새로운 프로미스를 생성합니다전체 완료 대기: 모든 프로미스가 이행(fulfilled)될 때까지 기다립니다순서 보장: 결과 배열은 입력된 프로미스 순서를 유지합니다빠른 실패: 하나라도 거부(rejected)되면 전체가 즉시 거부됩니다성능 향상: 독립적인 비동기 작업들을 동시에 처리하여 전체 실행 시간을 단축합니다Promise.all은 여러 API 호출 결과를 한 번에 처리하거나, 독립적인 데이터 fetching을 병렬화하는 등의 상황에서 유용..

프로그래밍/Js 2024.10.25

Promise 와 async await 대해 자세하게 알아보자.

Promise는 JavaScript에서 비동기 작업을 처리하기 위한 객체입니다. Promise의 주요 특징과 기본 개념은 다음과 같습니다:상태(State)Promise는 세 가지 상태 중 하나를 가집니다. 이는 resolve 와 reject 호출함으로써 반영됩니다.Pending (대기) :  Promise가 생성된 초기 상태입니다. 비동기 작업이 아직 완료되지 않은 상태를 의미합니다. new Promise()로 Promise를 생성하면 이 상태가 됩니다. Fulfilled (이행) : 비동기 작업이 성공적으로 완료된 상태입니다. Promise 내부에서 resolve 함수가 호출되면 이 상태가 됩니다. .then() 메서드를 통해 처리 결과를 받을 수 있습니다. Rejected (거부) : 비동기 작업이 ..

프로그래밍/Js 2024.10.24