SPRING/Spring Basic 15

[스프링] 관심사의 분리 ( 관계설정 책임의 분리 )

[ 스프링 ] 관심사의 확장 ( 인터페이스 ) [ 스프링 ] 관심사의 분리 ( 클래스의 분리 ) [ 스프링 ] 관심사의 확장 ( 추상클래스 ) [ 스프링 ] 관심사의 분리 ( DAO ) 스프링 프레임워크를 사용하기 위한 기본 개념을 하나씩 정리해볼까 한다. lordofkangs.tistory.com 지난 포스팅까지 인터페이스를 이용한 확장을 알아 보았다. 그러나 한 가지 문제가 있었다. UserDao 클래스의 관심사는 'DB 엑세스를 위한 SQL실행'이지 'ConnectionMaker 인터페이스의 구현객체와의 관계 설정'은 관심사가 아니다. UserDao 클래스가 한 가지 구현객체를 선택하면 두 클래스는 '종속'되어 버린다. 종속은 변화에 좋지 않은 관계이다. "느슨한 결합"을 유지해야한다. 관계 설정 ..

SPRING/Spring Basic 2021.07.26

[스프링] 관심사의 확장 ( 인터페이스 )

[ 스프링 ] 관심사의 분리 ( 클래스의 분리 ) [ 스프링 ] 관심사의 확장 ( 추상클래스 ) [ 스프링 ] 관심사의 분리 ( DAO ) 스프링 프레임워크를 사용하기 위한 기본 개념을 하나씩 정리해볼까 한다. ▷ 분리와 확장 분리와 확장을 고려한 설계는 lordofkangs.tistory.com 지난 포스팅에서는 관심사 분리를 메소드가 아닌 클래스로 해보았다. 하지만 여전히 확장성에 문제가 발생했다. 확장을 하려면 '추상화'를 해야한다. 추상화란, 구현 클래스 간의 공통된 특징을 하나로 묶는 것을 의미한다. [ 스프링 ] 관심사의 확장 ( 추상클래스 ) [ 스프링 ] 관심사의 분리 ( DAO ) 스프링 프레임워크를 사용하기 위한 기본 개념을 하나씩 정리해볼까 한다. ▷ 분리와 확장 분리와 확장을 고려한..

SPRING/Spring Basic 2021.07.24

[스프링] 관심사의 분리 ( 클래스의 분리 )

[ 스프링 ] 관심사의 확장 ( 추상클래스 ) [ 스프링 ] 관심사의 분리 ( DAO ) 스프링 프레임워크를 사용하기 위한 기본 개념을 하나씩 정리해볼까 한다. ▷ 분리와 확장 분리와 확장을 고려한 설계는 미래를 대비한다. 프로그램을 만들 때는 lordofkangs.tistory.com 지난 포스팅에서 추상클래스를 이용하여 관심사를 확장시켰다. 그러나 상속이라는 특성상 자식클래스는 부모클래스의 1가지 관심사만 상속할 수 없다. 확장성을 고려하여 추상클래스를 사용했지만 완벽한 분리가 이루어지지 않은 것이다. 그래서 이번에는 완벽한 분리를 위해, 하나의 관심사를 다른 클래스로 '분리'시킬 것이다. 추상클래스 코드 public abstract class UserDao { public abstract Conne..

SPRING/Spring Basic 2021.07.22

[스프링] 관심사의 확장 ( 추상클래스 )

[ 스프링 ] 관심사의 분리 ( DAO ) 스프링 프레임워크를 사용하기 위한 기본 개념을 하나씩 정리해볼까 한다. ▷ 분리와 확장 분리와 확장을 고려한 설계는 미래를 대비한다. 프로그램을 만들 때는 '분리'와 '확장'을 고려해야한 lordofkangs.tistory.com 지난 포스팅에서 관심사의 분리에 대해서 알아보았다. 코드는 '관심사'가 있다. 관심사 별로 분리해줘야 유지보수가 용이하다. 관심사 분리 지난 포스팅에서 DAO 객체의 코드를 관심사 별로 분리하였다. 세부적으로 들어가면 더 많은 관심사로 나눌 수 있지만 크게 세 가지로 나눌 수 있다. 1. DB접근 객체 생성 2. 레코드 삽입 3. 레코드 추출 세 가지 관심사를 메소드 별로 '분리'하였다. public class UserDao { //D..

SPRING/Spring Basic 2021.07.21

[스프링] 관심사의 분리 ( 메소드 분리 )

스프링 프레임워크를 사용하기 위한 기본 개념을 하나씩 정리해볼까 한다. ▷ 분리와 확장 분리와 확장을 고려한 설계는 미래를 대비한다. 프로그램을 만들 때는 '분리'와 '확장'을 고려해야한다. 변화는 대체로 한 가지 관심에서 발생하지만 작업은 한 곳에 발생하지 않는다. 그러므로 분리와 확장이 고려되지 않은 코드는 '유지보수'가 어렵다. 그럼 이제부터 '분리' 와 '확장'을 고려하여 '변화에 대응하는 코드'를 작성해보자. ▷ 관심사의 분리 ( Separation of Concern ) 관심사의 분리란, 관심이 같은 거는 모으고 다른 거는 분리시키는 개념이다. 그럼 이를 DAO 객체를 통해 알아보자. DAO(Data Access Object) : DB에 접근하여 SQL문 실행을 전담하는 객체 UserDao 클..

SPRING/Spring Basic 2021.07.20