본문 바로가기

Dev.BackEnd

(66)
#미니 MVC FrameWork 만들기 첫번째 단계, 컨트롤러의 분리 미니 MVC Framework 만들기 첫번째 단계,DispatchServlet(Front-Controller)과 Controller들(Page-Controller)로 분리 문제점 착안,기존의 아키텍쳐에서는 하나의 서블릿에서 요청을 받고 각각의 모델에 해당하는 작업들을 요청하는 방식이었다. 이렇게 되면 각각의 컨트롤러의 몸집이 거대해진다. 그리고 각각의 서블릿이 한 가지 역할을 수행하는 서블릿이므로 코드의 재사용성이 떨어진다. (코드를 살펴보면 중복되는 코드가 많다는 것을 알 수 있다.) 그래서 프런트 컨트롤러와 페이지 컨트롤러 두 가지로 컨트롤러를 분리하려고 한다. 설계프런트 컨트롤러는 요청을 받고 그에 맞는 응답을 전달하는 서블릿으로 그 역할을 제한한다. 프런트 컨트롤러의 역할은 브라우저로부터 오는 요..
#Reflection 리플렉션이란? ReflectionWhat? 객체를 통해 클래스의 정보를 분석해 내는 프로그래밍 기법을 말한다. 구체적인 클래스 타입을 알지 못해도, 컴파일된 바이트 코드를 통해 역으로 클래스의 정보를 알아내어 클래스를 사용할 수 있다는 것이다. 리플렉션 기법을 통해서 형을 모르는 상태에서 객체의 메서드를 호출할 수 있다. 동적 바인딩이 되지 않던 자바에서 리플렉션이라는 프로그래밍 기법을 통해 동적 바인딩을 제공하는 것이다. Why? Composition 과 함께 사용되어 다형성을 구현하기 위해 사용된다. 조합을 사용하여 교체할 수 있는 위임 클래스를 리플렉션을 통해 동적/정적으로 생성하고 교체하는 방식으로 사용된다. 프레임워크에서 유연성을 위해 자주 사용되는 방식이다. 자바의 모든 타입은 연관된 Class 객체를 갖고..
[JAVA] 14 - 1. Collection Framework(컬렉션 프레임워크) - List Chapter 14 - 1. Collection Framework - List데이터의 저장, 그리고 이와 관련 있는 알고리즘을 구조화 해 놓은 프레임워크이다.자료구조 알고리즘을 클래스로 구현해 놓은 것이다. 컨테이너 클래스라고도 한다. 모든 인터페이스가 제네릭으로 정의되어있다.컬렉션 프레임워크 분류자바의 컬렉션 프레임워크에서는 크게 3가지 타입이 존재한다고 인식하고 3개의 인터페이스를 정의하였다.List ArrayList, LinkedList, Stack etc....
[JAVA] 13. 열거형 Enum Chapter 13. Enum 열거형final로 지정한 상수가 이름이 중복되는 경우가 발생한다.열거형이란,자바의 열거형은 C언어의 열거형보다 더 향상된 것으로 열거형이 갖는 값뿐만 아니라 타입까지 관리한다. JAVA에서 상수는 어떻게 정의하는가?1. public static final 을 이용하여 123public static final FRUIT_APPLE = 1;public static final FRUIT_ORANGE = 2;public static final COMPANY_APPLE = 3;cs 2. interface를 이용한다.(public static final 을 생략할 수 있다.) 1234interface FRUIT { FRUIT.APPLE COMPANY.APPLE}cs(FRUIT.APPL..
[JAVA] 12. Generics (지네릭스) Chapter 12. Generics Java는 안전성을 가장 우선시한다.그런 점에서 지네릭스는 안전성을 높이기 위한 Java가 제공하는 수단 중 하나가 되겠다.사전적 정의로는 '포괄적인', '일반적인' 이란 뜻이다.클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법으로, 매개변수와 비슷하게 작동한다.매개변수가 어떠한 변수에 들어갈 값과 관련되어있는 것이라면 제네릭은 어떠한 변수의 데이터 타입과 관련되어있는 것이라고 볼 수 있다. Generics란,다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능을 말한다. 문 법 꺽쇠로 시작해서 꺽쇠로 끝나는 문자가 있다.12345class Person { public T info;}Person p1 = new Per..
[JAVA] 11 - 2. Object 클래스와 그 메소드들 Chapter 11 - 2. Object 클래스 .toString( ) 메소드, .clone( ) 메소드 Java의 모든 클래스는 하나의 동일한 클래스를 상속받는다.이렇게 하면 최상위 클래스에 정의되어 있는 메소드를 사용할 수 있게 되는 장점이 존재한다.Object 클래스모든 클래스의 조상인 Object 클래스 toString( ) 문자화시키다. 이 메서드는 인스턴스에 대한 정보를 문자열로 제공할 목적으로 정의한 것이다.인스턴스의 정보를 제공한다는 것은 대부분의 경우 인스턴스 변수에 저장된 값들을문자열로 표현한다는 뜻이다. class A를 정의했다면 이 클래스에는 toString이라는 메소드가 없다. 하지만 호출할 수 있다. Object 클래스의 상속을 받고 있는 class A 이므로 Object 클래스..
[JAVA] 11 - 1. Object 클래스와 그 메소드들 Chapter 11 - 1. Object 클래스 .equals( ) 메소드 Java의 모든 클래스는 하나의 동일한 클래스를 상속받는다.이렇게 하면 최상위 클래스에 정의되어 있는 메소드를 사용할 수 있게 되는 장점이 존재한다. Object 클래스 모든 클래스의 조상인 Object 클래스 어떠한 클래스를 정의했는데 아무 클래스도 상속받지 않고 있다면 자동적으로 Object 클래스를 상속하고 있는 것이다. 모든 클래스들이 갖고 있는 기능들. 왜? Object 클래스에 있는 메소드들을 통해서 클래스의 기본적인 기능을 정의할 수 있기 때문이다. Object 클래스에 선언되어 있는 메소드는 객체를 처리하기 위한 메소드와 스레드를 위한 메소드로 나뉜다. 쓰레드를 위한 메소드들은 final로 선언이 되어 있어서 오버라..
5. Model 1 에서 Model 2 까지 변화과정 3편 5. Model 1 에서 Model 2 까지 변화과정 3편controller역할 뿐만 아니라 view 역할과 model 역할까지 모두 하는 서블릿부터 만든 다음에,그 서블릿으로부터 기능들이 하나씩 분리되는 과정을 보이려고 한다. 5. ServletContextListener 리스너란 사건이 발생했을 때, 알림을 받는 객체를 말한다. 서블릿을 보면, 매 요청마다 MemberDao memberDao = new MemberDao( ); 를 통해 DAO 인스턴스를 생성한다.요청할 때마다 객체를 만들게 되면 많은 가비지가 생성되고, 실행 시간이 길어진다. 그래서 DAO를 ServletContext에 저장한다. AppInitServlet에 DAO 객체를 준비해도 되지만, 웹 애플리케이션 이벤트를 이용하는 것이 더 ..