목록스프링 입문 (23)
코딩 기록들
옵저버(Observer) 패턴 - 관찰자패턴 - 스윙, 자바의GUI프로그래밍, 안드로이드 프로그래밍 시 이벤트리스너가 예시(이벤트리스너를 통해 전달) - 변화가 일어났을때관찰(관찰에 변화가생기면) 미리 등록된 다른클래스에 통보해주는 패턴을 구현한것 public class Main { public static void main(String[] args) { Button button = new Button("버튼"); //익명으로 전달받음 button.addListener(new IButtonListener() { public void clickEvent(String event){ System.out.println(event); } }); button.click('메시지 전달 : click 1'); butt..

Proxy pattern - 대리인 이라는 뜻 = 뭔가를 대신해서 처리하는 것 - proxy class를 통해서 대신 전달하는 형태로 설계됨, 실제client는 proxy로부터 결과를 받는다 - Cache의 기능으로도 활용가능 - SOLID중 개방폐쇄원칙과 의존역전원칙을 따름 - 브라우저, 이미 받아둔 결과를 캐시를 사용해 같은결과 요청시 내려주는 역할을 함 public interface IBrowser { //html 보여주는 기능 Html show(); //html로 리턴 } public class Html { private String url; //기본 생성자에서 url받아서 html로딩 public Html(String url){ this.url = url; } } public class Brow..

Singleton pattern 어떤 클래스(객체)가 유일하게 1개만 존재해야 할 때 사용 서로 자원을 공유할 때 주로 사용 실물세계에서는 여러개의 pc가 하나의 '프린터기'에 연결된것이 해당됨 / 실제프로그래밍에서는 TCP Socket통신에서 서버와 연결된 하나의 connect 객체 디폴트 생성자 : private get instance()통해 생성되어있는 객체 가지고오거나, 없다면 새로 생성 package com.company.design.singleton; public class SocketClient { //싱글톤 = 자기자신을 객체로 가지고 있어야함 private static SocketClient socketClient = null; // 싱글톤 = 기본생성자를 private으로 막아야됨 pr..
디자인패턴이란? 자주 사용하는 설계패턴을 정형화해서 유형별로 최적의 방법으로 개발할수있도록 정해둔 설계 알고리즘과 유사함. 명확하게 정답이있는 형태는 아니며, 프로젝트 상황에맞춰 적용가능 Gof 디자인패턴 (Gang of Four) 객체지향 개념에 따른 설계중 재사용할경우 유용한 설계를 미리 디자인패턴으로 정리해 둔 것 총 23개로 구성됨 디자인패턴 장점 개발자간의 원활한 소통이 가능 소프트웨어 구조파악 용이 재사용을 통한 개발시간 단축 (enterprise 확장시)설계변경 요청에 대한 유연한 대처 가능 디자인패턴 단점 객체지향 설계및 구현 초기투자(인터페이스및 구조의 설계및 코딩) 비용 부담 23개의 디자인패턴 분류 1. 생성 패턴 - 객체를 생성하는것과 관련된 패턴 - 객체의 생성과 변경이 전체시스템..
Plain Old Java Object : 순수한 자바 오브젝트를 뜻함 POJO 특징 1. 특정 규약에 종속되지 않음 특정 라이브러리, 모듈에서 정의된 클래스를 상속받아 구현하지 않아도 됨 외부의 의존성 두지 않고, 순수한 JAVA로 구성이 가능해야 함 2. 특정환경에 종속되지 않음 외부종속적인 http request, session등은 POJO를 위배한것으로 간주함 @Annotation기반의 설정도 POJO라고 볼수없음 POJO Framework Spring, Hibernate : 객체지향적 설계를 하며, POJO를 지향

응집도 & 결합도 - 좋은 소프트웨어 = 결합도(coupling) 낮추고, 응집도(cohesion) 높여야 함 결합도 클래스(모듈)간 상호의존정도를 나타내는 지표 결합도가 낮으면 : 모듈 간 상호의존성이 줄어들고 -> 객체의 재사용및 유지보수가 유리함 응집도 하나의 모듈 내부에 존재하는 구성요소들의 기능적인 관련성 응집도가 높으면 : 모듈은 하나의 책임에 집중 & 독립성이 높아짐 -> 재사용및 유지보수가 용이함 1. 단일책임원칙 (SRP Single Responsibility Principle) 어떠한 클래스를 변경해야하는 이유는 한가지 뿐이여야 함 2. 개방 폐쇄 원칙 (OCP Open Closed Principle) 자신의 확장에는 열려있고 & 주변의 변화에대해서는 닫혀있어야 함 상위클래스 or 인터..
객체지향의 등장 - 객체지향의 개념 등장 이전 : C언어처럼 실행하고자 하는 순서대로 명령어 입력하여 실행되는 '절차지향' 언어가 주를 이뤘음 : 간단한 로직을 순차적으로 처리하여 결과를 얻었지만, 컴퓨터가 발전하며 프로그램 복잡도가 증가하며 비효율 발생 -> 추상화, 상속, 은닉, 재사용, 인터페이스 등 객체지향으로 개발을 하기 시작함 - 실제 사물을 모델링하여 이들의 '행위', '속성'을 정ㅇ의하고, 객체중심으로 실제 사물이 동작하는 방식으로 설계 - 사물 = 객체 / 사물이 하는 행위 = Method / 사물이 가지는 속성 = 변수 객체 설계하기 - 객체 = 사물 = object - class 에다가 속성 정의함 - 메소드 : 행위 객체의 3가지 요소 1) 상태유지 : 객체의 상채 - 객체의 상태정..