본문 바로가기

이론31

2. 브릿지(Bridge) 패턴 - 개념구현부에서 추상층을 분리하여 각자 독립적으로 변형할 수 있게 하는 패턴이다.쉽게말하면 게임에서 플레이어가 무기를 사용하는 함수를 만들어야 한다고 해보자.무기가 하나는 아닐 것이기 때문에 각각의 무기마다 사용해하는 함수를 만들어야 할것이다.class Player{public:void useSword();void useGun();void useBow();} 이렇게 코드를 작성할 경우 코드가 지저분해지게 되어 가독성이 떨어지게 되며 유지보수 시 문제를 겪게 될것이 당연하다. 더 나아가 Player가 여러 캐릭터로 분화 될 경우 각각의 캐릭터마다 이러한 함수들을 만들게 되야 할 것이고 좋지 못한 코드가 된다.그래서 브릿지 패턴을 사용하게 되는데 브릿지 패턴의 경우 다음과 같이 코드를 작성 할 수 있다. .. 2015. 7. 24.
데이터링크 계층의 오류제어 기법 데이터 전송시 오류제어가 발생(프레임 손상 or 분실)하면 수신측에서 NAK를 반환하고 전송측에서 재전송 처리를 한다.이러한 재전송처리를 ARQ(Automatic Repeat Request)라고 한다. 슬라이딩 윈도우 흐름제어에서는 Go Back N ARQ 또는 Selective Reject ARQ의 형태로 재전송처리를 한다.1. Go Back N ARQ오류제어가 발생한 프레임 이전에 받았던 프레임들은 수신측에서 모두 폐기 처리하고 발생한 프레임 부터 재전송하는 방식이다.Ex1) NAK 2 (프레임 2에서 오류발생) 패킷을 수신측에서 송신측으로 보내면 송신측에서는 프레임 2부터 다시 보낸다.Ex2) 송신측에서 데이터 2 프레임까지 보냈으나 송신측으로 ACK 프레임이 타임아웃 될 때까지 오지않았을 경우 프.. 2015. 7. 21.
트랜잭션 1. 트랜잭션이란?데이터베이스 내에 하나의 그룹으로 처리해야 될 명령문들을 모아놓은 작업단위. 2. 트랜잭션의 특징1) 원자성- 실행 중 한단계라도 실패했을시, 앞의 단계 모두 실패되어야한다.(트랜잭션 수행 중 장애가 발생하면 그작업은 반드시 취소되어야함)2) 일관성- 트랜잭션 실행이 성공적으로 완료되면, 일관성 있는 데이터베이스 상태가 유지되어야함.3) 고립성- 트랜잭션들이 서로 독립성을 보장받으며 수행될 수 있어야 한다.(동시에 같은데이터에 여러개의 트랜잭션들이 접근을 하려 할때 트랜잭션들에 순서를 부여해서 순차적으로 결과를 처리한다.)4) 영구성- 트랜잭션이 성공적으로 처리되면 수행된 결과값이 손실되어서는 안된다. 3. 트랜잭션 상태의 종류1. Active(활동) : 트랜잭션이 실행 중에 있는 상태.. 2015. 6. 14.
역정규화 데이터베이스 검색질의 중 검색질의의 수행속도를 위해서 정규화를 거친 분리된 릴레이션들을 다시 합쳐서 중복을 허용하는 것.여러 릴레이션을 거칠 필요 없이 최소한의 릴레이션에서만 검색을 하면된다. -> 간단하게 데이터의 중복을 허용함으로써 검색 시간을 줄인다. 2015. 6. 14.