2. 웹개발/스프링
-
1. 클래스의 분리 관심사의 분리보다 더 화끈하게 분리를 해보자. DB커넥션과 관련된 부분을 서브클래스가 아니라 아예 별도의 클래스에 담는다. 이 클래스를 UserDao가 이용하게 한다. 예를 들어 별도의 SimpleConnectionMaker 클래스에 DB커넥션 코드를 작성하고 상속이 아닌 생성자를 통해 각 메소드에서 DB 커넥션을 가져오게 한다. public class SimpleConnectionMaker { public Connection makeNewConnection() throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); Connection c = DriverManager.getConnecti..
DAO 분리와 확장(3/4) - 세번째, DAO의 확장1. 클래스의 분리 관심사의 분리보다 더 화끈하게 분리를 해보자. DB커넥션과 관련된 부분을 서브클래스가 아니라 아예 별도의 클래스에 담는다. 이 클래스를 UserDao가 이용하게 한다. 예를 들어 별도의 SimpleConnectionMaker 클래스에 DB커넥션 코드를 작성하고 상속이 아닌 생성자를 통해 각 메소드에서 DB 커넥션을 가져오게 한다. public class SimpleConnectionMaker { public Connection makeNewConnection() throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); Connection c = DriverManager.getConnecti..
2016.02.19 -
DAO의 분리 1. 관심사의 분리 - 관심이 같은 것끼리 하나의 객체 안으로 또는 모이게 하고, 관심이 다른 것은 가능한 따로 떨어져서 서로 영향을 주지 않도록 분리한다. 2. 커넥션 만들기의 추출 - 전편의 DAO 예제를 살펴 보면 메소드 안에 커넥션 정보가 담겨 있기 때문에 수백, 수천 개의 DAO 메소드를 만들게 된다면 코드가 여기저기 중복 될 뿐만 아니라 향후 다른 커넥션 정보를 사용 할 경우 이 모든 DAO 메소드를 수정해야 한다. 즉, 커넥션 가져오는 중복 코드를 분리해야 한다. 중복된 DB 연결 코드를 getConnection() 이라는 메소드로 분리 한다면 커넥션 정보가 변경된다 하더라도 한 메소드의 코드만 수정하면 된다. 리펙토링 리펙토링은 기존의 코드를 외부의 동작방식에는 변화 없이 내..
DAO 분리와 확장(2/4) - 두번째, DAO의 분리DAO의 분리 1. 관심사의 분리 - 관심이 같은 것끼리 하나의 객체 안으로 또는 모이게 하고, 관심이 다른 것은 가능한 따로 떨어져서 서로 영향을 주지 않도록 분리한다. 2. 커넥션 만들기의 추출 - 전편의 DAO 예제를 살펴 보면 메소드 안에 커넥션 정보가 담겨 있기 때문에 수백, 수천 개의 DAO 메소드를 만들게 된다면 코드가 여기저기 중복 될 뿐만 아니라 향후 다른 커넥션 정보를 사용 할 경우 이 모든 DAO 메소드를 수정해야 한다. 즉, 커넥션 가져오는 중복 코드를 분리해야 한다. 중복된 DB 연결 코드를 getConnection() 이라는 메소드로 분리 한다면 커넥션 정보가 변경된다 하더라도 한 메소드의 코드만 수정하면 된다. 리펙토링 리펙토링은 기존의 코드를 외부의 동작방식에는 변화 없이 내..
2016.02.12 -
DAO 분리와 확장 (1/3) - 첫번째. 마구잡이 DAO 생성 DAO(Data Access Object)는 DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트를 말한다. 1. User 클래스 생성 - 사용자 정보 저장 시 자바빈 규약을 따르는 오브젝트를 이용하면 편리하다. 사용자 정보를 저장할 User 클래스를 만든다. public class User { String id; String name; String password; public String getld() ( return id; } public void setld(String id) ( this.id = id; } public String getName() { return name; } public void setNam..
DAO 분리와 확장(1/4) - 첫번째. 마구잡이 DAO 생성DAO 분리와 확장 (1/3) - 첫번째. 마구잡이 DAO 생성 DAO(Data Access Object)는 DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트를 말한다. 1. User 클래스 생성 - 사용자 정보 저장 시 자바빈 규약을 따르는 오브젝트를 이용하면 편리하다. 사용자 정보를 저장할 User 클래스를 만든다. public class User { String id; String name; String password; public String getld() ( return id; } public void setld(String id) ( this.id = id; } public String getName() { return name; } public void setNam..
2016.02.01 -
스프링이란? - 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크 스프링 컨테이너 스프링 컨테이너는 설정정보를 참고로 하여 애플리케이션을 구성하는 오브젝트를 생성 & 관리한다. 독립적으로 동작 가능하지만 보통 웹 모듈에서 동작하는 서비스나 서블릿으로 등록하여 사용한다. 스프링이 제공하는 세가지 핵심 프로그래밍 모델 1. IoC / DI 오브젝트의 생명주기와 의존관꼐에 대한 프로그래밍 모델. 객체지향 설계 원칙과 디자인 패턴의 핵심 원리를 담고 있으며 프레임 워크의 근간으로 삼고 있다. 스프링이 직적 제공하는 모든 기술과 API, 심지어 컨테이너도 IoC/DI 방식으로 작성되어 있다. 2. 서비스 추상화 이식성이 뛰어나다.(서버, 특정 기술에 종속 되지 않는다.) 3. AOP 애플리케이..
[Spring] 스프링 이란?스프링이란? - 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크 스프링 컨테이너 스프링 컨테이너는 설정정보를 참고로 하여 애플리케이션을 구성하는 오브젝트를 생성 & 관리한다. 독립적으로 동작 가능하지만 보통 웹 모듈에서 동작하는 서비스나 서블릿으로 등록하여 사용한다. 스프링이 제공하는 세가지 핵심 프로그래밍 모델 1. IoC / DI 오브젝트의 생명주기와 의존관꼐에 대한 프로그래밍 모델. 객체지향 설계 원칙과 디자인 패턴의 핵심 원리를 담고 있으며 프레임 워크의 근간으로 삼고 있다. 스프링이 직적 제공하는 모든 기술과 API, 심지어 컨테이너도 IoC/DI 방식으로 작성되어 있다. 2. 서비스 추상화 이식성이 뛰어나다.(서버, 특정 기술에 종속 되지 않는다.) 3. AOP 애플리케이..
2016.01.27