기록은 기억을 이기고 시간보다 오래 남는다.
반응형

Computer Science 28

정보처리기사 암호화 알고리즘 정리

정보 보안의 핵심은 데이터를 안전하게 보호하는 것이다.암호화는 평문(Plaintext)을 암호문(Ciphertext)으로 변환하여 제3자가 내용을 파악할 수 없게 만드는 기술로,그 방식에 따라 대칭키 암호화, 비대칭키 암호화, 해시 함수로 구분된다.각 방식은 목적과 특성, 보안 수준이 다르며, 실제 시스템에서는 이들을 조합하여 사용한다.1. 대칭키 암호화 (Symmetric Key Encryption)개념대칭키 암호화는 암호화와 복호화에 동일한 키를 사용하는 방식이다.즉, 송신자와 수신자가 같은 비밀키(secret key)를 공유하고, 이 키를 사용하여 데이터를 암호화 및 복호화한다.따라서 이 방식의 보안성은 비밀키의 안전한 관리에 전적으로 의존한다.특징암호화 및 복호화에 동일한 키 사용연산 속도가 빠르..

Computer Science 2025.10.30

💡 UML(통합 모델링 언어) — 다이어그램 종류와 관계 한눈에 보기

UML이란 무엇인가?UML(Unified Modeling Language, 통합 모델링 언어) 는소프트웨어 시스템의 구조와 동작을 시각적으로 표현하는 표준 언어입니다.복잡한 시스템을 설계할 때, UML을 사용하면 개발자, 설계자, 분석가가시스템의 구조와 동작을 한눈에 이해할 수 있습니다.UML 다이어그램은 크게 두 가지로 나뉩니다.구조 다이어그램(Structural Diagrams)행위 다이어그램(Behavioral Diagrams)🧱 01. 구조 다이어그램 (Structural Diagrams)시스템의 정적인 구조, 즉 클래스, 객체, 컴포넌트 등의 구성 요소와 관계를 표현합니다.1️⃣ 클래스(Class) 다이어그램시스템의 정적 구조를 표현클래스, 속성, 메서드, 관계 등을 시각화클래스 간의 상속, ..

Computer Science 2025.10.23

🔍 화이트박스 테스트(White-box Testing)

1. 개요화이트박스 테스트(White-box Testing)는 소프트웨어 내부 구조, 설계, 코드 구현에 대한 철저한 분석을 통해 테스트 케이스를 설계하는 구조 기반(Structure-based) 테스트 기법입니다. 이는 소프트웨어가 요구된 기능을 정확하게 수행하는지를 외부 입력/출력만으로 검증하는 블랙박스 테스트와 달리, 내부 로직과 흐름의 정확성을 확인하는 데 중점을 둡니다.주로 개발자 관점에서 수행되며, 컴포넌트 수준의 단위 테스트(Unit Test)나 모듈 테스트에서 많이 활용됩니다.2. 화이트박스 테스트의 주요 목적소스 코드의 논리적 경로(Logical Path) 검증모든 실행 경로 또는 중요한 경로에 대한 테스트 수행코드의 잠재적 결함 및 비정상 흐름 조기 탐지**제어 구조(Control St..

Computer Science 2025.10.22

블랙박스 테스트(Black-box testing)

블랙박스 테스트란?내부 구조는 몰라도, 외부 동작만으로 소프트웨어를 검증하는 기법!소프트웨어 테스트에는 다양한 접근 방식이 있지만, 가장 기본적이고 널리 사용되는 테스트 기법 중 하나가 바로 블랙박스 테스트(Black Box Testing)입니다.블랙박스 테스트는 소프트웨어의 내부 구현을 고려하지 않고, 입력과 출력에만 집중하여 기능이 올바르게 작동하는지를 검증하는 방식입니다.사용자 관점에서 시스템이 요구사항에 맞게 동작하는지를 테스트하기 때문에 기능 테스트(Functionality Testing) 또는 사용자 테스트(User Testing)라고도 불립니다.🔍 블랙박스 테스트의 주요 특징내부 구조를 고려하지 않음코드나 로직을 몰라도 테스트 가능기능 중심의 테스트요구된 기능이 정상적으로 수행되는지 확인입..

Computer Science 2025.10.21

테스트 오라클 완전 정리: 개념부터 유형, 활용 방법까지

소프트웨어 테스트에서 테스트 오라클(Test Oracle)은 테스트 결과의 정확성을 판단하는 기준입니다. 프로그램이 예상대로 작동하고 있는지 확인하기 위해, 미리 정의한 기대값(예상 결과)과 실제 실행 결과를 비교하여 오류를 검출합니다..이번 글에서는 테스트 오라클의 개념, 주요 특징, 유형별 차이점, 그리고 테스트 자동화에서의 역할까지 정리해보겠습니다.테스트 오라클이란?테스트 오라클은 테스트 중 발생한 실제 결과가 참인지 거짓인지 판단하기 위한 기준값입니다. 다시 말해, 기대하는 결과와 실제 결과를 비교하여 오류를 찾아내는 역할을 합니다.💡 왜 중요할까요?테스트 오라클 없이는 테스트 결과를 어떻게 판별해야 할지 기준이 없어지므로, 테스트 자체의 신뢰성이 떨어질 수밖에 없습니다.테스트 오라클의 주요 특..

Computer Science 2025.10.21

SQL 기본 명령어 및 고급 사용법

SQL(Structured Query Language)은 데이터베이스를 관리하고 조작하는 데 사용되는 표준 언어입니다. 이 글에서는 SQL의 기본 명령어와 고급 기능에 대해 자세히 설명하겠습니다.1. 기본 SQL 명령어SELECT: 데이터를 조회하는 가장 기본적인 명령어입니다.예시: SELECT * FROM 테이블명;INSERT: 테이블에 새로운 데이터를 삽입합니다.예시:INSERT INTO 테이블명 (칼럼명1, 칼럼명2) VALUES (값1, 값2);INSERT INTO 테이블명 VALUES (값1, 값2, 값3);UPDATE: 테이블의 데이터를 수정합니다.예시:UPDATE 테이블명 SET 칼럼명 = 변경할 값;UPDATE 테이블명 SET 칼럼명 = 변경할 값 WHERE 조건;DELETE: 테이블에서 ..

[C++] 캐시란 무엇일까? cash (예시 코드 포함)

안녕하세요 준준입니다.오늘은 캐시에 대해서 알아보고 코드를 이용해서 실제 캐시가 어떻게 작동하는지 알아가는 시간을 가지도록 하겠습니다.캐시란 무엇일까?캐쉬는 저장된 데이터를 더욱 빠르게 접근하기 위해 cpu 안에 존재하는 메모리입니다.CPU가 메인 메모리를 읽거나 쓰고자 할 때, 먼저 그 주소에 해당하는 데이터가 캐시에 존재하는지 살피고 데이터가 존재한다면 직접 캐시를 읽고 존재하지 않는다면 메인 메모리에 접근합니다. 이 경우 CPU는 메인 메모리에 직접 접근해서 전송된 데이터를 캐시에 복사해 넣음으로써 다음에 CPU가 더 빠르게 데이터를 찾을 수 있게 도와줍니다. 캐시는 임시 저장소라고 생각하시면 됩니다.  캐시가 필요한 이유cpu는 매우 빠른 속도로 연산이 되는데 연산 속도보다 데이터를 가지고 오는 ..

그리디 알고리즘

그리디 알고리즘: 간단하고 효율적인 문제 해결 방식그리디 알고리즘은 각 단계에서 가장 좋아 보이는 선택을 하여 문제의 해결을 추구하는 방식입니다. 이 글에서는 그리디 알고리즘의 기본 개념, 특징 및 적용 예제를 살펴보겠습니다.그리디 알고리즘의 기본 원리그리디 알고리즘은 "매 순간 최적의 해"를 선택함으로써 전체 문제의 해답에 접근합니다. 이 접근법은 항상 최적의 결과를 보장하지는 않지만, 많은 경우에 충분히 좋은 해결책을 제공합니다.그리디 알고리즘의 특징속도: 다른 최적화 알고리즘에 비해 실행 속도가 빠르다는 장점이 있습니다.응용: 크루스칼 알고리즘(최소 신장 트리), 다익스트라 알고리즘(최단 경로 탐색) 등 많은 유명한 알고리즘들이 그리디 방식을 활용합니다.직관적 접근: 많은 그리디 알고리즘 문제들은 ..

너비 우선 탐색과 깊이 우선 탐색 with JS(BFS, DFS)

너비 우선 탐색(BFS)과 깊이 우선 탐색(DFS): 그래프 탐색 알고리즘 이해하기그래프 탐색은 복잡한 네트워크에서 특정 노드를 찾거나 경로를 분석할 때 사용하는 핵심 알고리즘입니다. 너비 우선 탐색(BFS)과 깊이 우선 탐색(DFS)는 이러한 탐색을 수행하는 두 가지 기본적인 방법입니다. 이 글에서는 각 알고리즘의 원리와 특징을 상세히 살펴보겠습니다.너비 우선 탐색 (Breadth-First Search, BFS)BFS는 그래프의 모든 노드를 체계적으로 탐색하는 방법 중 하나입니다. 이 방법은 '가장 가까운 노드'부터 차례대로 탐색하며, 다음과 같은 특징을 가집니다:큐(Queue) 사용: BFS는 탐색을 위해 FIFO(First-In-First-Out) 원칙을 따르는 큐 자료구조를 사용합니다.최단 경로..

다양한 정렬 알고리즘 이해 : 비교, 성능, 분석 with JS

다양한 정렬 알고리즘과 그 성능 비교정렬 알고리즘은 데이터를 특정 순서로 배열하는 프로세스입니다. 이 글에서는 다양한 정렬 알고리즘의 특징, 성능, 그리고 효율적인 사용 시나리오를 비교하여 살펴보겠습니다.정렬 알고리즘의 기본정렬은 컴퓨터 과학에서 가장 기본적인 문제 중 하나로, 정렬 기준은 사용자가 설정할 수 있습니다. 정렬 알고리즘은 크게 비교식 정렬과 분산식 정렬로 나눌 수 있습니다. 대부분의 프로그래밍 언어는 기본적인 정렬 함수를 내장하고 있습니다.비교식 정렬 알고리즘비교식 정렬은 요소들을 직접 비교하여 정렬 순서를 결정합니다.버블 정렬: 인접한 요소끼리 비교하고 교환하는 방식으로, 간단하지만 비효율적인 O(n^2)의 시간 복잡도를 가집니다.선택 정렬: 가장 작은 (또는 가장 큰) 요소를 선택하여 ..

반응형