본문 바로가기

분류 전체보기

(156)
[Spring] org.springframework.beans.factory.BeanCreationException 에러 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of autowired dependencies failed ※ 에러이유 :빈 생성시 예외가 발생함userController에서 객체 주입을 받지 못함 ※ 해결 :Controller에서 사용하는 Service객체에 @Service 애노테이션을 명시해주지 않아서 발생함객체로 등록되지 않은 빈을 컨트롤러에서 사용Service객체에 @Service 애노테이션을 명시해줌으로써 해결
스테이트 패턴 (State Pattern) 스테이트 패턴 (State Pattern)객체 내부 상태가 바뀜에 따라서 객체의 행동을 바꿀 수 있다.마치 객체의 클래스가 바뀌는 것과 같은 결과를 얻을 수 있다. 》》 상태 객체를 따로 생성하고, 상태 객체에게 위임하여 동작 ※ 스테이트 패턴의 예제천원짜리 지폐를 넣으면 100원짜리 동전 10개로 교환해주는 동전교환기가 있다.이 동전교환기를 어떻게 구현하는 것이 좋을까? 우선 동전교환기의 상태들을 모은다.이것을 상태에 따라 if문으로 구현한다면?디자인원칙 OCP를 지키지 못한다.객체지향 디자인이라고 보기엔 무리가 있다.지저분한 조건문으로 인한 가독성이 저하된다.무엇보다 추후에 발생하는 유지보수와 코드 확장의 어려움을 겪는다.그렇다면 어떻게 구현하는 것이 좋을까?먼저 동전교환기에 관련된 모든 행동의 메소..
이터레이터 패턴 (Iterator Pattern) 이터레이터 패턴 (Iterator Pattern) 컬렉션 구현방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 수 있게해주는 방법을 제공해준다. 》》 집합체내에서 어떤식으로 일이 처리되는지에 대해서 전혀 모르는 상태에서 그 안에 들어있는 모든 항목에 대해 반복작업 수행 가능》》 직접 Iterator 인터페이스를 만들 수도 있지만 자바에서는 Iterator 인터페이스를 제공한다. 이터레이터 패턴 예제음악사이트를 이곳 저곳 사용하다보니 여러 사이트에 플레이리스트가 흩어져있다.플레이리스트를 한 곳에 합쳐서 보고싶은데 어떻게 해야할까?각각의 플레이리스트를 단순하게 합쳐서 출력하려다보니까 각각의 사이트는 노래를 저장하는 방식이 달랐다.그러다보니 각각의 저장방식에 맞게 출력하려면 일일히 접근..
자료구조와 자료구조를 결정하는 방법 자료구조 (data structure)전산학에서 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다.신중히 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 한다. 프로그램을 설계할 때, 어떠한 자료구조를 선택할지는 가장 우선적으로 고려되어야 한다.자료구조에는 여러 종류가 있으며, 이러한 각각의 자료구조는 각자의 연산 및 목적에 맞추어져 있다. 자바에서는 기본적인 자료구조를 제공하는데 이러한 자료구조를 제공하기 위한 환경을Java Collection Framework라고 한다. Java Collection Framework의 기본 상속구조는 다음과 같다. 그렇다면 자료구조를 결정할 때 고려해야할 사항들은 무엇이 있을까?고려해야하는 사항들은 때에 따라 많겠지만 기본적으로 살펴보면데이터들..
Set (HashSet, TreeSet) Set 순서가 없고 집합이므로 중복된 데이터가 들어갈 수 없다.중복되지 않은 데이터를 구할 때 유용하다. ※ HashSet가장 빠른 임의 접근속도순서를 전혀 예측할 수 없다.HashSet hs = new HashSet(); ※ TreeSet정렬된 순서대로 저장하며 정렬 방법을 지정할 수 있다.TreeSet ts = new TreeSet();
퍼사드 패턴 (Facade Pattern) 퍼사드 패턴 (Facade Pattern) 어떤 서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스를 제공한다.퍼사드에서 고수준 인터페이스를 정의하기 때문에 서브시스템을 더 쉽게 사용할 수 있다. 퍼사드 패턴과 유사한 데코레이터 패턴과 어댑터 패턴을 비교해보면...데코레이터 패턴 : 객체를 감싸서 새로운 행동을 추가어댑터 패턴 : 인터페이스를 변경해서 클라이언트에서 필요로 하는 인터페이스로 적응시키기 위한 용도퍼사드 패턴 : 어떤 서브시스템에 대한 간단한 인터페이스를 제공하기 위한 용도 퍼사드 패턴의 예제컴퓨터를 작동시키기 위해 우리는 단순히 전원버튼만을 누르지만 이것도 퍼사드 패턴의 예라고 볼 수 있다.실제로 전원을 키면 일어나는 작업은 한두가지가 아니다. ※ 만약 퍼사드 패턴이 적용되지 않은 컴퓨..
어댑터 패턴 (Adapter Pattern) 어댑터 패턴 (Adapter Pattern) 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환한다.어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있다. 》》 프로그램 세계에서는 이미 제공되어 있는 것을 그대로 사용할 수 없을 때 필요한 형태로 교환하고 사용하는일이 자주 있다. 》》 어댑터 패턴을 아이폰7과 이어팟에 비유해보자면...클라이언트 : 타겟 인터페이스에 맞게 구현되어있다.어댑터 : 타겟 인터페이스를 구현하며 여기에는 어댑티 인스턴스가 들어가있다.어댑티 : 어댑터에 의해 변환된 것을 받는다. 어댑터를 어떻게 사용하는걸까?1. 클라이언트에서 타겟 인터페이스를 사용하여 메소드를 호출함으로써 어댑터에 요청한다.2. 어댑터에서는 ..
[Java] Int와 Integer의 차이 ※ intprimitive 자료형산술 연산이 가능하다null로 초기화할 수 없다. ※ IntegerWrapper 클래스(객체)null값을 처리할 수 있다.null값을 처리할 수 있기 때문에 SQL과 연동할 경우 처리가 용이하다.DB에서 자료형이 정수형이지만 null값이 필요할 경우 사용된다. 출처 : http://includestdio.tistory.com/1