객체지향 설계의 핵심은 협력을 위해 필요한 의존성은 유지하면서 변경을 방해하는 의존성은 제거하는데 있다. 이런 관점에서 객체지향 설계란? 의존성을 관리하는 것 객체가 변화를 받아들일 수 있게 의존성을 정리하는 기술 변경과 의존성 어떤 객체가 협력하기 위해 다른 객체를 필요로 할 때 두 객체 사이에 의존성이 존재하게 된다. 이러한 의존성은 실행 시점과 구현시점에 서로 다른 의미를 가진다. 실행 시점 - 의존하는 객체가 정상적으로 동작하기 위해선 실행 시에 의존 대상 객체가 반드시 존재해야 한다. 구현 시점 - 의존 대상 객체가 변경될 경우 의존하는 객체도 함께 변경한다. public class PeriodCondition implements DiscountCondition { private DayOfWee..
협력의 관점에서 객체는 두 가지 종류의 메시지 집합으로 구성된다. 객체가 수신하는 메시지의 집합 외부의 객체에게 전송하는 메시지의 집합 메시지(message) 협력하는 객체들이 사용할 수 있는 유일한 의사소통 수단. 메시지 전송 or 메시지 패싱: 다른 객체에 도움 요청 메시지 전송자: 해당 메시지를 전송하는 객체 [client] 메시지 수신자: 메시지를 수신하는 객체 [server] 메시지 = 오퍼레이션명(operation name) + 인자(argument)로 구성되어 있다. ex) 메시지 = isSatisfiedBy(screening) 메시지 전송 = 메시지 수신자 + 메시지 ex) 메시지 전송 = condition.isSatisfiedBy(screening) // condition이 메시지 수신자..
MVC 구조와 서블릿/JSP 서블릿 코드의 경우 자바 코드를 그대로 이용할 수 있고, 상속이나 인터페이스의 처리도 가능하지만, HTTP로 전달된 메시지를 구성하는 HTML을 처리할 때는 상당한 양의 코드를 작성해야 한다. JSP의 경우 반대로 HTML 코드를 바로 사용할 수 있으므로 HTTP 메시지 작성에는 적합하지만, 그 안에서 자바 코드를 재사용하는 문제나 자바 코드와 HTML이 호재하는 것과 같은 여러 문제가 존재한다. 이를 절충해서 다음과 같은 구조를 이용하게 된다. (1) 브라우저의 요청은 해당 주소를 처리하는 서블릿에 전달되고 서블릿 내부에서는 응답에 필요한 재료 데이터를 준비한다. (2) 서블릿은 준비한 데이터를 JSP로 전달하고 JSP에서는 EL을 이용해서 최종적인 결과 데이터를 생성한다...
웹 프로젝트의 기본 구조 브라우저 혹은 클라이언트 프로그램 - 서버에서 전송할 결과를 화면에 보여주고 (렌더링(rendering)) 사용자의 화면 조작을 이용해서 서버에 원하는 데이터를 보내고 (요청 - request) 받는 (응답 - response) 프로그램 웹 서버 (Web Server) 혹은 WAS (Web Application Server) - (웹 서버)이미지와 같은 정적인 데이터를 제공 하거나 동적으로 매번 새로운 데이터를 만들어 낼 수 있는 WAS (실제 운영 환경에서는 보통 웹 서버와 WAS를 분리해서 운영하지만, 대부분 WAS는 웹 서버 기능도 겸하고 있으므로 실습 시에는 WAS만으로 구성 가능하다) - 관련 기술: 서블릿/JSP, 각종 플레임워크와 언어들 데이터베이스 - 영구적으로 데..