• 애자일(Agile) 방법은 사용자의 요구사항이 빈번하게 변경되는 문제점을 극복하기 위한 방법이다.
• UML 모델링은 요구분석, 설계, 구현 등의 소프트웨어 개발 과정에서 개발자 간의 의사소통을 원활하게 이루어지게 하기 위하여 표준화한 모델링 언어이다. 따라서 UML 다이어그램 모두가 요구사항 모델링에 활용되는 도구이다. 이 중 단계 다이어그램(Phase Diagram)은 UML 다이어그램에 존재하지 않는 다이어그램이다.
럼바우분석기법
① 객체(Object) 모델링 : 객체를 찾아내고 객체의 속성, 연산을 식별
② 동적(Dynamic) 모델링 : 객체 모형들의 행위, 상태, 조건을 파악
③ 기능(Functional) 모델링 : 입출력 결정, 자료 흐름도(DFD) 작성
① 객체지향 분석 : 프트웨어를 개발하기 위한 비즈니스(업무)를 객체와 속성, 클래스와 멤버, 전체와 부분 등으로 나누어서 분석
② 구조적 분석 : DFD, DD, Mini-Spec 사용
③ 기능적 분석 : 서비스 기능 위주 분석
④ 실시간 분석 : 통신의 송수신 데이터 분석
구현 단계 작업 절차 : 코딩 계획 → 코딩 → 컴파일 → 코드 테스트
📌 데이터베이스 설계 단계 개요
데이터베이스 설계는 요구 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현의 과정으로 이루어집니다.
단계설명주요 작업
1. 요구 조건 분석 | 사용자 요구사항을 분석하여 데이터 요구사항을 정의 | 데이터 수집 및 요구사항 정리 |
2. 개념적 설계 | 개념적 데이터 모델링 수행 | ER 다이어그램 작성 |
3. 논리적 설계 | 데이터 모델을 특정 DBMS에 맞게 변환 | 정규화 수행, 스키마 정의 |
4. 물리적 설계 | 저장 구조, 인덱스, 레코드 형식 등의 최적화 설계 | 저장 레코드 설계, 인덱스 설계, 접근 경로 설계 |
5. 구현 및 운영 | 실제 데이터베이스 구축 및 운영 | SQL을 활용한 DB 구현 |
🔹 물리적 설계(Physical Design)
▶ 물리적 설계는 데이터의 실제 저장 구조와 효율성을 고려하는 단계로, 아래 작업과 밀접한 관련이 있습니다.
1️⃣ 저장 레코드 양식 설계: 데이터를 저장하는 방식(고정 길이 vs 가변 길이 등)
2️⃣ 레코드 집중의 분석 및 설계: 데이터를 어떻게 그룹화하여 저장할지 결정
3️⃣ 접근 경로 설계: 인덱스, 해시, B-트리 등의 검색 최적화 기법 적용
📌 ACID 원칙 (Atomicity, Consistency, Isolation, Durability)
ACID 원칙은 데이터베이스 트랜잭션의 신뢰성을 보장하는 네 가지 속성입니다.
속성설명예시
1. 원자성 (Atomicity) | 트랜잭션의 연산은 모두 수행되거나, 하나도 수행되지 않아야 한다. | 송금 과정에서 돈이 보내지는 과정만 이루어지고 받는 과정이 실패하면 전체 트랜잭션이 롤백되어야 한다. |
2. 일관성 (Consistency) | 시스템이 가지고 있는 고정 요소(제약 조건 등)는 트랜잭션 전후로 항상 유지되어야 한다. | 계좌 잔액이 음수가 되는 등의 오류가 발생하지 않도록 데이터 무결성이 유지되어야 한다. |
3. 격리성 (Isolation) | 트랜잭션 실행 중에는 다른 트랜잭션이 영향을 주거나 받지 않아야 한다. | 여러 사용자가 동시에 같은 상품을 구매할 때, 재고가 꼬이지 않도록 트랜잭션 간 영향을 차단해야 한다. |
4. 영속성 (Durability) | 트랜잭션이 성공적으로 완료되면, 그 변경 사항은 영구적으로 반영되어야 한다. | 전원이 꺼져도 데이터베이스에 기록된 정보는 보존되어야 한다. |
① 셀렉션(σ) : 튜플의 수평적 부분 집합을 구한다.
② 프로젝션(Π) : 튜플의 수직적 부분 집합을 구한다.
③ Join(▹◃) : 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만든다.
④ Division(÷) : 모든 조건이 만족하는 튜플의 집합을 구한다
① 릴레이션의 각 행을 튜플(Tuple)라 하며, 예로 도서 릴레이션을 구성하는 튜플에는 도서번호, 도서명, 저자, 가격 등이 있다.
② 릴레이션의 각 열을 속성(Attribute)이라 하며, 하나의 튜플은 각 속성에서 정의된 값을 이용하여 구성된다.
도메인(Domain)은 하나의 속성이 가질 수 있는 같은 타입의 모든 값의 집합으로 각 속성의 도메인은 원자 값을 갖는다.
④ 릴레이션 스키마(Schema)는 릴레이션의 논리적인 구조를 정의한 것으로 릴레이션의 이름과 릴레이션에 포함된 속성들의 집합을 의미한다.
교착상태가 발생할 필요 충분 조건 4가지 : 상호배제(Mutual Exclusion), 비선점(Non Preemption), 환형 대기(Circular Wait, 순환 대기), 점유와 대기(Hold and Wait)
📌 IPv6의 주요 특징
IPv6(Internet Protocol version 6)는 IPv4의 한계를 극복하고 인터넷 환경을 개선하기 위해 개발된 차세대 인터넷 프로토콜입니다.
🔹 주요 특징
1. 128비트 주소 체계 | IPv4(32비트)보다 확장된 128비트 주소 공간 사용 |
2. 브로드캐스트(Broadcast) 제거 | IPv6에서는 브로드캐스트를 지원하지 않음, 대신 멀티캐스트(Multicast)와 애니캐스트(Anycast)를 사용 |
3. 보안 및 인증 강화 | IPSec(보안 확장 헤더) 지원으로 데이터 인증 및 암호화 기능 제공 |
4. 주소 자동 설정 | DHCP 없이도 자동으로 주소 할당 가능 (Stateless Address Auto-Configuration, SLAAC) |
5. 헤더 구조 간소화 | IPv4보다 간결한 헤더 구조로 라우팅 성능 향상 |
📌 TCP/IP 프로토콜에서 TCP가 속하는 계층
TCP(Transmission Control Protocol)는 트랜스포트 계층(Transport Layer)에 속합니다.
🔹 트랜스포트 계층의 역할
- 프로세스 간 통신을 담당 (즉, 응용 프로그램 간 데이터 전송을 책임짐)
- 데이터의 신뢰성 있는 전송 보장 (패킷 손실, 순서 오류 방지)
- 흐름 제어(Flow Control) 및 오류 제어(Error Control) 수행
- 다중화(Multiplexing) 기능 제공 (여러 프로세스가 네트워크를 공유)
🔹 트랜스포트 계층의 주요 프로토콜
TCP (Transmission Control Protocol) | 연결 지향적(3-way Handshake), 신뢰성 보장, 패킷 순서 유지 |
UDP (User Datagram Protocol) | 비연결형, 신뢰성 없음, 빠른 전송, 실시간 서비스 (예: 영상 스트리밍, VoIP) |
🔹 각 계층별 역할 및 비교
1. 데이터 링크 계층 | 물리적 장치 간 데이터 전송 (MAC 주소 사용) | Ethernet, Wi-Fi, PPP |
2. 네트워크 계층 | 패킷 라우팅 및 IP 주소 관리 | IP, ICMP, ARP |
3. 트랜스포트 계층 | 프로세스 간 데이터 전송 및 신뢰성 보장 | TCP, UDP |
4. 세션 계층 | 세션 관리 (연결 생성 및 유지) | SSL/TLS (일부 포함) |
② atof() : 정수 문자열을 실수(float)로 변환한다.
③ itoa() : 정수(int) 문자열을 2진, 8진, 10진, 16진 문자열로 변환한다.
④ ceil() : x보다 작지 않은 가장 작은 정수를 구한다.
① Locality : 프로그램이 실행할 때 기억 장치 내의 모든 정보를 균일하게 참조하는 것이 아니라 어느 한순간에 특정 부문을 집중적으로 참조하는 프로그램의 순차적인 성질로 한번 호출된 자료나 명령이 곧바로 다시 사용될 가능성을 말한다.
② Dead Lock : 복수의 프로세스가 가능하지 못한 상태를 무한정 기다리고 있는 상태를 말한다.
③ Thrashing : 동시에 여러 개의 작업이 수행되는 다중 프로그래밍 시스템 또는 가상 기억 장치를 사용하는 시스템에서 하나의 프로세스가 작업 수행 과정 중 지나치게 페이지 부재가 발생함으로 인하여 전체 시스템의 성능이 저하되는 현상이다.
📌 Java에서 변수와 자료형 관련 설명
🔹 (1) 변수(Variable)란?
- 값을 저장하는 메모리 공간
- 변수에는 특정 자료형(Data Type)이 지정되며, 해당 자료형에 따라 저장할 수 있는 데이터가 달라짐
- 변수를 선언할 때 자료형을 반드시 지정해야 함
🔹 (2) Java의 기본 자료형 (Primitive Types)
Java는 8가지 기본 자료형을 제공함.
byte | 1byte | -128 ~ 127 |
short | 2bytes | -32,768 ~ 32,767 |
int | 4bytes | -2,147,483,648 ~ 2,147,483,647 |
long | 8bytes | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
float | 4bytes | 소수점 포함 실수 (정확도 낮음) |
double | 8bytes | 소수점 포함 실수 (정확도 높음) |
char | 2bytes | 한 개의 문자 (Unicode 사용) |
boolean | 1byte | true 또는 false |
•해시 함수(해시 암호 방식) : MD4, MD5, SHA-1
•블록 암호 방식 : DES, SEED, AES
나선형 모형의 개발 순서 : 계획 수립 → 위험 분석 → 개발 및 검증 → 고객 평가
접근 통제 보안 정책
•DAC(임의 접근 통제) 정책
•MAC(강제적 접근 통제) 정책
•RBAC(역할 기반 접근 통제) 정책
🔹 스트림 암호화 vs 블록 암호화 비교
암호화 방식설명대표 알고리즘
스트림 암호(Stream Cipher) | 데이터를 한 비트 또는 한 바이트 단위로 암호화 | RC4, ChaCha20 |
블록 암호(Block Cipher) | 데이터를 고정 크기 블록 단위로 암호화 (예: 128비트) | AES, DES, Blowfish |
📌 대칭키 암호화 vs 비대칭키 암호화 비교
암호화 방식은 크게 대칭키(Symmetric) 암호화와 비대칭키(Asymmetric) 암호화로 나뉩니다.
대칭키 암호화 (Symmetric Encryption) | 암호화와 복호화에 같은 키(Key) 사용 | 빠르고 효율적 | AES, DES, 3DES, RC4 |
비대칭키 암호화 (Asymmetric Encryption) | 공개키(Public Key) 와 개인키(Private Key) 사용 | 보안성이 높지만 속도가 느림 | RSA, ECC, DSA |
세션 하이재킹 탐지 방법
• 비동기화 상태 탐지 : 서버와 패킷의 순서 번호를 주기적으로 체크
• ACK STORM 탐지 : 급격한 ACK 비율 증가 시 탐지
• 패킷의 유실과 재전송 증가 탐지 : 공격자는 중간자 공격을 하므로 패킷의 유실이 되고 응답시간이 길어짐을 탐지
• 예상치 못한 접속의 리셋 탐지 : 세션이 중단되거나 리셋 되는가를 탐지
🔹 공개키 암호화(Public Key Encryption) 개념
공개키 암호화는 공개키(Public Key)와 개인키(Private Key) 두 개의 키를 사용하는 암호화 방식입니다.
✔️ 송신자는 수신자의 "공개키"로 데이터를 암호화
✔️ 수신자는 자신의 "개인키"로 데이터를 복호화
✔️ 공개키는 여러 사람이 공유 가능, 개인키는 오직 본인만 보유
➡️ 대표적인 공개키 암호화 알고리즘:
- RSA
- ECC (Elliptic Curve Cryptography)
- DSA (Digital Signature Algorithm)
✅ 최종 정리
구분대칭키 암호화비대칭키 암호화
키 개수 | 1개 | 2개 (공개키 + 개인키) |
속도 | 빠름 🚀 | 느림 🐢 |
보안성 | 키 유출 위험 있음 🔑 | 보안성 높음 🔒 |
사용 예시 | VPN, 파일 암호화 | SSL, 전자 서명, 이메일 암호화 |
'IT' 카테고리의 다른 글
갤럭시S25 울트라 가격, AI 기능과 쿠팡 사전예약 혜택 비교 (1) | 2025.01.24 |
---|---|
미국 건설주 : 캐터필러, 매스코, 호턴 주가, 미국 주식 종목 (0) | 2023.05.02 |
KG모빌리티 주가 급등 : 현대차 기아 주식 전망, 국내 자동차 관련주 (0) | 2023.04.28 |
전기차 관련주 : 미국 주식 자동차 산업, 2차전지 관련주 모음 (1) | 2023.04.11 |
비트코인 관련주, 도지코인 리플 시세 전망, 화성 갈 끄니까 (0) | 2023.03.30 |