반응형
SMALL

Java 33

[Java] 스프링(Spring) DI(Dependency Injection)과 IOC 컨테이너(Container)

지난 시간에 스프링(Spring) 프로젝트를 생성하기 위한 환경세팅과 간단한 사칙연산 프로그램을 작성해봤습니다 과정이 궁금하시다면 아래의 링크 ↓↓ 2020/09/23 - [Java] - [Java] 스프링(Spring) 환경 세팅하기 [Java] 스프링(Spring) 환경 세팅하기 스프링(Spring)을 학습하기에 앞서 알아야할 것은 프레임워크(Frame Work)의 개념일 것입니다 프레임워크는 간단히 말해서 프로그래밍을 단순하게 하여 만들고자 하는 프로그램의 목적에만 집중할 � yssa.tistory.com 오늘은 스프링의 DI(Dependency Injection)과 IOC 컨테이너(Container)를 살펴보겠습니다 먼저 DI는 의존성 주입이라고 하는데요 위의 그림과 같이 A객체가 B객체, C객체..

Java 2020.09.23

[Java] 스프링(Spring) 환경 세팅하기

스프링(Spring)을 학습하기에 앞서 알아야할 것은 프레임워크(Frame Work)의 개념일 것입니다 프레임워크는 간단히 말해서 프로그래밍을 단순하게 하여 만들고자 하는 프로그램의 목적에만 집중할 수 있도록 약속을 정의해 놓은 것이고 스프링은 자바 언어를 기반으로 한 프레임워크의 일종입니다 스프링 관련 책을 몇 권 보았는데 어느 책이나 마찬가지로 앞부분에 스프링의 특징을 설명하다보니 지루하고 어렵게 느껴지더라고요-_- 심지어 어떻게 프로그램을 작성하는지 조차 나와있지 않은 책도 있었습니다 어찌되었든 제 스타일은 직접 프로그램을 작성하면서 익히는 것을 좋아하기 때문에 일단 오늘은 스프링으로 프로그램을 작성하기 위해 필요한 환경 세팅을 진행하겠습니다 스프링이 자바 기반의 프레임워크이므로 JDK 설치는 당연..

Java 2020.09.23

[Java] 직렬화(Serialization)와 역직렬화(Deserialization)

잠시 귀차니즘으로 인해 술을 홀짝 마셨더니 정말 오랜만에 글을 작성하게 되었습니다 장마가 지나니 폭염이 시작되서 마스크가 더욱 괴롭게 느껴지네요 (코로나19 -_-) 아무튼 오늘의 학습 주제는 직렬화와 파일 입출력입니다 우리가 알고 있는 자바의 객체는 상태와 행동이 담겨있습니다 그런데 객체의 상태를 저장하고 싶을 때는 어떻게 할까요? 만약 객체의 상태를 만들어낸 자바 프로그램에서만 사용한다고 하면 직렬화를 사용하고 다른 프로그램에서도 사용한다면 일반 텍스트 파일로 저장하는 방법이 있습니다 (물론 다른 방법들도 있습니다) 먼저 알아야하는 것은 데이터는 스트림(Stream) 형태로 이동하고 자바 입출력 API에는 파일이나 네트워크 소켓과 같은 출발지 또는 목적지로의 연결을 나타내는 연결 스트림(Connect..

Java 2020.08.20

[Design Pattern] 명령 패턴(Command Pattern)과 통역 패턴(Interpreter Pattern)

이번 학습 주제는 명령(Command) 패턴과 통역(Interpreter) 패턴입니다 클래스가 일을 실행할 때에는 메소드를 호출합니다 메소드를 호출한 결과는 오브젝트의 상태에 반영되지만 일의 이력은 남지 않습니다 이 때 명령을 표현하는 클래스가 있어서 인스턴스의 집합을 관리한다면 이력을 관리할 수 있습니다 명령 패턴은 이러한 처리를 할 수 있는 패턴입니다 그럼 명령 패턴의 역할들을 정리하고 시작하겠습니다 역할 설명 Command(명령) 명령의 인터페이스를 정의 Concrete Command(구체적 명령) Command 역할의 인터페이스를 실제로 구현 Receiver(수신자) Command 역할이 명령을 실행할 때 대상이 되는 역할 Client(의뢰자) Concrete Command 역할을 생성하고 그 사..

Java 2020.07.24

[Design Pattern] 대리인 패턴(Proxy Pattern)

이번 학습 주제는 대리인(Proxy) 패턴입니다 Proxy는 주로 HTTP Proxy를 떠올리실 것 같네요 아무튼 대리인 패턴은 매우 바쁜 오브젝트 대신에 일을 처리해 줄 수있는 오브젝트가 있는 패턴입니다 물론 처리할 수 있는 일에는 한계가 존재합니다 그럼 대리인 패턴의 역할들을 정리하고 시작하겠습니다 역할 설명 Subject(주체) Proxy 역할과 RealSubject 역할을 동일시하기 위한 인터페이스를 결정 Proxy(대리인) Client 역할의 요구를 할 수 있는 만큼 처리하고 처리할 수 없어 RealSubject 역할이 필요해지면 그 때 RealSubject 역할을 생성 Real Subject(실제의 주체) Proxy 역할에서 감당할 수 없는 일이 발생했을 때 등장 Client(의뢰인) Prox..

Java 2020.07.22

[Design Pattern] 플라이급 패턴(Flyweight Pattern)

이번 학습 주제는 플라이급(Flyweight) 패턴입니다 권투에서 가장 체중이 가벼운 체급을 나타내는 플라이급! 플라이급 패턴은 오브젝트를 가볍게 하기 위한 패턴으로 가볍다는 의미는 메모리를 적게 사용하는 것을 의미입니다 다시 말하자면 인스턴스를 가능한 대로 공유시켜서 쓸데없는 인스턴스를 생성하지 않는 것입니다 그럼 플라이급 패턴의 역할들을 정리하겠습니다 역할 설명 Flyweight(플라이급) 공유하는 것이 좋은 것을 나타내는 역할 Flyweight Factory(플라이급 공장) Flyweight 역할을 만들어 인스턴스를 공유 Client(의뢰자) FlyweightFactory 역할을 사용해서 Flyweight 역할을 만들고 이용하는 역할 역할들만 보았을 때는 비교적 간단할 것 같다는 느낌이 스치네요^^..

Java 2020.07.21

[Design Pattern] 상태 패턴(State Pattern)

오랜만에 글을 작성하네요-_- 태안에 조개잡이를 떠났다가 여자친구가 모기에 50방을 물렸네요-_- 모기에게 100% 물리지 않는 어떤 약이나 도구가 발명된다면 대박일듯... 아무튼 이번 학습 주제는 상태(State) 패턴입니다 객체 지향 프로그래밍에서는 프로그램 할 대상을 클래스(Class)로 표현하고 이것을 설계해야합니다 오늘 학습할 상태 패턴은 상태를 클래스로 표현하는 패턴입니다 그럼 상태 패턴의 역할들을 정리하고 시작하겠습니다 역할 설명 State(상태) 상태를 나타내며 상태가 변할 때마다 다른 동작을 하는 인터페이스를 결정 Concrete State(구체적인 상태) 구체적인 각각의 상태를 표현하고 State 역할로 결정되는 인터페이스를 구체적으로 구현 Context(문맥) 현재의 상태를 나타내는 ..

Java 2020.07.20

[Design Pattern] 추억거리 패턴(Memento Pattern)

이번 학습 주제는 추억거리(Memento) 패턴입니다 문서를 작성할 때 필요한 글을 실수로 삭제하게 되면 undo(실행취소) 기능을 사용합니다 객체 지향의 프로그램에서 이 기능을 실행하려면 인스턴스가 가진 정보를 저장해야하고 인스턴스 내부 정보에 접근 가능해야합니다 하지만 접근의 허용은 자칫 캡슐화의 파괴를 초래할 수 있습니다 Memento 패턴은 캡슐화의 파괴에 빠지지 않고도 할 수 있도록 해줍니다 역할 설명 Originator(작성자) 자신의 현재 상태를 저장하고 싶을 때 Memento 역할을 생성하고 이전의 Memento 역할을 전달 받으면 그 Memento 역할을 만든 시점의 상태로 돌리는 처리를 실행 Memento(추억거리) Originator 역할의 내부 정보를 정리하며 그 정보는 비공개함 M..

Java 2020.07.16

[Design Pattern] 관찰자 패턴(Observer Pattern)

한동안 비가 내려 날씨가 꽤 선선하였는데 오늘은 한 여름이었네요 피서의 계절이라 국내 여행지를 찾아보다가 가볼만한 유명지는 모두 꽉차있는 것을 보면 코로나19도 한 여름의 피서를 막지 못하나 봅니다 무튼 이번 학습 주제는 관찰자(Observer) 패턴입니다 스타크래프트 좀 하신 분들은 아주 익숙한 단어 Observer! 스타에서 옵저버가 하는 일은 맵을 밝혀서 우리에게 적의 위치를 알려주는데 이 패턴도 비슷하게 관찰 대상의 상태가 변화하면 관찰자에게 알려줍니다 이번에도 관찰자 패턴의 역할들을 정리하고 시작하겠습니다 역할 설명 Subject(관찰 대상자) 관찰이 되는 대상으로 Observer 역할을 등록, 삭제하는 메소드를 가짐 Concrete Subject(구체적인 관찰자) 구체적으로 관찰되는 대상으로 ..

Java 2020.07.15

[Design Pattern] 창구 패턴(Facade Pattern)과 중개자 패턴(Mediator Pattern)

오늘은 서두 없이바로 학습을 진행하겠습니다이번 학습 주제는창구 패턴(Facade Pattern)과중개자 패턴(Mediator)입니다프로그램을 만들다보면많은 클래스들이 생성되고서로 관계를 맺으면서 복잡해지는데상호 관련된 많은 클래스를적절하게 관리해주는 창구를하나 준비하면 좋을 것입니다창구 패턴은복잡하게 얽혀 있는 것을정리해서 높은 레벨의인터페이스를 제공하는 패턴입니다언제나 처럼창구 패턴의 역할들을정리하고 시작하겠습니다역할설명Facade(창구)시스템을 구성하고 있는 많은 역할에 대한 단순한 창구로서 높은 레벨에서 단순한 인터페이스를 시스템 외부에 제공 (시스템을 구성하는 그 밖의 많은 역할들)이 역할들이 Facade 역할을 호출하는 일은 없고 각각의 임무를 수행Client(의뢰인)Facade 역할을 이용하는..

Java 2020.07.13
반응형
LIST