본문 바로가기

TIL(Today I Learned it)

TIL.36 Trouble Shooting(일정관리 앱 만들기 JPA)

1. JPARepository -> DAO 패턴

jpaRepository를 사용하여 일정관리를 구현했지만,
조건에 DAO 클래스를 사용하여 Repository를 구현하라는 내용을 찾았고,
추가적인 학습시간이 필요했습니다.
DAO 패턴은 JPA의 EntityManager를 사용하여 데이터 접근을 처리하는 클래스인데
이 클래스를 Bean으로 등록하고, 데이터 접근 계층으로 명시하였습니다.
이로 인해 전체적인 클래스의 수정이 필요했고, 이 부분에서 시간이 많이 소요가 되었습니다.

하지만 DAO와 DTO의 차이점이라는 점에 너무 주목한 나머지 해당 애플리케이션의 보안을 생각하지 못했고 DTO를 만들지 않고 컨트롤러까지 DAO가 모든 영역을 침범하도록 학습하고 적용시켰습니다...(시간도 엄청 오래 걸렸습니다.)

DAO는 데이터베이스에 직접 접근한다는 점이 정보보안을 목표로 하는 저에게는 용납할 수 없는 일이었고, 결국 프로젝트를 갈아 엎고 DTO를 생성하여 프로젝트를 진행 했고 결국 기한 내에 완성을 해내고야 말았습니다.

또한 ERD에 대한 고민이 정말 많았는데 프로젝트 시작 며칠 전 부터 같은 팀원분이 빠르게 과제를 시작하셨고, 그 때부터 혼자서 종이에 여러번 그리면서 청사진을 생각했고, 따로 테이블을 분리하여 user_id와 schedule_id를 fk로 갖는 schedule_users 테이블을 생성하여 N:M 관계를 풀어내었습니다. 완벽히 적절한 해답인 지는 확실하지 않지만 댓글 테이블까지 관계형성을 하라는 조건은 없었기에 실행하였습니다.

더 작성하고 싶은 내용이 너무 많지만 현재시간 오전 4시 18분이 지나가고 있어 수면약은 복용하지 않은 상태로 잠을 청해야 겠습니다...(금일 힘들 예정)

데드라인이 정해지고 이렇게 힘들게 완성시킨 프로젝트이고 POST MAN으로 테스트도 정상 작동하였기 때문에 굉장히 만족하고 있습니다.

앞으로 경험하고 싶지는 않지만 개발자로 살다보면 이런 날이 많이 생기겠죠...

도파민과 멜라토닌과 아드레날린이 동시에 분비되는 밤입니다...

다들 굿밤!

생존자들 남기고 갑니다.

728x90