목록전체 글 (213)
각진 세상에 둥근 춤을 추자
✨ 기획 순서 사업 분석기능 정의서 (주요 기능 정의)기능 명세서 (요구사항 정의/ 기술 요구사항/ 정책 정의서)개발 일정 수립스토리보드/화면 설계서 작성 📌 사업 분석 - 목적: 프로젝트의 목표와 비전을 설정하고 시장 조사 및 경쟁 분석을 수행 - 산출물 프로젝트 목표타겟 유저 정의경쟁사 분석 자료성공 기준 (KPI) 📌 기능 정의서 (주요 기능 정의) 작성 - 목적: 시스템이 수행할 주요 기능을 정의하고 각 기능 간의 관계와 흐름을 이해 - 작업 내용주요 기능 리스트 작성 각 기능 간의 상호작용 정의심플한 플로우 차트 작성 (이래도 되나 싶을 만큼 심플하게, 상세 스펙은 상세 기획서에) - 산출물기능 정의서플로우 차트 (간단한 흐름도) 📌 기능명세서 (요구사항 정의서) 작성 - 목적:..
📌 DDD란? DDD (Domain-Driven Design, 도메인 주도 설계): 도메인을 중심으로 설계를 진행하는 방법론이다(도메인: 소프트웨어가 해결하려고 하는 특정 문제 영역이나 비즈니스 컨텍스트를 의미한다.)DDD는 개발팀과 도메인 전문가 간의 협업을 강조하고, 비즈니스 로직을 정확히 반영한 시스템을 만드는 데 초점을 맞춘다. 기존의 전통적인 소프트웨어 설계 방식인 '계층적 구조'와의 차이 계층적 구조DDD 구조초점데이터 중심 설계 도메인 중심 설계 확장성간단하고 빠르나 확장에는 취약 최초 구현 시, 시간은 많이 소요되나 유연하고 확장에 용이복잡성구조가 단순구조가 복잡 적합한 프로젝트단순 CRUD 중심복잡한 비즈니스 로직 📌 DDD의 주요 개념 1. 유비쿼터스 언어 (Ubiquit..
스택 (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. 키 배포: 암호화 통신을 위해 키를 각 당사자에게 안전하게 전달하는..