Redo
데이터베이스가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작과 완료에 대한 기록이 있는 트랜잭션들의 작업을 재작업한다. 즉, 로그를 이용하여, 해당 데이터 항목에 대해 이전값을 이후 값으로 변경
Undo
데이터베이스가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작을 나타내는 Start는 있지만 완료를 나타내는 commit 기록이 없는 트랜잭션들이 작업한 내용들을 모두 취소한다
로그를 이용하여 해당 데이터 항목에 대해 이후 값을 이전 값으로 변경한다.
데이터 이상현상 (삽삭갱 = 삽살개)
삽입이상
자료를 삽입할 때 의도하지 않은 자료까지 삽입해야만 자료를 테이블에 추가가 가능한 현상
삭제이상
테이블에서 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 현상
갱신 이상
중복된 데이터 중 일부만 수정되어 데이터 모순이 일어나는 현상
TKIP
무선랜 보안에 사용된 웹 방식을 보완한 데이터 보안 프로토콜로, 임시 키 무결성 프로토콜이라고도 한다.
입력 키 길이를 128비트로 늘리고 패킷당 키, 키값 재설정 등 키 관리 방식 개선
Static Analysis
작성한 소스코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함 등을 호각인하는 코드 분석 도구
Dynamic Analysis
소스 코드를 직접 실행하여 프로그램의 동작이나 반응을 추적하고 보고하는 분석 도구, 스냅샷 생성 기능 포함
JUnit
kent beck과 Erich Gamma 등이 개발한 자바 프로그래밍 언어용 유닛 테스트 프레임 워크로 Unix계열에 한 종류이다.
ISMS
정보 자산을 안전하게 보호하기 위한 보호 절차와 대책으로 정보보호 관리 체계라고도 한다.
정부에서 정한 인증기관 및 심사기관에서 기업이 주요 정보자산을 보호하기 위해 수립·관리·운영하는 정보보호 관리체계가 인증 기준에 적합한지를 심사하여 인증을 부여하는 제도
한국 인터넷진흥원(KISA)에서 운영중
애플리케이션 테스트에 V모델 순서
요분설구 단통시인
(요구사항 -> 분석 -> 설계 -> 구현) \/ (단위테스트 -> 통합 테스트 -> 시스템 테스트 -> 인수 테스트)
ARP 스푸핑
로켈 네트워크 Lan에서 사용하는 ARP프로토콜의 취약점을 이용한 공격 기법으로 물리적 주소를 변조하여 다른 pc에 도달 해야하는 데이터 패킷을 가로채거나 방해
Factory Method 패턴
객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴으로, 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당한다. 다른 이름으로 가상 생성자 라고도 불린다.
결합(Coupling)도는 소프트웨어 설계에서 모듈간의 의존 정도를 나타내는 개념
내공외제스자 <- 강한 것부터 순서대로
내용결합도 : 내부 동작 의존
공통결합도 : 전역 의존
외부결합도 : 외부 프로토콜 함께 의존
제어결합도(Control coupling) : 제어권 의존
스탬프결합도 : 데이터 구조 의존
자료결합도 : 파라미터 정도로만 의존
상향식 통합 테스트
소프트웨어의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트 하는 기법이다.
테스트 드라이버
데이터의 입 출력을 확인하기 위해 생성해야하는 더미 모듈
파일 구조
파일을 구성하는 레코드들이 보조기억장치에 편성되는 방식을 의미하는 것으로,
순차, 색인, 해싱으로 구분한다(순색해)
테스트 케이스 순서
식별자 ID -> 테스트 항목 -> 테스트 조건 -> 테스트 데이터 -> 예상 결과
UML
클래스 다이어그램
UML 다이어그램 중 객체를 클래스로 추상화하여 표현하는 다이어그램
OSI 7 Layer
1. 물리 계층 비트 = 이진수니까 01만 사용함. 기계어로 직접 메모리에 접촉하는건 이진코드. 즉 물리계층
2. 데이터 링크 계층
3. 네트워크 계층
4. 전송 계층
5. 세션 계층
6. 표현 계층
7. 응용 계층 DES
IBM이 개발하고 NBS에 의해 미국 국가 표준으로 발표된 암호화 알고리즘. 지금은 AES로 대체되었습니다.\
56비트 지금은 취약해서 사용안함
에드 혹 네트워크
재난 및 군사 현장과 같이 별도의 고정된 유선망을 구축할 수 없는 장소에서 모바일 호스트만을 이용하여 구성한 네트워크
트랜잭션의 특징 (ACID 특성)
1. 원자성
- 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.
2. 일관성
- 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터 베이스 상태를 유지해야 한다.
3. 독립성
- 둘 이상의 트랜잭션이 동시에 실행될 경우 어떤 하나의 트랜잭션이 다른 트랜잭션의 연산에 끼어들 수 없다.
4. 지속성
- 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
트랜잭션의 연산 및 상태
Commit
- 한개의 트랜잭션에 대한 작업이 성공적으로 끝났고 데이터베이스가 일관된 상태에 있을 때, 갱신 연산이 완료된 것을 관리자에게 알려주는 연산이다.
Rollback
- 데이터 변경사항이 취소되어 데이터의 이전 상태로 복구
정규형의 종류
보안 및 암호화와 관련된 다음 설명에 해당되는 용어
AES
DES의 한계를 느낀 NIST에서 공모한 후 발표
블록 크기는 128비트
응집도의 종류
1. 기능적
모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행
2. 순차적
모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력데이터로 사용
3. 교환적
동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우
4. 절차적
모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 순차적으로 수행할 경우
5. 시간적
특정 시간에 처리되는 몇개의 기능을 모아 하나의 모듈로 작성할 경우
6. 논리적
유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우
7. 우연적
모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우\
가상회선방식
연결형 통신에서 주로 사용
데이터그램
비연결형 통신에서 주로 사용
행위 디자인 패턴
클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴
EX) Interpreter Observer Command등이 해당
로킹
데이터베이스의 병행제어 기법 중 하나, 접근한 데이터에 대한 연산을 모두 마칠 때까지 추가적인 접근을 제한함으로써 상호 배타적으로 접근하여 작업 수행
테스트 스텁
하향식 통합 테스트는 미완성이거나 문제가 있는 하위 모듈을 대체할 수 있는 테스트 스텁이 필요
테스트 드라이버
상향식 통합 테스트는 미완성이거나 상위 모듈을 대체할 수 있는 테스트 드라이버가 필요
단위 테스트
코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 수행하는 테스트, 모듈테스트 라고도 불림
통합 테스트
모듈들을 결합하여 하나의 시스템으로 완성시키는 과정에서의 테스트를 의미
IPC
모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합
대표적으로 공유 메모리 소켓 등이 있다.
EAI
기업 내 각종 애플리케이션 및 플랫폿 간의 정보 전달, 연계, 통합 등 상호 연동이 가능하게 해주는 솔루션으로
Point - to - Potin, HubSpoke, Message Bus, Hybrid 등의 다양한 방식으로 구축이 가능한 모ㅋ듈 연계 방식을 쓰시오
카디널리티, 디그리
카디널리티가 세로고 디그리가 가로다잉
연산
데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 도구에 해당
구조
논리적으로 표현된 객체 타입들 간의 관계로서 데이터의 구성 및 정적 성질을 표현한다.
임의 접근통제
데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하여 제어하는 방식 다른 사용자에게 허가할 수도 있다.
공통 결합도
지역 변수 등을 직접 참조하거나 수정
스탬프 결합도
배열이나 레코드 등의 자료 구조가 전달
외부 결합도
파라미터가 아닌 모듈 밖에 선언된 전역 변수를 사용하여 갱신하는 상호작용 방식
세션 하이재킹
세션을 가로채다 라는 의미로 정상적인 여결을 RST패킷을 통해 종료시킨 후 재 연결시 희생자가 아닌 공격자에게 연결하는 공격 기법
TCP 세션 하이재킹
서버와 상호간의 동기화된 시퀀스 번호를 갖고 인가되지 않은 기능을 이용하거나 중요한 정보에 접근
즉각갱신기법
트랜잭션이 데이터를 변경하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 DB에 그 내용을 반영하는 기법
스니핑
네트워크 중간에서 남의 패킷 정보를 도청하는 해킹 유형
NAT
네트워크 주소 변환 이라는 의미의 영문 3글자 약자이다.
1개의 정식 IP주소에 다량의 가상 사설 IP주소를 할당 및 연결하는 방식
샘플링 오라클
특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클
데이터베이스의 이상의 종류 3가지를 쓰시오
삭삽갱(삽살개) 삭제이상 삽입이상 갱신이상
Unix
밸 연구소가 MIT, General Electric 사와 함께 공동 개발한 운영체제이다.
트리 구조의 파일 시스템을 갖는다.
블록체인
P2P 네트워크를 이용하여 온라인 금융 거래 정보를 온라인 네트워크 참여자의 디지털 장비에 분산 저장하는 기술
프로세스 상태 전이도(빈칸 채우기)
데이터베이스 보안에서 가용성에 대해
인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있다는 보안 요건이다.
소프트웨어 공학에서 리팩토링을 하는 목적
프로그램을 쉽게 이해하고 수정하여 빠르게 개발할 수 있도록 하기 위함
프로토콜
심리학자 톰 마릴은 컴퓨터가 메시지를 전달하고 메시지가 제대로 도착했는지 확인하며, 도착안했을 경우 재 전송하는 일련의 방법을 프로토콜이라 정의하였습니다.
나누기 기호 (÷)
릴레이션 A, B가 있을 때 릴레이션 B의 조건에 맞는 것들만 릴레이션 A에서 분리하여 프로젝션을 하는 연산이다.
소프트웨어 개발에서의 형상 통제
형상 항목에 대한 변경 요구를 검토하여 현재의 기준선이 잘 반영될 수 있도록 조정
블랙박스 테스트
동치 클래스분해(동치 분할 테스트) / 경계값 분석
헝가리안 표기법
변수명 작성 시 변수의 자료형을 알 수 있도록 자료형을 의미하는 문자를 포함하여 작성
UI 직관성
누구나 쉽게 이해하고 사용할 수 있어야 한다.
UI 유효성
사용자의 목적을 정확하고 완벽하게 달성
생성자
객체 변수 생성에 사용되는 메소드
목표복구시간(RTO)
비상사태 또는 업무중단 시점부터 업무가 복귀되어 다시 정상 가동 될 때까지의 시간
AJAX
클라이언트와 서버 간 자바스크립트 및 XML을 비동기 방식으로 처리하며, 전체 페이지를 새로 고치지 않고도 웹페이지 일부 영역만을 업데이트 할 수 있도록 하는 기술
RollBack
트랜잭션이 실패한 경우 작업을 취소하고 이전 상태로 되돌리기 위한 명령어
IPSec
네트워크 트래픽에 대해 IP계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능 제공하는 네트워크 통신 규약
정적 테스트
애플리케이션을 실행하지 않고, 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위해서 사용하는 테스트
Observer
한 객체가 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가서 자동으로 내용이 갱신되는 방식
일대다의 의존성을 정의하는 패턴
SOAP, simple object Access Protocol
HTTP, HTTPS, SMTP등을 사용하여 xml 기반의 메시지를 네트워크 상에서 교환하는 프로토콜 헤더 바디 등이 추가된 xml 문서
SQL Injection
웹 응용 프로그램에 SQL 구문을 삽입하여 내부 DB서버의 데이터를 유출 및 변조하고 관리자 인증을 우회
개방형 링크드 데이터
Linked Data와 Open Data를 결합한 용어
UTI 사용 HTTP 접근 가능
풍부한 링크 정보
데이터베이스 구축까지의 과정
요구분석 ->개념적 설계 -> 논리적설계 -> 물리적 설계 -> 구현
소프트웨어 형상관리
Git Svn 등 문서 데이터 등을 관리하는 것을 지원하는 도구
FAN IN - FAN OUT 을 쓰시오 하면 숫자로 적어라
Solid 원칙
AAA : 인증(Authentication), 권한부여(Authorization), 계정관리(Accounting)
테스트 오라클 종류
구조가 복잡한 시스템을 개발하기 쉽도록 클래스나 객체를 조합하여 더 큰 구조로 만드는 패턴
1. 어댑터
- 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 사용가능하게 변환
- 클래스를 새로 만들기 싫은데 인터페이스가 일치하지 않을 때
2. 브리지
- 구현부에서 추상층을 분리하여 독립적으로 확장할 수 있도록 구성
- 기능과 구현을 2개의 별도의 클래스로 구현
3. 컴포지트
- 여러 객체를 가진 복합 객체와 단일 객체를 구분 없이 사용 다루고자 할 때
- 객체들을 트리 구조로 구성하여 복합 객체 안에 복합 객체가 포함되는 구조 구현 가능
4. 데코레이터
- 객체 간의 결합을 통해 능동적으로 기능들을 확장 가능
- 임의의 객체에 부가적인 기능을 추가하기 위해 다른 객체들을 덧붙이는 방식
5. 퍼싸드
- 복잡한 서브 클래스들을 피해 더 상위에 인터페이스를 구성 / 서브 클래스들의 기능을 간편하게 사용 할 수 있는 패턴
- 서브 클래스들 사이의 통합 인터페이스를 제공하는 Wrapper 객체가 필요하다.
6. 플라이웨이트
-인스턴스가 필요할 때마다 매번 생성하는 것이 아니고 가능한 한 공유를 통해 메모리를 절약
- 다수의 유사 객체를 생성하거나 조작할 때 사용
7. 프록시
- 접근이 어려운 객체와 여기에 연결하려는 객체 사이에서 인터페이스 역할을 수행하는 패턴이다.
- 네트워크 연결, 메모리의 대용량 객체로의 접근 등에 주로 이용한다.
소프트웨어 개발 과정에서 산출물 등의 변경에 대비하기 위해 필수적
소프트웨어 리사이클 기간 동안 개발되는 제품의 무결성 유지, 소프트웨어의 식별, 편성 및 수정을 통제하는 프로세스 제공
실수를 최소화하고 생산성의 최대화가 목적
종류 : CVS, SVN, Clear Case, Git
추상 팩토리 : 구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관, 의존하는 객체들의 그룹으로
생성하여 추상적으로 표현하는 패턴
빌더 : 작게 분리된 인스턴스를 건축 하듯이 조합하여 객체를 생성하는 패턴, 객체의 생성 과정과 표현 방법을 분리하고
있어, 동일한 객체 생성에서도 서로 다른 결과를 만들어 낼 수 있다.
팩토리 메소드 : 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴.
상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당
가상 생성자 패턴이라고도 한다.
프로토 타입 : 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴
싱글톤 : 하나의 객체를 생성하면, 생성된 객체를 어디서든 참조 할 수 있지만, 여러 프로세스가 동시에 참조할 수는 없다.
클래스 내에서 인스턴스가 하나뿐임을 보장하며, 불필요한 메모리 낭비를 최소화.
시스템을 접근하기 전에 접근 시도하는 사용자의 신원을 검증
검증된 사용자에게 어떤 수준의 권한과 서비스를 허용
사용자의 자원(시간, 정보, 위치 등)에 대한 사용 정보를 수집
나만 보는용
ls -l 명령어 사용해서 권한을 확인 가능
-rwxr-xr-x 1 pi pi 5720 jul 3 20:00 a.text
1. rwxr-xr-x 파일권한
2. 1 링크 수
3. pi 사용자(소유자)
4. pi 그룹
5. 5720 파일 크기
6 jul 3 20:00 수정시간
7. a.text 파일이름
rwxr-xr-x는 rwx (사용자 권한) / r-x (그룹 권한)/ r-x (다른 사용자(other) 권한) 순서로 구분 가능
rwx = read write execute 줄임말 (읽기, 쓰기, 실행) 권한
r-x = 그룹이나 다른 사용자는 읽거나 실행 권한이 있음
파일 권한 변경(chmod 명령어 사용)
더하기나 빼기 부호를 사용해서 권한 수정 가능
(소문자)
사용자 = u
그룹 = g
다른 사용자 = o
chmod o-r a.text = a.text 파일에 다른 사용자한테 읽기 권한 제거
chmod g+w a.text = a.text파일에 그룹한테 쓰기 권한 부여
여러개도 가능하다.
chmod ug-r a.text
chmod go+w a.text
chmod o+wxr a.text
대충 이런식
숫자로 한번에 권한을 변경할 수도 있다.
r = 4 / w=2 / x=1 만 기억하자.
2진수 비트 계산이라 이렇게 부여했댄다.
chmod 000 a.text
사용자, 그룹, 다른 사용자의 모든 권한 삭제
chmod 777 a.text
사용자, 그룹, 다른 사용자의 모든 권한 추가
chmod 700 a.text
사용자에게만 모든 권한 주고 나머지는 권한 삭제
chmod 744 a.text
사용자에게 모든 권한, 그룹과 다른 사용자에겐 읽기 권한만 부여
4+2+1 은 7이니까 대충 알거라 생각함
간단한 개념은
생성자는 객체를 생성할 때 호출되는 메서드
소멸자는 객체가 소멸될 때 호출되는 메서드
참고
https://learn.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/constructors
C# ) 스택(Stack), 힙(Heap) 간단 정리 (0) | 2022.07.26 |
---|---|
유니티 C#) Property(속성) 기능 - get/set 키워드를 사용 (1) | 2022.07.24 |
유니티 C#) static은 무엇인가. (0) | 2022.07.24 |
유니티 C#) Dictionary사용법과 ContainsKey 정리 (3) | 2022.07.23 |
유니티 C#) MonoBehavior(모노비헤이비어) 정리 (0) | 2022.07.23 |
IPointer Interface는 마우스 클릭이나 터치 반응을 감지하는 인터페이스이다.
UI에 Graphic Raycaster(그래픽 레이캐스터) 컴포넌트가 붙어있어야 사용가능하고
3D object 또는 2D object의 경우에는 콜라이더가 부착되어 있어야 인식이 가능하다.
레이캐스트에 ui이벤트를 합친듯함.
생각보다 쓸 곳이 간간히 있어서 올림
-인터페이스 제공 함수
1. IPointerDownHandler - OnPointerDown
- 마우스 클릭다운, 터치 다운 감지 이벤트
2. IPointerClickHandler - OnPointerClick
- 마우스 클릭했을때 이벤트
3. IPointerEnterHandler - OnPointerEnter
- 마우스가 범위에 들어왔을때 이벤트
4. IPointerExitHandler - OnPointerExit
- 마우스가 범위 밖으로 나갔을 때 이벤트
5. IPointerUpHandler
- 마우스 클릭 업
https://docs.unity3d.com/2018.4/Documentation/ScriptReference/EventSystems.IPointerClickHandler.html
사용법 참고