[정처기]정보처리기사 실기정리4

<각종 공격기법>

1. 웹 공격

  • XSS : Cross Site Script :: 웹페이지 열람시 바로 악성스크립트 실행
  • Drive By Download : 불특정 웹 서버&웹 페이지에 악성스크립트 심고 거기 방문하는 사람 멀웨어 서버로 이동시켜 감염
  • 워터링 홀 : 특정인을 목표로 자주가는 사이트에 팝업 띄워 클릭 유도 -> 클릭시 악성코드 감염
  • CSRF : Cross Site Request Forgery :: 자신의 의지와 상관없이 특정 사이트에 공격자가 의도한 행위 요청
  • SQL Injection : 악성 쿼리 실행(Error-Based~:오류뜨면 악성쿼리 실행/Blind~:참 거짓으로 악성쿼리 실행)

2. 해킹 프로그램

  • 트로이목마 : 겉보기엔 정상프로그램 같지만 실행시 악성코드 실행
  • 웜 : 스스로 복제/스스로 실행
  • 바이러스 : 다른 프로그램에 기생하여 실행
  • 악성봇 : 스스로 실행 X. 해커의 명령에 의해 실행

3. 각종 웨어 : 멀크그랜

  • 멀웨어 : 매크로/스크립트 형태가 아닌 데이터 형태의 악성코드/악성프로그램의 총칭(APT공격의 재료)
  • 크라임웨어 : 키로거 등 불법 프로그램의 총칭(공격용 툴킷)
  • 그레이웨어 : 바이러스는 없는데, 사람을 귀찮게 하는 프로그램의 총칭(풀려면 클릭 100번)
  • 랜섬웨어 : 폴더에 락걸고 풀려면 돈내놔(Drive By Download와 워터링 홀을 주로 이용하여 전파)

3. PW 크래킹 : 사패무레인

  • 사전대입공격 : 가능성 높은 ID/PW 사전을 만들어 대입
  • 패스워드 하이브리드 공격 : 사전대입 + 무차별대입
  • 무차별대입공격 : 그냥 막 넣어
  • 레인보우 테이블 : PW별 해시값을 만들어 역으로 해시값을 크래킹하여 PW 찾기

4. DoS 공격

: Denial of Service :: 공격자가 특정 서버에 수많은 접속 시도를 만들어 자원을 고갈 시켜 서비스 이용 불가

  • SYN Flooding : TCP 통신시 SYN 패킷 ∞ -> 자원고갈
  • 랜드어택 : 출발지 IP와 목적지 IP를 같게 하여 무한루프 돔 ∞ -> 자원고갈

5. DDoS 공격 : 4HTTP+2H+1D

: Distributed DoS :: 공격자가 수많은 감염 호스트(좀비PC)를 만들고 이를 이용해 특정 서버에 DoS 공격

  • Slow HTTP Header DoS(Slowloris) : 헤더의 끝을 알리는 개행문자열 미전송 -> 자원고갈
  • Slow HTTP POST DoS(RUDY) : 헤더의 Content-Length ∞, 메시지바디 1/∞ -> 자원고갈
  • Slow HTTP Read DoS : HTTP 패킷 ∞ -> 자원고갈
  • HTTP GET Flooding : GET 메시지 ∞ -> 웹서버 자원고갈
  • Hash DoS : POST 방식으로 해시충돌 ∞ -> 자원고갈
  • Hulk DoS : URL 바꿔가며 GET 요청 ∞ -> 자원고갈(디도스대응장비 소용X)
  • DRDoS : Reflection DDoS :: 반사 서버를 이용해 DDoS 하는 것(디도스보다 공격적/추적 어려움)
 

 

6. 네트워크 공격

  • Sniffing : 직접공격 X, 네트워크 상 데이터/패킷 훔쳐보기
  • Snooping :(≒Sniffing) 직접공격 X, 네트워크 상 정보 훔쳐보기
  • Spoofing : 허가받은 주소나 사용자인 것처럼 위장하여 접근제어를 우회하거나 정보 탈취
  • IP Spoofing : 해커 IP -> 호스트 IP로 속여 정보 탈취
  • ARP Spoofing : ARP 프로토콜의 취약점을 이용하여 해커 MAC주소 -> 호스트 MAC주소로 속여 정보 탈취
  • ICMP Redirection : ICMP Direct 메시지를 속여 정보 탈취
  • TCP 세션 하이재킹 : Victim의 시퀀스넘버를 해킹해서 시스템에 ARK Storm을 야기시키는 TCP 세션공격
  • 죽음의 핑(PoD) : Ping of Death :: ICMP 패킷 크기 ∞ -> IP 단편화를 발생시켜 버퍼 오버플로우 발생

7. 시스템 보안공격 : 루포레키스

  • 루트킷 : 침입 사실 숨기고 root권한 뺏어서 자체적으로 로그 지우는 악성 프로그램 모음
  • 포맷스트링 공격 : 검증없이 함수 Input으로 외부입력값(Format String)넣어 내부로직 다털림
  • 레이스컨디션 공격 : 악성프로그램으로 심볼릭 링크 걸기
  • 키로거 공격 : 키보드 털기
  • 스택 버퍼 오버플로우 공격 : 스택영역에 할당된 버퍼보다 큰 값 입력 -> 복귀주소 변경 -> 악성코드 실행하는 기법
  • 방어방법 1) 스택가드(가카라고 외우셈) : 카나리(Canary)라고 하는 스택가드를 값과 복귀주소 사이에 넣고 함수실행 -> 종료 후 카나리 값이 변경되었으면 Overflow로 간주 -> 복귀주소 출력 X
  • 방어방법 2) 스택쉴드 : Global RET이라고 부르는 스택쉴드에 복귀주소값 저장 -> 함수 실행 -> 함수 종료 후 복귀주소값과 RET 값을 비교하여 다르면 Overflow 간주 -> 프로그램 중단

8. 낚시 공격 : 이파타스큐스

  • 이블트윈 : 공공장소 와이파이 낚시
  • 파밍 : 가짜 웹사이트 낚시(URL주소 같아도 걸림)
  • 타이포스쿼팅 : URL주소 유사하게 하는 가짜 웹사이트 낚시
  • 스미싱 : 문자메시지 낚시
  • 큐싱 : QR코드 낚시
  • 스피어 피싱 : 메일 낚시

9. 기타 보안공격 : 사역공제스A

  • 사회공학 : 상대방의 깊은 신뢰를 바탕으로 정보 훔치는 비기술적 공격
  • 역공학 : 완성품 역으로 뜯어서 소스코드 훔치는 공격
  • 공급망공격 : 공급망(개발사)을 털어버리기
  • 제로데이공격 : 보안취약점 발표 직전 끝물까지 털기
  • 스턱스넷 : 지멘스사 원자력 발전소 HW 해킹
  • APT : Advanced Persistent Threat :: 특수목적조직이 타겟을 끈질기게 터는거

 

<각종 방어기법>

1. 네트워크 보안솔루션

  • NAC : Network Access Control :: 내부 네트워크 접속 시도시, 바이러스, 웜, 불법사용자 등 위협으로부터 보호해주는 네트워크 제어 통제 장비/시스템
  • 방화벽 : 외부 불법침입 & 내부 불법 유출 방지
  • 웹방화벽(WAF) : Web Application Firewall :: 웹 애플리케이션에 특화된 방화벽
  • IDS : Intrusion Detection System :: 침입 실시간 탐지 시스템
  • IPS : Intrusion Protection System :: 공격/침입 실시간 차단 시스템
  • WIPS : Wireless IPS :: 무선단말기/공유기용 IPS
  • UTM : Unified Threat Management :: 각종 보안솔루션을 한번에 제공하는 보안패키지
  • VPN : Vitual Private Network :: 인터넷 등 공용망을 암호화 터널링으로 전용망 사용하는 효과

2. 콘텐츠 보안 솔루션

  • DLP : Data Loss Prevention :: 콘텐츠 불법유출되는거 모니터링 및 차단 솔루션
  • DRM : Digital Right Management :: 콘텐츠 권한 관리(클리어링하우스, 패키저, DRM컨트롤러, 보안컨테이너)

3. 기타 보안/방어 솔루션

  • 코드난독화 : 역공학 막기 위해 일부러 소스코드 알아보기 힘들게 바꾸는 기술
  • 바이너리난독화 : 역공학 막기 위해 바이너리로 제공하는 기술
  • 사이버 킬체인 : 록히드마틴(LM)에서 만든 7단계 APT 공격 방위 시스템
  • 킬스위치 : 스마트폰 분실시 자폭시켜버리는 기능(원격 잠금, 개인정보삭제 등)
  • 스팸차단솔루션 : 메일 서버 앞단에서 메일 바이러스 체크
  • IAM : ID Access Management :: ID/PW 계정 통합관리 솔루션
  • ERM : Enterprise Risk Management :: 기업 위험 통합관리 솔루션

4. 무선보안 용어

  • SSID : Service Set ID :: 무선랜 WLAN(Wifi)에서 고유 네트워크 이름(식별자)
  • WPA : Wi-Fi Protected Access : TKIP, AES 알고리즘으로 무선랜 암호화 제공(유선랜=WEP, WPA가 더 좋음)
 

 

5. 접근통제 보호모델

  • Identification : 내가 누군지 밝히는 행위
  • Authentication : 신원을 검증하는 활동
  • Authorization : 인증된 사용자에게 권한을 부여하는 활동
  • DAC : Discretionary Access Control :: 임의적 접근통제, 사용자/그룹 신분에 따라 접근 통제(chmod 등)
  • MAC : Mandatory Access Control :: 강제적 접근통제, 사용자의 접근권한에 따라 접근 통제(보안등급)
  • RBAC : Rule Based Access Control :: 역할기반 접근통제, 조직내에 부여받은 역할에 따라 접근 통제(미국방부 접근통제기법)
  • BLP(벨라파둘라모델) : 으딜 하위천민이 글을 읽어(No Read up/No Write Down) 하위는 상위보안등급의 r불가, 상위는 하위의 w불가)
  • 비바모델 : 벨라파둘라모델 단점 보완(BLP + No Write Up/No Read Down = 걍 상위/하위 보안등급간 격리)

6. 보안 분석 도구

  • Tripwire : 백도어/설정파일 변경 감지 도구로 실행전후의 DB를 비교하여 변경사항을 감지함
  • TCPdump : 예전에는 스니핑툴이었으나, 역으로 악성패킷 분석에 활용
  • CVE : Common Vulnerabilities & Exposures :: 미국 MITRE사에서 SW보안취약점을 표준화한 식별자 목록

7. DB 암호화 기법 : APTH(아파트)

  • API 방식 : 앱에서 암호화 수행
  • Plug-in 방식 : DB서버에서 암호화 수행
  • TDE 방식 : DBMS에서 암호화 수행
  • Hybrid 방식 : API + Plug-in

8. 기타 보안 용어(솔루션)

  • 해시함수 : f(x) → C(y) :: 임의 길이를 갖는 값을 입력받으면 고정 길이의 값을 출력하는 함수로 복호화 불가능
  • SET : Secure Electronic Transaction :: VISA와 Master Card에서 온라인 안전거래를 위해 만든 프로토콜
  • Trust Zone : ARM 개발, 칩 내부에 일반구역과 보안구역으로 나누어 프로세스를 관리하는 HW기반 보안기술
  • Secure OS : OS의 보안 취약점 해소를 위해 OS의 커널에 보안 기능을 추가한 OS
  • CC : Common Criteria :: IT 제품의 보안성을 평가하고 공인인증하는 제도

9. Secure SDLC 모델 및 방법론

1) 모델 : BOM

  • BSIMM : 미국토안보국 보안 F/W
  • Open SAMM : 와스프(OWAPSP) 보안 F/W
  • MS SDL : MS 보안 F/W

2) 방법론 : 7와스프

  • Seven Touchpoints : 보안우수사례 적용한 SDLC 보안방법론
  • OWASP CLASP : 이미 운영중인 시스템의 반영이 쉬운 보안방법론
 

 

<OSI 7계층 대표 프로토콜> : ISO에서 만든 Open System Interconnection(개방형 시스템 상호연결모델)

  • A(사용자-네트워크연결) :: ‘성훈, P3(POP3) 모텔 IMAP으로 찍고 와‘ - SSH(22번,원격접속), HTTP(하이퍼텍스트교환), FTP(파일교환), SMTP(25번,심플메일보내기), POP3(110번,메일가져오기), Telnet(네트워크연결), IMAP(143번,메일가져오기(기능확장))
  • P(데이터포맷설정,암복호화)
  • S(논리적연결) :: NetBIOS(API 제공), PRC(원격프로시저 호출)
  • T(프로세스연결, 세그먼트 전송) :: TCP핸드셰이킹(TCP통신 접속규약), TCP/UDP
  • N(최적경로연결, 패킷 전송) :: ‘2RP 2MP 라인’ - ARP(IP->MAC주소변환), RARP(MAC주소로 IP주소찾기), ICMP(전송실패메시지), IGMP(그룹멀티캐스팅), 라우팅프로토콜(최적경로찾기), IP(데이터교환 통신규약)
  • N에는(ADC)Access Layer - Distribution Layer - Core Layer로 나눌 수 있다.
  • Da(데이터전송, 프레임 전송) :: PPP(1:1전송), HDLC(1:1,다:다전송)
  • Phy(01전기적신호변환, 비트 전송)

 

<OSI 7계층 보안 프로토콜>

  • A :: S-HTTP(웹상에서 서버-클라이언트간 메시지 암호화 프로토콜)
  • P
  • S
  • T :: SSL/TLS(Secure Socket Layer/Transport Layer Security :: A~T계층 사이에서 Ser-Cl간 보안 프로토콜)
  • N :: IPSec(인증 헤더(AH)+캡슐화된 암호화 프로토콜(ESP)를 이용한 터널링 프로토콜)
  • Da
  • Phy

<DL제어기법> : 회흐오

  • 회선제어(Circuit Control) : 데이터 동시 전송시 충돌 제어 - ENQ/ACK기법, 풀링기법
  • 흐름제어(Flow Control) : 전송되는 데이터 양 제어 - Stop&Wait기법, Sliding Window기법
  • 오류제어(Error Control) : 전송오류 발생시 복구 제어 - FEC(전진오류수정)기법, BEC(후진오류수정)기법

 

<SQL 명령>

  • DDL(Data Definition Lang) - 크드얼트 :: Create, Drop(Table), Alter(Table), Truncate(Table)
  • DML(Data Manipulation Lang) - 인셀딜업 :: Insert(Into, 튜플추가), Select, Delete(From, 튜플삭제), Update(Set, 튜플변경)
  • DCL(Data Control Lang) - 그리 :: Grant, Revoke
  • TCL(Tx Control Lang) - 커롤첵 :: Commit, Rollback, Checkpoint

 

  • 권한부여 - 그온투
  • 권한부여 & 권한권한부여 - 그온투윗옵

        Grant all on Student to SHMOON with Grant option;

  • 권한회수 - 리온프
  • 부여된 옵션까지 권한회수 - 리온프캐콘

        Revoke Delete On Score from Dooum cascade constraints;

  • 뷰생성 - 크뷰애셀

        Create view 사원뷰 as select 사번, 이름 from 사원 where 성별 = ‘M';

  • 뷰삭제 - 드뷰
  • 데이터추가(삽) - 인인밸

        Insert Into 학생 Values('202101','임꺽정‘,’프로그래밍‘,’010-1234-5678‘);

        Insert Into 급여(부서명, 직책, 급여) Values('마케팅부‘,’부장‘,’100‘);

  • 데이터삭제(삭) - 딜프웨

        delete from 학생 where 수강과목 = ‘유체역학’;

  • 데이터변경(갱) - 업셋웨

        Update 학생 set 상태=‘매국노’ where 이름=‘이광수’;

        Update 급여 Set 호봉=15 where 이름=‘홍길동’ ;

  • 모든데이터삭제 -(DDL) 트테 /(DML) 딜프
  • 인덱스생성 - 크인온

        Create Index 학번인덱스 on 학생(학번);

  • 중복제거 - 셀디프(Select Distinct From)

        Select 학년 Distinct from R1;

 

 

  • 테이블삭제 - 드테캐(Cascade : 링크된 데이터 다 삭제, Restrict : 링크된 테이블이면 삭제 명령 취소)
  • 컬럼추가(삽) - 얼테애(where절은 select에서만 쓸 수 있음)
  • 중복값 입력 금지 - Alter Table 학생 add 전화번호 VARCHAR(11) UNIQUE;
  • 연차에는 NULL 입력 금지 - Alter Table 급여 Add 연차 INTEGER NOT NULL;

주의 : where  : IS NULL/IS NOT NULL이고 Alter : NULL/NOT NULL

  • 성별에는 M과 F만 입력 가능 - Alter Table 학생 Add 성별 CHAR(1) CHECK(성별 IN('M', 'F'));
  • 컬럼삭제(삭) - 얼테드

        Alter Table 직원 Drop 고과;

  • 컬럼속성변경(갱) - 얼테모
  • PK지정 - Alter Table 부서 Modify 부서번호 Integer Primary Key;
  • Grade Number(1)에 NULL대신 기본값 1지정 - Alter Table 부서 Modify Grade Number(1) Default 1;
  • 1,1,3,4 랭크 : 랜오(오)

        Select 이름, 수학, rank() over(Order by 수학 DESC) as 등수 from 점수 order by 수학 DESC;

  • 1,1,2,3 랭크 : 덴랜오(오) :: 더 자세히 본다는 뜻

        Select 이름, 수학, dense_rank() over(Order by 수학 DESC) as 등수 from 점수 order by 수학 DESC;

  • 부서별로 각각 랭크 : 랜오(파오)

        Select 부서,이름,Rank() Over(Partition by 부서, Order by 연봉 DESC) as 순위 from 급여 Order by 부서 DESC, 연봉 DESC;

  • A∪B(중복제외) - A Union B
  • A+B(중복허용) - A Union All B
  • A∩B - A Intersect B
  • A-B - A Minus B
  • 조건으로 그룹묶기(급여 6000 넘는 부서 출력)

        select 부서, sum(급여) as 급여합계 from 급여 group by 부서 having 급여합계 >= 6000;

 

 

 

<그룹함수>

  • 그바그 : 학년, 반 독립적으로 :: 1, 2, -1, -2 평균점수 출력

        select 학년,  AVG(점수) as 점수 from 점수 group by grouping sets(학년, );

  • 그바롤 : 학년(기준), 반 모든 조합으로(기준은 안없어짐) :: 1-1, 1-2, 1, 2-1, 2-2, 2, 전체평균 점수 출력

        select 학년, , AVG(점수) as 점수 from 점수 group by rollup(학년, );

  • 그바큐 : 학년, 반 기준없이 진짜 모든 조합으로 :: -1, -2, 1-1, 1-2, 1, 2-1, 2-2, 2, 전체평균 점수 출력

        select 학년, , AVG(점수) as 점수 from 점수 group by cube(학년, );

  • 필기가 NULL이거나 0점인 수험자명 출력

        select 수험자명 from 정처기 where 필기 IS NULL or 필기 = 0;

  • Select Count(국어+영어) from 성적에서 국어, 영어에 NULL이 있다면? - 교집합이므로 어느 한쪽에라도 NULL 있으면 카운트 안함
  • Select AVG(국어) from 성적에서 3개 레코드인 국어에 NULL 1개 있다면? - 분모/분자에 모두 카운트하지 않음
 

 

<화이트박스테스트> : 소스코드 내부를 테스트(개발과정 테스트) :: 구결조 조변다 기제데

  • 구문 커버리지(=문장) : 모든 구문박스 체크
  • 결정 커버리지(=선택=분기) : 모든 IF(A&B)의 T/F 체크
  • 조건 커버리지 : 모든 IF(A&B)에서 A,B의 T/F 체크
  • 조건/결정 커버리지 : 조건+결정 중 한번만 T/F 체크
  • 변경 조건/결정 커버리지 : 모든 조건/결정 중 일부 샘플만 T/F 체크
  • 다중 조건 커버리지 : 모든 조건/결정 T/F 체크
  • 기본 경로 커버리지(=경로) : 모든 라인 체크
  • 제어흐름 테스트 : 내부로직 제어흐름 테스트 -> 그래프로 출력
  • 데이터흐름 테스트 : 내부로직 데이터흐름 테스트 -> 그래프로 출력
 

 

<블랙박스 테스트> : TC를 만들어 명세서대로 출력값 나오는지 테스트(개발결과 테스트) :: 동경결상유분페원비

  • 동등분할 테스트 : 데이터 영역을 유사도메인으로 묶고 대푯값만 테스트(무효값도 넣어야함)
  • 경계값분석 테스트 : 동등분할 후 본인값+경계값 테스트(무효값도 넣어야함)
  • 결정테이블 테스트 : 조건+행위로 테이블 만들어 테스트
  • 상태전이 테스트 : 이벤트에 의해 상태가 변화는 놈들만 테스트
  • 유스케이스 테스트 : 실제 프로세스 흐름대로 테스트케이스 설계 및 수행
  • 분류트리 테스트 : 트리구조로 만들어 테스트케이스 설계 및 수행
  • 페어와이즈 테스트 : 데이터값을 모두 최소 1번 만나도록 짝(Pair)를 만들어 테스트(모든 조합을 해도 테스트세트가 작은 경우 수행)
  • 원인-결과그래프 테스트 : 그래프 분석하여 인풋대비 아웃풋 영향성 큰놈들만 테스트
  • 비교 테스트 : 모든 프로그램 버전에 동일 인풋, 동일 아웃풋 나오는지 테스트
 

 

<UML 다이어그램> : 정동기

1) UML 정의

  • Unified Modeling Language :: 객체지향SW 개발 시 모델링기술+방법론을 통합하여 만든 표준화된 언어

2) UML 구성요소 : 사관다

  • 사물(Thing) : 주재를 나타내는 추상적인 개념
  • 관계(Relationship) : 사물간의 관계를 표현
  • 다이어그램(Diagram) : 사물과 관계를 모아 그림으로 표현

3) UML 관계

  • Aggregation(◇) - ASSY ⊂ INSTL 관계(상위)
  • Composition(◆) - Detail ⊂ ASSY 관계(하위)

4) 정적다이어그램 : 객체(클래스)의 구조적 관계 표현 D

  • 클래스다이어그램 : 클래스간 관계표현 D((클속메접)클래스/속성/메서드(연산)/접근제어자,(-):Private::클래스 내부접근,(+):Public::클래스 외부 접근,(#):Protected::동일패키지/파생클래스 접근,(~):Default::동일패키지 접근)
  • 객체다이어그램 : 객체간 관계 표현 D
  • 컴포넌트다이어그램 : 컴포넌트간 의존관계표현 D
  • 배치다이어그램 : 컴포넌트 등 물리요소의 위치(배치구조) 표현 D
  • 복합체구조다이어그램 : 컴포넌트, 클래스가 복합구조를 갖는 경우, 그 내부 구조 표현 D
  • 패키지다이어그램 : 패키지간 관계표현 D(여기서 패키지는 클래스 등 모델요소를 그룹화한 것)->Streotype사용

5) 동적다이어그램 : 객체(클래스)의 상호작용 표현 D

  • 시퀀스다이어그램 : 객체/클래스의 상호작용을 시계열메시지로 표현한 D((객생실메)객체/생명선/실행/메시지)
  • 스테이트머신다이어그램 : 객체/클래스의 상태변화를 표현한 D
  • 콜라보레이션다이어그램 : 객체/클래스의 상호작용을 시계열메시지+연관관계로 표현한 D
  • 인터랙티브오버뷰다이어그램 : 조건문에 따라 다르게 처리되는 제어흐름을 표현한 D
  • 타이밍다이어그램 : 시간의 흐름에 따라 객체/클래스의 상태변화를 표현한 D

6) 기능적다이어그램 : 기능수행절차를 표현한 D

  • 유즈케이스다이어그램 :(정적) 사용자관점에서 시스템을 표현한 D
  • 액티비티다이어그램 :(동적) 기능수행관점에서 실제 기능을 수행하듯 처리를 표현한 D
 

 

<디자인패턴> : 생구행

1) 생성패턴 :(추빌팩프싱) 객체를 만드는 방법 예제

  • 추상팩토리(Abstract Factory): 서로 연관있는 객체들을 그룹화/추상화 하는 방법 예제
  • 빌 Builder : 인스턴스들을 합쳐 객체를 만드는 방법 예제
  • 팩 Factory Method : 상위클래스=인터페이스정의, 하위클래스=인스턴스 생성으로 업무분장하는 방법 예제
  • 프 Prototype : 원본객체를 복제하여 객체 생성하는 방법 예제
  • 싱 Singleton : 전역변수 안쓰고 참조객체를 만들어 다른 객체에서 사용하는 방법 예제

2) 구조패턴 :(데브프플어퍼컴) 클래스(객체)를 조합해 더 큰 구조를 만드는 방법 예제

  • 데 Decorator : 클래스에 객체들을 합치는 방법 예제
  • 브 Bridge: 독립적인 클래스들을 서로 연결하는 방법 예제
  • 프 Proxy : 가상 객체를 만들어 정보은닉하는 방법 예제
  • 플 Flyweight : 가상 인스턴스를 만들어 메모리 절감하는 방법 예제
  • 어 Adapter : 기존에 만들어진 클래스를 재사용하는 방법 예제
  • 퍼 Facade : 빌딩 외벽을 고치듯 보다 쉬운 인터페이스를 제공하여 시스템의 복잡도/결합도를 낮추는 방법 예제
  • 컴 Composite : 객체 관계를 트리구조로 바꾸어 계층구조를 단순화하는 방법 예제

3) 행위패턴 :(비스옵템체스메이커) 클래스(객체)의 상호작용하는 방법 예제

  • 비 Visitor : 메서드가 클래스들을 "방문"하여 기능 수행
  • 스 State : 객체의 "상태"에 따라 다르게 작업 수행
  • 옵 Observer : 객체를 “지켜보다”가 객체의 상태가 달라지면 다른 객체들에게 알림
  • 템 Template Method : 소스코드 일부분을 “템플릿화(캡슐화)”하는 방법 예제
  • 체 Chain of Responsibility : 하드코딩된 정적“연결”처리를 동적“연결”처리로 바꾸는 방법 예제
  • 스 Strategy : 행위객체를 클래스로 캡슐화해 동적 행위하도록 “전략”을 바꾸는 방법 예제
  • 메 Memento : “작업취소(Undo)” 기능개발 예제
  • 이 Iterator : 내부구조를 노출하지 않고 내부구조 각 항목들을 “순차적(반복적)”으로 접근하는 방법 예제
  • 커 Command : 기능이나 “명령”을 캡슐화해 재사용 가능한 클래스로 만드는 방법 예제
 

출처: https://halfmoon.tistory.com/436