TodoDao와 TodoDto의 클래스를 만들어서 각각 분할해서 사용하는 이유
왜 분할해서 사용하는지 이유가 궁금해서 찾아보았는데 이해가 잘 안됐다. 너무 전문가적으로 장황하게 설명돼있기도 했고 쉽게 설명한 곳이 찾기 어려워 그냥 사용하다가 약간이나마 깨우쳤다.
DAO
한가지만 알자.
dao를 만들지 않는다면 매번 db로그인을 해야한다.
connection객체를 매번 생성해야하기 때문에 간편하게 dao를 만들고 crud작업을 할 때 객체생성 후 인자값만 던져주면 된다.
DTO
dto는 데이터를 받는 형식을 지정한다. 처음 사용할 때는 DTO를 많이 만들 필요가 없기에 DB테이블과 같은 형식일 것이다.
예를들어 userId, password, email, phone 칼럼이 있다면 dto도 칼럼과 같은 형식으로 선언하고 삽입할 때 dto를 그대로 넣으면 칼럼에 데이터가 모두 추가된다.
개발을 진행하다보면 모든 칼럼이 다 필요하지 않을때가 있다. userId와 email만 필요하다면 칼럼을 새로 만드는 것이 아니라 userId와 email만 받는 dto를 생성해서 데이터를 입력받고 해당 데이터를 처리한다. 즉 방금 만든 dto는 DB에 삽입되지 않으며 개발자의 필요에 의해 필요한 데이터만 뽑아 만든 형식이다.
dto에서 변수들은 모두 private으로 선언돼있다. 외부에서 임의로 수정 불가능하게 한 것이다.
그 이유는 public으로 지정돼있다면
ex)내가 음수값은 안받기로 설정해놧는데 그것을 뚫고 음수값으로 지정될 수 있어서다.
하지만 이럴경우 조회와 update등이 불가능하기 때문에 getter와 setter를 사용한다.
getter는 데이터손상없이 복사본을 들고올 수 있고 setter또한 설정범위내에 데이터를 박을 수 있다?.
그래서 getter와 setter를 사용하기 위해 dto를 사용한다는 느낌으로 이해하고 있다.
'IT > 부스트코스' 카테고리의 다른 글
부스트코스 웹앱개발 -2 AJAX (0) | 2020.04.22 |
---|---|
부스트코스 웹 앱 개발-1: 자바스크립트 배열 및 오브젝트 (0) | 2020.04.01 |
부스트코스 DB연결웹앱 #9 WEB API, REST API (0) | 2020.02.04 |
부스트코스 DB연결웹앱 #8 JDBC-2 (0) | 2020.02.03 |
부스트 코스 DB연결 웹앱#8 JDBC-1 (0) | 2020.02.03 |