※ 각 내용의 출처가 있는 경우, 관련 내용 안에 링크를 걸어 두었습니다.

💡 Java 싱글톤패턴 출력값

  1. main 함수에서 Connection 객체를 생성한다.
  2. get()으로 객체를 정의할 때, 처음에는 _inst가 null값으로 객체를 새로 생성해준다.
  3. 하지만 그 뒤에 conn2, 3의 객체는 conn1의 객체와 같은 객체를 불러온 것으로 count() 메소드가 수행될 때마다 값이 1씩 증가되므로 3의 값을 갖게 된다.
  4. 싱글톤 패턴으로 할당된 메모리가 동일하다.
  • 싱글톤 패턴?
    어플리케이션이 시작될 때 어떤 클래스가 최초 한 번만 메모리를 할당하고 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴이다.

💡 정보보호기술 AAA

AAA란, Authentication, Authorization, Accounting을 의미한다.

 

  • 시스템을 접근하기 전에 접근 시도하는 사용자의 신원을 검증  Authentication 인증
  • 검증된 사용자에게 어떤 수준의 권한과 서비스를 허용, Authorization 권한부여
  • 사용자의 자원(시간,정보,위치 등)에 대한 사용 정보를 수집, Accounting 계정관리

💡 GRANT

데이터 제어어(DCL)의 하나.

데이터베이스 사용자에게 권한을 부여하는데 사용하는 명령어.

 

    • 데이터 조작어 DML ➡ SELECT, INSERT, UPDATE, DELETE
    • 데이터 정의어 DDL ➡ CREATE, ALTER, DROP, RENAME, TRUNCATE
    • 데이터 제어어 DCL ➡ GRANT
    • 트랜잭션 제어어 TCL ➡ COMMIT, ROLLBACK, SAVEPOINT

💡 스푸핑 Spoofing

ARP 스푸핑

근거리 통신망 하에서 ARP 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법이다. 이 공격은 데이터 링크 상의 프로토콜인 ARP를 이용하기 때문에 근거리상의 통신에서만 사용할 수 있는 공격이다.

 

IP 스푸핑

IP 자체 보안의 취약성을 악용한 것. 자신의 IP 주소를 속여 접속한 뒤 DoS 공격을 할 수도 있다. 다른 컴퓨터에 접속하기 위해 합법적 사용자인 것처럼 위장하는 해킹기법

 

DNS 스푸핑

도메인을 IP주소와 연결하는 DNS 서버를 장악하거나 그 사이 트래픽을 스니핑하여 공격자가 설정한 IP주소로 이동하도록 조작하는 것.

💡 결합도 Coupling

절차적 프로그래밍에서의 모듈은 서브 루틴을 가지는 문장들을 가리킨다.

내용 결합도 > 공통 결합도 > 외부 결합도 > 제어 결합도 > 스탬프 결합도 > 자료 결합도 > 메시지 결합도

 

제어 결합도 (Control coupling)

어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도이다. 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상이 발생할 수 있다.

 

+ 응집도는 Cohesion

💡 OSI 7 Layer

네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것이다.

 

1계층 - 물리계층 Physical Layer

통신케이블, 리피터, 허브

전기적인 신호로 변환해서 데이터 전송, 통신단위는 비트, 1과 0

 

2계층 - 데이터링크계층 DataLink Layer

물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할

브리지, 스위치, 이더넷

Mac address 맥 주소를 가지고 통신

데이터 단위는 프레임(Frame)

 

3계층 - 네트워크계층 Network Layer

데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능, 라우팅

라우터, 주소부여, 경로설정

데이터 단위는 패킷(Packet)

 

4계층 - 전송계층 Transport Layer

오류검출 및 복구, 흐름제어와 중복검사를 수행

TCP, UDP

데이터 단위는 세그먼트(Segment)

 

5계층 - 세션계층 Session Layer

통신 장치 간 상호작용 및 동기화

연결 세션에서 데이터 교환과 에러 발생시의 복구를 관리

 

6계층 - 표현계층 Presentation Layer

데이터를 어떻게 표현할지 정하는 역할을 하는 계층

데이터의 부호화, 변화, 압축, 암복호화

 

7계층 - 응용계층 Application Layer

인터페이스 역할, 응용 프로세스 간 정보교환을 담당

💡 객체지향 연관성 or 관계성

객체지향 언어에서 객체와 클래스 또는 클래스 간의 상호 참조 관계를 표현하는 방식을 말한다.

 

Association 연관화

is-member-of

클래스와 객체의 참조 및 이용관계, 서로 상호 관련되어 있음을 의미, 링크

 

Classification 분류화

is-instance-of

객체 및 클래스의 인스턴스를 표현

동일한 형의 특성을 갖는 객체들이 모여 클래스를 구성하는 것

 

Aggregation 집단화

is-part-of

클래스들 사이의 전체 또는 부분 같은 관계를 나타내는 것

서로 관련 있는 여러 개의 객체를 묶어 한 개의 상위 객체 생성

여러 개의 속성을 묶어 사용자 정의형의 엔티티를 만드는 수단으로 사용

 

Generalization 일반화, Specialization 특수화

is-a

객체들의 공통적인 성질들을 상위 객체로 정의하고 특수화된 것을 하위 객체로 정의

💡 테스트케이스 구성요소

식별자 ID 테스트 항목 테스트 조건 테스트 데이터 예상결과
DS-45S-21 로그인 기능 사용자 초기 화면 사용자 아이디, 비밀번호 로그인 성공

 

💡 테스트 기법

화이트박스 테스트와 블랙박스 테스트로 크게 나눌 수 있다.

 

화이트박스 테스트

내부의 논리적인 모든 경로를 테스트해 테스트 케이스를 설계, 논리적 경로 점검

  • 기초 경로 검사
  • 제어구조검사 ➡ 조건검사, 루프검사, 데이터 흐름 검사

블랙박스 테스트

인터페이스에서 실시되며, 모듈 안에서 어떤 일이 일어나는지 알 수 없다.

  • 동치 분할 검사
    입력 조건에 타당한 입력자료와 타당하지 않은 값을 균등하게 테스트 케이스로 정하고 결과가 맞게 출력되는지 확인하는 방법
  • 경계값 분석
    입력조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용해 경계값을 테스트 케이스로 선정해 검사
  • 원인-효과 그래프 검사
    입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한다음 효용성이 높은 테스트를 선정해 검사하는 방법
  • 비교 검사
    여러 버전의 프로그램을 동일한 값을 주고 검사
  • 오류 예측 검사
    다른 검사로 확인이 안되는 오류를 보충적으로 확인하기 위한 검사

💡 암호화 알고리즘

대칭키 암호화방식, 비밀키, 개인키 ➡ 양방향

암/복호화에 같은 키를 사용

  • 블록암호
    DES, 3DES, SEED, AES, ARIA, IDEA
    DES 구 미국 표준 개인키 암호화 알고리즘 56비트 키
    SEED 한국 인터넷 진흥원에서 개발
    AES 미국 표준 기술 연구소에서 발표한 개인키 암호화 알고리즘
    ARIA SEED 이후 국가정보원에서 개발
  • 스트림암호
    RC4

비대칭키 암호화방식, 공개키 양방향

K1으로 암호화한 것은 K2로 복호화, K2로 암호화한 것은 K1으로 복호화

  • 인수분해 : RSA, Rabin
    RSA 큰 숫자는 소인수분해하기 어렵다는 것을 기반으로 만들어짐, 1978년 제안
  • 이산대수 : Diffie-Hellman, Elgamal, DSA, Schnorr
  • 타원곡선 : ECC

해시 알고리즘 ➡ 단방향

임의의 길이의 입력데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것을 의미

SHA, MD

 

국내 개발 암호화 알고리즘

ARIA, HIGHT, LEA, SEED

 

 

 


출처: https://q.fran.kr/%EC%8B%9C%ED%97%98/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0/2021%EB%85%84%203%ED%9A%8C

댓글