프로그래밍 197

Spring Boot와 HMAC을 활용한 데이터 서명 및 검증 구현

개요애플리케이션에서 데이터를 보호하고 무결성을 보장하기 위해 HMAC(Hash-based Message Authentication Code)를 활용할 수 있습니다. 본 글에서는 Spring Boot를 이용한 HMAC 기반의 전자서명 및 검증 API를 구현하는 방법을 설명합니다. HMAC 이란?HMAC은 키를 사용하여 데이터를 해싱하여 서명을 생성하는 방법입니다. HMAC을 사용하면 데이터가 변경되지 않았음을 검증할 수 있으며, 공유된 비밀 키를 통해 보안성을 유지할 수 있습니다.HMAC-SHA256 알고리즘을 사용하여 JSON 데이터를 서명하고 검증하는 API를 구현합니다. HMAC 서명 및 검증 API 구현import org.springframework.web.bind.annotation.*;impor..

프로그래밍 2025.03.19

TODO 관리 시스템

이 코드는 할 일(Task) 관리 시스템을 구현한 것입니다.Task 클래스: 개별 할 일 객체TaskList 클래스: 여러 개의 할 일 목록을 관리하는 리스트정렬 기능: 할 일 목록을 제목(title), 생성 날짜(date), 등록 순서(register) 기준으로 정렬https://www.youtube.com/watch?v=yMyDUpTjwCw&list=PLBA53uNlbf-ud8ttaC5QoC3XwJ04eOWbU&index=5 const Task = class { constructor(title) { this._title = title; this._date = Date.now(); this._isComplate = false; ..

프로그래밍/Js 2025.03.18

console.log 출력 내용을 <div>에 표시하는 방법

웹 개발을 하다 보면 console.log()를 사용하여 디버깅해야 합니다.하지만 모바일에서는 확인할 수 없어 불편할 때가 있습니다.이 글에서는 console.log의 출력을 웹 페이지의 특정 영역에 표시하는 방법을 소개합니다.기본적으로 console.log()는 브라우저의 개발자 도구에 출력됩니다.하지만 이를 가로채서 웹 페이지 내의 에 출력하도록 만들면, 개발자 도구 없이도 디버깅 정보를 쉽게 확인할 수 있습니다.주요 기능:console.log()의 기본 기능 유지div 안에 로그 출력객체(Object)와 배열(Array) 변환하여 가독성 높이기Promise 처리하여 해결된 값 출력 Console Output

프로그래밍/Js 2025.02.28

전자서명 / 검증 / 부인방지 개념정리

전자서명과 부인방지 처리는 보안 시스템에서 중요한 개념입니다.여기서는 비대칭 키(공개키/개인키)를 이용한 전자서명을 생성하고, 검증하는 방법을 Spring Boot 3.1(Java 17)과 Spring Security를 활용하여 구현하는 방법을 단계별로 설명해 드리겠습니다.. 전자서명 개념 정리전자서명은 개인키(Private Key)를 사용하여 데이터를 서명하고, 공개키(Public Key)를 이용해 서명을 검증하는 방식입니다.전자서명은 서명과정과 검증 과정으로 구분되는데 아래와 같습니다.- 서명할 때 중요한 개념키쌍(공개키/개인키) 생성원문(Message)을 해시(Hash) 값으로 변환 (SHA-256 등 사용)해시 값을 개인키(Private Key)로 암호화 → 전자서명(Signature) 생성서명출..

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..