목록전체 글 (211)
각진 세상에 둥근 춤을 추자
스택 (Stack)이란? 스택(Stack)은 데이터 구조의 하나로, 데이터를 쌓아 올린 형태를 가진 구조이다. 기본적으로 후입선출 (LIFO, Last-In-First-Out) 원칙을 따르는데, 가장 나중에 추가된 데이터가 가장 먼저 제거된다는 뜻이다. 📌 스택의 주요 연산1. push: 데이터를 스택의 맨 위에 추가하는 연산2. pop: 스택의 맨 위에 있는 데이터를 제거하고 반환하는 연산3. peek (또는 top): 스택의 맨위에 있는 데이터를 제거하지 않고 확인하는 연산4. isEmpty: 스택이 비어있는지 확인하는 연산 📌 스택 활용 예시1. 웹 브라우저의 뒤로가기: 브라우저에서 페이지를 탐색할 때 방문한 페이지를 스택에 저장한다. 뒤로 가기를 누르면 가장 최근에 방문한 페이지부..
CBR (Case-Based Reasoning) 이란? CBR(Case-Based Reasoning)은 과거의 경험을 바탕으로 현재의 문제를 해결하는 기술 중 하나이다. CBR 시스템은 주로 과거의 사례를 데이터베이스에 저장하고, 새로운 문제가 발생할 때마다 기존 사례들과 비교하여 유사한 해결책을 찾는 방식으로 작동한다. 이러한 방식은 이전의 경험을 효율적으로 활용하여 빠르고 정확한 문제 해결을 가능하게 하며, 특히 반복적이고 유사한 문제를 해결하는 데 효과적이다. 네트워크 관리, 의료 진단, 고객 서비스 등 다양한 분야에서 이미 활발하게 적용되고 있다. CBR의 기본 개념 CBR의 주요 단계는 5가지로 나눌 수 있다. 1. 문제 인식: 새로운 문제가 발생하면, 그 문제에 대한 초기 설명을 통해 문..
아파치 카프카(Apache Kafka)란? 오픈 소스 분산 스트리밍 플랫폼으로 분산 메시징 시스템이다.현재 대규모 데이터 처리와 메시징 시스템으로 주로 사용되고 있고, 여러 시스템 간에 실시간으로 메시지를 전송하는 데 특화되어 있다. 카프카의 주요 특징 1. 분산형 시스템카프카는 분산형 시스템으로, 여러 서버에 걸쳐 데이터를 분산 저장하고 처리한다.2. 실시간 데이터 처리 카프카는 스트리밍 데이터를 실시간으로 처리할 수 있으므로 로그 수집, 데이터 파이프라인 구축, 실시간 분석 등에 용이하다.3. 내구성카프카는 데이터를 디스크에 기록하며, 복제 기능을 통해 장애 발생 시에도 데이터를 안전하게 보관한다. 4. 높은 처리량카프카는 초당 수백만 건의 메시지를 처리할 수 있는 높은 처리량을 보유한다. 카프..
NAVER SMS API 사용이 개인 회원은 불가능하다고 해 타 사이트 API를 사용하기로 했다. https://coolsms.co.kr/ 세상에서 가장 안정적이고 빠른 메시지 발송 플랫폼 - 쿨에스엠에스손쉬운 결제 전용계좌, 신용카드, 계좌이체 등 국내 결제 뿐만 아니라 해용신용카드로 한번의 카드번호 등록으로 자동충전까지 지원합니다. 전용계좌, 신용카드, 계좌이체 등 다양한 결제 방식coolsms.co.kr 회원 가입 후 본인인증을 하면 환경설정 > 발신번호 관리에 나의 번호가 등록된다. 개발/연동 > API Key 관리에서 새로운 API KEY를 생성한다. build.gradle에 CoolSMS API의 의존성을 추가한다.implementation 'net.nurigo:sdk:4.3.0' 단..
1. Visual Studio Code 설치https://code.visualstudio.com/Download Download Visual Studio Code - Mac, Linux, WindowsVisual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experience a redefined code editor, optimized for building and debugging modern web and cloud applications.code.visualstudio.com 2. C/C++ 확장 플러그 설치 3. Mingw..
암호 키 생성 방법으로는 다음과 같이 나눌 수 있다. 1. 난수발생기(RBG)의 이용2. 비대칭키 알고리즘의 키 생성3. 대칭키 알고리즘의 키 생성 난수는 암호화 키, 인증 토큰, 디지털 서명 등 다양한 보안 요소를 안전하게 보호하는 핵심 요소로 사용된다.난수 생성기는 이와 같은 난수를 생성하는 장치나 알고리즘으로, 보안 시스템에서 필수적인 구성 요소 중 하나이다.난수 생성기는 크게 진정한 난수발생기(TRNG)와 결정론적 난수발생기(DRBG)로 나눌 수 있다.그 중 결정론적 난수발생기(DRBG)에 대해 알아본다. 국내 표준인 KS X ISO/IEC 18031은 이러한 결정론적 난수발생기에 대해 다루고 있으며, 이는 NIST SP 800-90에서 정의한 DRBG와 동일한 기법을 사용한다. 용어설..
암호화 알고리즘 (Encryption Algorithm) 암호 알고리즘은 데이터를 암호화하고 복호화하여 외부의 공격이나 도청으로부터 보호하는 수단이다.암호 알고리즘을 사용하면 평문(Plaintext)을 읽을 수 없는 암호문(Ciphertext)로 변환하여 허가된 사용자만이 해당 데이터를 복호화할 수 있도록 만든다. 이를 통해 데이터의 기밀성(Confidentiality), 무결성(Integrity), 출처 인증(Authentication)을 보장한다. 먼저, 암호화와 관련된 용어 중에서 양방향, 단방향, 대칭, 비대칭은 암호화 방식의 특성과 목적을 이해하는 데 중요한 개념이다. 개념설명양방향 암호화암호화한 데이터를 복호화할 수 있는 방식. 보안이 필요한 데이터를 주고받을 때 사용된다. 단방향 암호화암호..
암호 키 관리 암호 키 관리는 암호화 시스템의 핵심 요소로 암호화 및 복호화를 위한 대칭키와 비대칭키 생성, 저장, 배포, 교체, 폐기 등의 전체 과정을 포함한다. 암호화 시스템의 보안성은 암호 알고리즘 자체 뿐만 아니라 암호 키를 안전하게 관리하는 방법에 크게 의존한다. 암호 키 관리에는 다음과 같은 주요 단계들이 포함된다. 1. 키 생성: 안전한 암호화를 위해 암호키를 생성하는 과정이다. 주로 난수 발생기를 사용해 예측 불가능한 키를 생성하며, 대칭키 또는 비대칭키로 사용할 수 있다. 2. 키 저장: 생성된 키를 안전하게 저장하는 과정이다. 키는 일반적으로 보안성이 높은 저장소에 저장하거나, 암호화된 형태로 파일에 저장된다. 3. 키 배포: 암호화 통신을 위해 키를 각 당사자에게 안전하게 전달하는..
암호키 생성 과정 1. 사용자 입력: 사용자가 저장하고자 하는 정보, 예를 들어 '12345'를 입력한다.2. 데이터 전송: 사용자는 입력한 정보를 서버로 전송한다. 이때 전송되는 정보는 원본 '12345'이다.3. 서버 암호화 처리: 서버는 수신한 원본 데이터 암호화 작업을 진행한다. 암호화 알고리즘을 통해 '12345'를 보안성이 높은 형태(예시: '$%^#@!@#!')로 변환한다.4. 암호화된 데이터 저장: 서버는 암호화된 값을 생성한 후, 해당 암호화된 값과 사용자를 식별할 수 있는 식별자를 함께 데이터베이스로 전송한다.5. 데이터베이스 저장: 데이터베이스는 암호화된 값과 사용자 식별자를 저장한다. 암호키 생성 방식 1. 난수발생기(Random Big Generator, RGB)를 사용하여 키를..
[이전 게시글 요약]2024.08.22 - [Java] - 개발자 도구 페이로드 평문 패스워드 노출: 클라이언트 측 RSA 암호화를 활용한 로그인 (1) 개발자 도구 페이로드 평문 패스워드 노출: 클라이언트 측 RSA 암호화를 활용한 로그인 (1)스프링 시큐리티 로그인 시 패스워드 노출 문제와 보안 위험성 웹 애플리케이션에서 스프링 시큐리티를 사용해 로그인 기능을 구현할 때, 사용자가 입력한 패스워드가 서버로 전송되기 전에 페this-circle-jeong.tistory.com 로그인 시 클라이언트 측에서 패스워드를 RSA로 암호화하여 서버에 전송하는 방식은 개발자 도구의 네트워크 탭에서 평문 패스워드가 노출되는 것을 방지하는 효과적인 방법이다. 이때 클라이언트가 서버에 공개키를 요청하는 시점은 "로그인..