전체 글 561

알마리눅스 9에서 WebtoB 4.1 설치 및 오류 해결

1. WebtoB 4.1 설치 파일 다운로드 및 실행먼저 WebtoB 4.1 설치 파일인 WEBTOB4_1_SP9_Fix1_LinuxK2_6_x64.bin을 다운로드합니다. 이 파일을 실행하기 전에 실행 권한을 부여해야 합니다.chmod +x WEBTOB4_1_SP9_Fix1_LinuxK2_6_x64.bin이제 설치 파일을 실행합니다../WEBTOB4_1_SP9_Fix1_LinuxK2_6_x64.bin2. 설치 도중 발생하는 오류설치 중에 다음과 같은 오류 메시지가 출력됩니다:strings: '/lib/libc.so.6': No such fileLaunching installer...오류: 기본 클래스 cohttp://m.zerog.lax.LAX을(를) 찾거나 로드할 수 없습니다.원인: java.lang..

인프라 2025.03.26

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

정렬 - 선택정렬

선택 정렬(Selection Sort)이란?선택 정렬은 배열을 정렬하는 가장 기본적인 알고리즘 중 하나로, 다음과 같은 방식으로 동작합니다:배열에서 가장 작은 요소를 찾아 첫 번째 위치로 이동합니다.그다음, 두 번째 요소부터 남은 요소 중 가장 작은 값을 찾아 두 번째 위치로 이동합니다.이 과정을 반복하여 배열 전체를 정렬합니다.🔹 시간 복잡도최선, 평균, 최악의 경우 모두 O(n²)이유: 각 요소를 확인하며 남은 요소에서 최솟값을 찾기 때문   const selectionSort = (arr) => { const len = arr.length; for (let i = 0; i 첫 번째 반복문 (i)배열을 한 요소씩 순회하면서 정렬할 위치를 결정합니다.minIndex를 현재 i로 설정합니다. (..

알고리즘 2025.03.14

정렬 - 버블정렬(Bubble Sort)

버블 정렬(Bubble Sort)란?버블 정렬은 서로 인접한 두 개의 값을 비교하면서 정렬하는 방식으로, 작은 값을 왼쪽으로, 큰 값을 오른쪽으로 이동시킵니다.마치 거품(Bubble)이 물 위로 올라가는 것처럼 가장 큰 값이 반복적으로 오른쪽 끝으로 이동하므로 **버블 정렬(Bubble Sort)**이라고 불립니다.정렬 동작 과정예제 배열:[5, 3, 6, 4, 1]1회전(첫 번째 바깥 루프)각 숫자를 비교하여 큰 값을 오른쪽으로 이동[5, 3, 6, 4, 1] → [3, 5, 6, 4, 1] (5와 3 교환)[3, 5, 6, 4, 1] → [3, 5, 6, 4, 1] (5와 6 그대로 둠)[3, 5, 6, 4, 1] → [3, 5, 4, 6, 1] (6과 4 교환)[3, 5, 4, 6, 1] → ..

알고리즘 2025.03.14

리버스 프록시 서버 (Reverse Proxy)

리버스 프록시 서버(Reverse Proxy Server)는 클라이언트의 요청을 받아 적절한 백엔드 서버(예: 애플리케이션 서버, 데이터 서버 등)로 전달하고, 응답을 클라이언트에게 반환하는 역할을 하는 서버입니다.즉 DMZ 구간에 리버스 프록시 서버를 구성하고 백엔드 서버로 라우팅 하는 역할을 합니다.한개의 도메인으로 서로 다른 프로젝트 즉 다른 서버를 연결하고 싶을때 사용합니다.  [인터넷] │ ┌───────────┴───────────┐ │ 방화벽 (FW1) │ └───────────┬───────────┘ │ ┌─────..

인프라 2025.03.13

Apache HTTP 서버와 Tomcat WAS 서버 간의 로드 밸런싱 설정 (mod_jk 사용)

하나의 도메인에서 URL 패턴에 따라 트래픽을 여러 WAS 서버로 분배할 수 있습니다.예를 들어http://your-domain/abc와 같은 요청은 aa_ajp13_worker라는 Tomcat 서버로 전달되고http://your-domain/bb/something과 같은 요청은 bb_ajp13_worker라는 다른 Tomcat 서버로 전달됩니다.여기서 중요한 점은 JkMount 지시어로 URL 패턴을 정의하여 각 요청이 어떤 서버로 전달될지 결정할 수 있다는 것입니다.이 방식으로 여러 WAS 서버를 한 도메인 내에서 효율적으로 분배하고 관리할 수 있습니다.즉, 도메인 하나에서 다양한 URL 경로에 맞춰서 트래픽을 분산시킬 수 있어, 트래픽 분배 및 부하 분산이 가능합니다.1. mod_jk 설치 및 설정..

인프라 2025.03.07

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