정리하기/DR

[Daily Report] 22.01.11 - DB Sync를 위한 DAO 작성

pythaac 2022. 1. 11. 22:36

Memo

DB Sync에 필요한 내용 정리

l  Category

-        tistory_cat_id (추가+제거)

l  Post

-        tistory_post_id (추가+제거)

-        postDate (제목+내용+태그)

 

Progress

l  진행 순서

-        Tistory~Allconstructor 추가

-        RepositorySync용 메서드 추가

-        API 데이터를 Tistory~All로 파싱

l  데이터 중복 고민

-        Sync를 위한 데이터 구조는 ~All의 일부

-        1) ~All을 그대로 사용 : 멤버에 null 포함

-        2) 새로 정의 : 데이터 중복

-        3) 상속 : SyncAll이 상속 (직관적 x)

-        결론 : 3) 상속해보자

l  Post Sync를 위한 데이터 구조

-        API에서 t_post_idt_cat_id를 수신

-        카테고리 변경 확인을 위해 두 매칭을 확인

-        DB : t_post_id > post_id > cat_id > t_cat_id로 확인해야함

-        TistoryCategory로 맵핑테이블 만들기

 

성능테스트하기

-        Table join vs 맵핑 테이블

 

New

Java에서 다중상속이 지원되지 않는 이유

l  사용하려했던 이유

-        각 테이블에 해당하는 DAO가 있음

-        두 테이블의 joinDAO를 정의하고 싶음

-        DAO를 상속하여 모든 멤버 표현 가능

l  문제점

-        DAO는 중복된 이름이 멤버가 있음

-        TistoryCategoryCategorycat_id라는 같은 이름의 멤버를 가짐

-        DAO를 상속받은 객체가 cat_id를 호출했을 때, 어떤 부모 객체의 멤버인지 모름

 

Mysql 타입 (DATE/DATETIME)

l  DATE : YYYY-MM-DD

l  DATETIME : YYYY-MM-DD HH:MM:SS

 

Things to know

DB 업데이트 순서

l  카테고리 추가

l  Post 정보 최신화 (추가/업데이트/삭제)

l  카테고리 업데이트

l  카테고리 삭제

Long 반환 함수인데 (long) double이 되는 이유