"로직을 리팩토리하면서 문득 든 생각은 데이터베이스의 데이터에 접근하기 위해 생성하는 객체인 DAO를 나눌 수 있을까? 하는 생각이었다."
그래서 해보려고 한다.
기존의 DAO클래스이다. 데이터베이스와 관련된 로직을 여기서 다 처리하다 보니 유지보수의 어려움도 있고 가독성도 떨어진다. 그래서 해당 컨트롤러 마다 DAO클래스를 따로 만들려고 한다.
근데 어떻게 ?
DAO의 추상클래스를 하나 만들고 거기에서 모든 데이터베이스 처리를 하고 각 해당하는 DAO의 로직은 최대한 줄일 생각이고 컨트롤러에 해당하는 DAO객체의 인스턴스를 생성해서 사용하도록 할 것이다.
그래서 데이터를 불러오는 부분을 추상클래스에 구현했고, 이제부터 데이터베이스를 메모리에 올리는 작업은 ConnectionDriver()
한줄로 완성이다.
그리고 데이터작업을 하는 로직을 모두 이 추상메서드로 옮겼다.
회원가입 데이터베이스 액션 부분
로그인 데이터베이스 액션 부분
close()
액션 부분
데이터베이스를 다루는 함수들을 따로 모아서 제3자나 미래의 내가 봣을때 파악하기 쉽도록 DAO를 재구성했다.
회원가입 DAO
로그인 DAO
각 액션에 해당하는 메서드들만 있도록 나누는 작업을 했다.
추후에 데이터베이스를 다루는 다른 기능을 추가할 때 확장이 더 편해지고 분류가 더 편해진듯 하다.