본문 바로가기
반응형

프로그래밍4

알고리즘) A* Algorithm A* Algorithm 가장 대표적인 길찾기 알고리즘이다. 가중치를 기준으로 길을 찾는다. 알고리즘의 원리는 다음과 같다. 찾을 영역(Grid)를 만든다. 현재 경로에 대한 8방향(주위) 경로에 대한 가중치(비용)을 계산한다. 이때 경로를 계산하는 비용은 (F = G + H) 로 가정한다. G = 시작점 으로부터 종료점까지 이동하는데 소요되는 비용 H = 현재 사각형에서 종료점까지의 예상 이동비용(이때는 방해물에 대한 계산을 처리하지 않고 가로세로만 계산한다.) F = 현재까지 이동한 총 비용 ( G + H ) 이동은 가로세로만 가능한것을 기준으로 설명한다. 현재 위치를 기준으로 가중치에 대한 처리를 한다. 시작점을 기준으로 오른쪽의 사각영역에 대한 계산을 하면 다음과 같다. F = 40 ( 총합) G .. 2020. 4. 19.
디자인패턴) 프로토타입 패턴(ProtoType Pattern) 프로토타입 패턴(ProtoType Pattern) 프로토타입 패턴은 기본 베이스를 가지고 새로운 인스턴스를 만드는 과정에서 너무 많은 타입이 나와 정리가 되지 않는 경우 주로 사용한다. 클래스에서 인스턴스를 만들지 앟고 프로토타입 패턴을 쓰는 이유는 종류가 너무 많아서 클래스로 정리가 힘든 경우에 프로토타입 패턴을 사용해서 재사용성이 늘어날 수 있다. 그냥 클래스로 정의를 해서 구현하게 되면 기능당 클래스가 한 개가 되기 때문에 기하급수적으로 늘어난다. framework와 인스턴스를 분리하고 싶은 경우와 클래스로부터 인스턴스 생성이 어려운 경우에도 사용하면 좋다. 내부에 이용할 클래스의 이름이 잇으면 그 클래스와 분리해서 재이용할 수 없기 때문에 재사용성을 늘리기 위해서 프로토타입 패턴을 사용한다. 개인.. 2020. 4. 5.
디자인패턴) 싱글톤 (Singleton Pattern) 싱글톤 (Singleton Pattern) 프로그램을 실행할 때 대부분 많은 인스턴스들이 생성됩니다. 그러나 클래스의 인스턴스가 단 한 개이어야 한 경우가 있습니다. 데이터를 참조해서 사용하는 경우 나절대로 1개밖에 존재하지 않는 것을 보증하고 싶을 때 사용하는 디자인 패턴이다. 인스턴스가 유일무이하게 단 한개만 존재하는 패턴을 Singleton 패턴이라고 한다. 싱글톤 클래스는 static 메소드로 인스턴스를 내부에 포함하고 있다. 싱글톤은 동일한 인스턴스를 반환한다. 대부분은 매니져 클래스에서 싱글톤을 많이 사용한다. 다양한 Singleton 방식에 대해서는 다음을 참고하면 된다: [링크] Singleton pattern - Wikipedia In software engineering, the sin.. 2020. 4. 4.
디자인패턴 ) 템플릿 패턴(Template Pattern) 템플릿 패턴(Template Pattern) 템플릿 패턴은 상위 클래스에서는 실제 구현부가 아닌 추상 메서드만 구현하고 하위 클래스에서 실제 기능을 구현한다. 하위 클래스에 따라서 실제 기능이 달라지기 때문에 재사용성 및 독립성이 보장이 된다. 추상화 클래스로 Unit에서 Move만 정의하고 Unit을 상속받은 Air Unit과 Land Unit에서 실제 해당 기능의 구현을 구현한다. Air Unit의 Move는 하늘을 이동하는 기능을 구현하고 Land Unit에서는 땅에서 이동을 하는 기능을 구현한다. 이렇게 정의만 하고 기능 구현을 하위 클래스에서 작성을 하고 실제 메서드를 호출은 Move를 하면 된다. 템플릿 패턴을 사용하게 되면 로직을 공통화할 수 있고, 상위 클래스와 하위 클래스의 연계가 가능하.. 2020. 4. 2.
반응형