자주 나온다고 느끼는 개념들
키(Key):
데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성
- 슈퍼키(Super Key)
- 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
- 릴레이션을 구성하는 모든 튜플에 대해 유일성 (Unique)은 만족하지만, 최소성(Minimality)은 만족하지 못함
- 후보키(Candidate Key)
- 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
- 유일성과 최소성을 모두 만졸함
- 기본키(Primary Key)
- 후보키 중에서 특별히 선정되 키
- 중복된 값과 NULL 값을 가질 수 없음
- 대체키(Alternate Key): 후보키 중에서 선정된 기본키를 제외한 나머지 후보키를 의미함
- 외래키(Foreign Key)
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미함
- 릴레이션 간의 관계를 표현할 때 사용함
연산자의 종류(우선순위 높은 순)
- 단항 연산자: !(논리 NOT: 참(1)이면 거짓(0)을, 거짓(0)이면 참(1)을 반환하는 연산자),
~(비트 NOT), ++(증가), --(감소), sizeof(기타) - 이항 연산자
- 산술연산자: *, /, %(나머지), +, -
- 시프트 연산자: <<, >>
- 관계 연산자: <, <=, >, >=, ==(같다), !=(같지 않다)
- 비트 연산자: &(비트 and), ^(비트 xor), |(비트 or)
- 논리연산자: &&(논리 and), ||(논리 or)
- 삼항(조건) 연산자: (조건식) ? (참) : (거짓)
- 대입 연산자: =, +=, -=, *=, /=, %=, <<=, >>= 등
- 순서 연산자: ,
VLAN
- Virtual Local Area Network
- 물리적 배치와 상관없이 논리적으로 LAN을 구성하여 Broadcast Domain을 구분할 수 있게 해주는 기술
- 접속된 장비들의 성능 향상 및 보안성 증대 효과가 있음
SQL Injection
- 임의로 작성한 SQL 구문을 애플리케이션에 삽입하는 공격
- 주로 웹 애플리케이션과 데이터베이스가 연동되는 부분에서 취약점이 발생함
- DBMS 종류에 따라 공격 기법이 다름
- 로그인과 같이 웹에서 사용자의 입력 값을 받아 데이터베이스 SQL문으로 데이터를 요청하는 경우 수행할 수 있음
암호화 기법
- 공개키 암호화 기법⭐
- 암호화키와 복호화 키가 다름⭐
- 비대칭 암호 기법이라고도 함
- 데이터를 암호화할 때 사용하는 공개키(Public Key)는 데이터베이스 사용자에게 공개하고, 복호화할 때의 비밀키(Secret Key)는 관리자가 비밀리에 관리함
- 장점: 키의 분배가 용이하고, 관리해야 할 키의 개수가 적음
- 단점: 암호화/복호화 속도가 느리며, 알고리즘이 복잡하고, 개인키 암호화 기법보다 파일의 크기가 큼
- ex) RSA 기법: 비대칭 암호화 방식으로 소수를 활용한 암호화 알고리즘
- 대칭 암호화 기법⭐
- 암호화키와 복호화 키가 동일함⭐
- 개인키 암호화 기법 또는 단일키 암호화 기법이라고도 함
- 장점: 암호화/복호화 속도가 빠르며, 알고리즘이 단순하고, 공개키 암호 기법보다 파일의 크기가 작음
- 단점: 사용자의 증가에 따라 관리해야 할 키의 수가 상대적으로 많아짐
- ex) DES, SEED, AES, ARIA, LAFSR, RC4
- 단방향 암호화 기법
- 해시 암호화 기법
- 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
- 해시 알고리즘을 해시 함수라고 부르며, 해시 함수로 변환된 값이나 키를 해시값 또는 해시키라고 부름
- 데이터의 암호화, 무결성 검증을 위해 사용될 뿐만 아니라 정보보호의 다양한 분야에서 활용됨
- SHA 시리즈, MD4, MD5, N-NASH, SHA-1, SNEFRU 등
Cocomo Model⭐⭐⭐
Cocomo의 소프트웨어 개발 유형은 소프트웨어의 복잡도 혹은 원시프로그램의 규모에 따라 분류할 수 있음
- 조직형(Organic Mode)
- 기관 내부에서 개발된 중·소규모의 소프트웨어
- 일괄 자료 처리나 과학 기술 계산용, 비즈니스 자료 처리용으로 5만(50KDSI) 라인 이하의 소프트웨어를 개발하는 유형
- 사무 처리용, 업무용, 과학용 응용 소프트웨어 개발에 적합함
- 반분리형(Semi-Detached Mode)
- 조직형과 내장형의 중간형
- 트랜잭션 처리 시스템이나 운영체제, 데이터베이스 관리 시스템 드으이 30만(300KDSI) 라인 이하의 소프트웨어를 개발하는 유형
- 컴파일러, 인터프리터와 같은 유틸리티 개발에 적합함
- 내장형(Embedded Mode)
- 최대형 규모의 트랜잭션 처리 시스템이나 운영체제 등의 40만(300KDSI) 라인 이상의 소프트웨어를 개발하는 유형
- 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적합함
소프트웨어 개발 모형
- 폭포수 모형(Waterfall Model)
- Bohem이 제시한 고전적 생명주기 모형
- 선형 순차적 모델이라고도 함
- 타당성 검토, 계획, 요구사항 분석, 설계, 구현, 테스트, 유지보수 단계를 통해 소프트웨어를 개발하는 모형
- 프로토타입 모형(Prototype Model)
- 사용자의 요구사항을 정확히 파악하기 위해 실제 개발될 소프트웨어에 대한 견본품(Prototype)을 만들어
최종 결과물을 예측하는 모형
- 사용자의 요구사항을 정확히 파악하기 위해 실제 개발될 소프트웨어에 대한 견본품(Prototype)을 만들어
- 나선형 모형(Spiral Model)
- 보헴(Bohem)이 제안한 것으로, 폭포수 모형과 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형
- 나선을 따라 돌듯이 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 완벽한 최종 소프트웨어를 개발함
점진적 모형이라고도 함 - 소프트웨어를 개발하면서 발생할 수 있는 위험을 관리하고 최소하하는 것을 목적으로 함
- 점진적으로 개발 과정이 반복되므로 누락되거나 추가된 요구사항을 첨가하고, 정밀하며, 유지보수 과정이 필요 없음
- ⭐⭐수행과정(반복): 계획 수립 → 위험 분석 → 개발 및 검증 → 고객 평가
- 애자일 모형(Agile Model) ⭐⭐⭐
- 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발과정을 진행하는 모형
- 어느 특정 개발 방법론이 아니라 좋은 것을 빠르고 낭비 없게 만들기 위해 고객과의 소통에 초점을 맞춘 방법론
기법
- LOC 기법: S/W 각 기능의 원시 코드 라인수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법
- 개발 단계별 인월수(Effort Per Task)기법: LOC 기법을 보완하기 위한 기법으로, 각 기능을 구현시키는 데 필요한 노력을 생명 주기의 각 단계별로 산정함
- 전문가 감정 기법: 조직 내에 있는 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법으로, 가장 편리하고 신속하게 비용을 산정할 수 있음
- 델파이 기법: 전문가 감정 기법의 주관적인 편견을 보완하기 위해 많은 전문가의 의견을 종합하여 산정하는 기법
'일지 > 취준일기' 카테고리의 다른 글
2025_02_02 취준일기 25일차 (0) | 2025.02.02 |
---|---|
2025_01_28 취준일기 24일차 (0) | 2025.01.28 |
2025_01_23 취준일기 22일차 (0) | 2025.01.23 |
2025_01_20 취준일기 21일차 (0) | 2025.01.20 |
2025_01_15 취준일기 20일차 (0) | 2025.01.15 |