1 minute read

템플릿 메소드

dao에서의 중복을 제거하기위한.

템플릿 메소드(자바로 구현하기 어려우니 JS로)

dao와 sevice는 기능적인 것에 포커싱. 상태에 대한 것은 아님.

상태에 대한 것은 domain

해당 객체를 하나만 만들게 하는(중복이 되지 않게) : 싱글턴 패턴

add (int a, int b){
    try{
    return a+b;
    } catch {
        //a가 양수인지 예외처리를 잡기 위한
    }
}
sub (int a, int b){
   	try{
    return a-b;
 	} catch {
        //예외처리를 잡기 위한
    }
}
Main
add(1,2); //3
sub(3,2); //1

기존에는 조건을 맞추기 위해 try catch로. 그러면 두 함수 내부에 모두 중복코드 발생.


template(func, int a, int b){
    func(a, b)
}
//add와 sub모두에 템플릿이 적용되어 조건(a가 양수인지 등)을 맞춰준다.
add (int a, int b){
    return a+b;
}
sub (int a, int b){
    return a-b;
}
Main
template(add,1,2); //3
template(sub,3,2); //1

JS는 파라미터로 a와 b 자리에 function을 넘길 수도 있다.

JS에서 function자체를 파라미터로 보내는 것 : 1급객체

JAVA에서는 인터페이스에서 function을 구현하고..

싱글톤패턴

public class Singleton {
//생성자가 private
    private static Singleton instance = new Singleton();
    
    private Singleton() {
        // 생성자는 외부에서 호출 못하게 private 으로 지정해야 한다.
    }

    public static Singleton getInstance() {
        return instance;
    }

    public void say() {
        System.out.println("hi, there");
    }
}
//생성자가 private이란.
Main
new Singleton(); //이 코드가 오류라는 것. 이 방법으로 객체 생성x

생성자가 static이기 때문에 인스턴스가 class에 올라가있는 멤버변수라는 것.,

그리하여 이렇게 호출해야한다.

Main
Singleton s = Singleton.getInstance();
s.day(); //올바른 싱글톤 객체 호출 방법

싱글톤 : 프로그램 내에서 사용하는 인스턴스가 하나만 존재하도록 강제하는 것.


  1. jstl사용(java.sun.com)이거 코드는 제일 위에.

  2. out.print() 사용 금지. 사용하기

  3. html 코드 중간에 <% %>사용 금지

    사용방법:

    pageContext.setAttribute(“name”, name)

  4. pagination에 start end추가.

모델 : service + dao + domain 다 합해서 명칭

서버 to 뷰, 뷰 to 서버

서로 통신하는 데이터는 여러번 호출하지 않고 한번에 묶어서,

서버 to 뷰 는 dto 타입을 만들어서 한번에 전송.

뷰 to 서버는 파라미터로 한번에 전송.

뷰는 고정. 데이터가 어떻게 들어오느냐에 따라 화면 출력이 바뀌는 것.

JSTL부분이 리액트 부분으로 바뀐다. (UI(뷰)단에서 JSTL이 리액트로 바뀐다. )

REST서버 => crud제공해주는 서버

뷰 -> 모델로 요청하는 ajax

서버와 유저의 경계 : 📍

리액트의 위치 : 유저 리액트 📍 서버

JSTL의 위치 : 유저 📍 JSTL 서버

JSTL같은 경우 정보를 담고있는 java코드가 있으므로 서버와 유저의 경계 오른쪽에서.

리액트는 뷰. 마치 js처럼 기본적으로 플랫폼(핸드폰 같은)에 탑재되어있음. 서버에서 넘어온 데이터 상태 관리 등등의 기능. 정보를 담고있는 코드가 없다.

Updated:

Leave a comment