본문 바로가기

전체 글

(51)
[디자인패턴] 전략 패턴(Strategy Pattern) 정의 같은 문제를 해결하는 여러 알고리즘이 클래스별로 캡슐화되어 있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴 예시) 게임 캐릭터가 착용한 무기에 따라 공격의 행위가 달라진다. 칼, 활, 창, 맨손 등 공격을 하는 행위는 동일하나 필요에 따라 무기를 바꾸어 공격할 수 있다. Strategy: 인터페이스나 추상 클래스로 외부에서 동일한 방식으로 알고리즘을 호출하는 방법을 명시 => 장착무기 ConcreateStrategy1, 2, 3: 스트래티지 패턴에서 명시한 알고리즘을 실제로 구현한 클래스 => 칼, 활, 창, 맨손 Context: 스트래티지 패턴을 이용하는 역할 수행. 필요에 따라 동적으로 구체적인 전략을 바꿀 수 있도록 sette..
MVC패턴과 동작방식 MVC의 각 컴포넌트의 역할 Controller(컨트롤러) 일종의 조정자라고 할 수 있다. 클라이언트의 요청을 받았을 때, 그 요청에 대해 실제 업무를 수행하는 모델 컴포넌트를 호출한다. 또한 클라이언트가 보낸 데이터가 있다면, 모델에 전달하기 쉽게 데이터를 가공한다. 모델이 업무를 마치면 그 결과를 뷰에게 전달한다. Model (모델) 컨트롤러가 호출할 때, 요청에 맞는 역할을 수행한다. 비즈니스 로직을 구현하는 영역으로 응용프로그램에서 데이터를 처리하는 부분이다. 비즈니스 로직이란 업무에 필요한 데이터처리를 수행하는 응용프로그램의 일부라고 할 수 있다. DB에 연결하고 데이터를 추출하거나 저장,삭제,업데이트,변환 등의 작업을 수행한다. 상태의 변화가 있을 때 컨트롤러와 뷰에 통보해 후속 조치 명령을 ..
Ioc/DI 제어의 역전/의존성 주입 제어의 역행(Inversion of Control, IoC) – 대신 해줌 ‘제어의 역전’ 또는 ‘역 제어’라는 뜻으로 객체에 대한 제어권이 바뀐 것을 의미한다. 기존의 개발자들이 New 연산자, 인터페이스 호출, 팩토리 호출 방식으로 객체의 인스턴스를 생성함으로 인스턴스 생성 방법에 대한 제어권을 개발자들이 가지고 있었다. IoC란 인스턴스 생성의 제어를 개발자 본인이 아닌 다른 누군가에게 해주는 컨테이너이다. 어떤 모듈이 제어를 가진다는 것은 ‘어떤 모듈을 사용할 것인지’, ‘모듈의 함수는 언제 호출할 것인지’ 등을 스스로 결정한다는 것을 의미한다. 즉, IoC란 인스턴스의 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신해준다는 뜻이다. 의존성 주입(Dependency In..