| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 깃허브
- servlet
- 스프링프레임워크
- github
- di
- Sts
- viewResolver
- Spring
- 스프링
- 객체지향
- Interface
- GIT
- URLmapping
- oracle
- 인터페이스
- springframework
- Java
- 객체지향프로그래밍
- git커스텀
- 자바
- macoracle
- xml
- 프레임워크
- 아이텀2
- 설정파일분리
- 깃커스텀
- iterm2
- IoCContainer
- 깃
- annotation
- Today
- Total
목록Java (7)
공부만이 살길
저번 포스팅에서는 위와 같은 Program을 통해 total을 출력할 때, 인터페이스를 활용해서 Class A와 B의 결합도를 낮추는 것 까지 진행했습니다. 이번 포스팅에서는 현재 상황에서 Program의 문제점과 이를 개선하는 방안을 알려드리도록 하겠습니다. 현재의 Program 코드를 보면, B b = new B(); 를 통해, A가 결합하여 사용하는 Interface X가 참조하는 B를 Program에서 생성자를 통해 지정하고 있는 것을 알 수 있습니다. 그런데, Interface X가 더 나은 Class C를 만들게 되어, 이 Class를 교체하여 사용하는 경우를 한번 가정해볼까요? 위의 상황처럼 Program의 코드까지 변경해야 하는 상황이 오게 됩니다. 이런 경우에는 유지보수를 하기에는 정말 ..
자바 프로그래밍에서의 인터페이스를 활용한 개발이란, 프로그램의 클래스의 수정이 있을 때, 실행하는 프로그램의 코드 수정 없이 간편하게 외부 설정파일만을 수정하여 유지보수를 용이하게 만드는 것을 말한다. 여기 예제를 보면서 확인해보자. 위 Program 클래스는 A라는 인스턴스를 생성하여, a 내부의 print() 메소드를 호출해 실행하고 있다. A 라는 Class는 B라는 객체를 활용해서 print() 를 정의하고 있다. A 생성자 안에서 B라는 인스턴스를 정의 하고 있다. B 에서는 total() 메소드를 통해 30이라는 값을 return 하고 있다. 위 3개의 java 프로그램은 Program을 실행하여 결과적으로 30을 출력하는 프로그램이지만, 그 안을 들여다보면 A와 B는 서로간의 사이에서 아주 ..
Dependency Injection 에 이어 IoC Container에 대해서 알아보도록 하자. (1)에서 우리는 Spring의 핵심 기능 중 하나는 부품 조립이라고 하였었다. 우리는 스프링에게 어떤 객체를 어떻게 결합하여 달라고 "주문"을 해야한다. 그렇다면 "주문서"가 있어야 할텐데, 이 주문서는 어떻게 작성해야할까? 컴퓨터라면 보통 메인보드, cpu, memory를 정하게 되고 이 내용을 정리한 종이 혹은 파일을 건네주게 된다. 하지만 우리는 소프트웨어를 개발하는 것이다. 소프트웨어 개발의 측면에서는 XML, Annotation을 이용해서 주문서를 작성하게 된다. 컴퓨터를 구매할 때, 부품들을 구매하면 그것을 가져오기 위해 박스에 담는다. 소프트웨어 개발 입장에서는 그 박스가 바로 "Contain..