[리팩토링] Mysql 데이터를 가져오자. Oracle.xml -> Mysql.xml 파일 생성

Welcome to Seoyun Dev Log·2022년 11월 20일
0

Oracle에서 Mysql로 마이그레이션한 이유

보글의 경우 데이터베이스와의 통신이 조회와 Join이 많은 애플리케이션입니다.
메인에서 서평을 랜덤으로 플레이해주는 형식이며 사이트 대부분이 텍스트를 조회하는 기능이 주이기 때문에
성능, 속도, 비용 절감 확성성 등을 고려하여 Mysql DBMS로 변경하기로 하였습니다.

Mysql은 대용량 데이터 처리나 복잡한 쿼리 처리에 최적화 되어 있습니다
웹 사이트에서 발생하는 트래픽, 다양한 데이터 요청을 빠르게 처리할 수 있고
다중 서버 구성을 통해 성능 및 안정성을 향상시킬 수 있습니다

  • 비용 절감 측면 고려
    Mysql은 Oracle보다 비용이 저렴합니다.
    또한 오픈 소스로 무료로 사용할 수 있기 때문에 라이선스 비용을 절감할 수 있습니다.
    오픈 소스이기 때문에 레퍼런스가 많고 다양한 지원이나 개발 리소스가 많아서 에러나 업그레이드를 할 경우에도 보다 수월하게 해결할 수 있는 장점이 있었습니다.

  • 확장성 고려
    이 부분을 가장 많이 고려했었고 Mysql은 확장성이 높아서 많은 레코드를 다룰 수 있으며
    수평 확장이 가능하다는 것입니다.

  • 유연성 고려
    MAC으로 변경 후 Oracel의 경우 MAC에서 지원하는 부분이 다르고 동작이 어려운 부분이 있어서 운영 체제 나 플랫폼에 큰 영향을 받지 않는 Mysql이 좋다고 판단하였습니다.
    이는 곧 제한없이 애플리케이션을 다양한 환경에서 실행할 수 있다는 것이기에 Mysql을 선택하였습니다

JPA로 변경하지 않은 이유

보글의 경우 데이터베이스와의 통신이 조회와 Join이 많은 애플리케이션입니다.
메인에서 서평을 랜덤으로 플레이해주는 형식이며 사이트 대부분이 텍스트를 조회하는 기능이 주이기 때문에
데이터베이스 성능 최적화가 중요하다고 생각하였고,

JPA로 변경했을 때의 이점과 Mybatis를 그대로 유지하는 방법을 고민하였을 때

JPA의 경우
객체중심적인 설계와 기본적인 쿼리는 JPQL로 데이터베이스 간의 매핑을 자동으로 처리해주기 때문에
개발자가 매핑 코드를 직접 작성하지 않아도되어 개발자가 쿼리를 작성하는 시간을 절약할 수 있다는 장점이 있지만 복잡한 쿼리나 사용법에 있어 능숙하지 않은 경우 성능 문제가 발생할 가능성이 있다고 판단하여 ORM 프레임워크를 유지하고 Mybatis를 사용하는 방법을 선택하였습니다.

Mybatis는 개발자가 직접 SQL문을 작성하여 데이터베이스와 상호 작용할 수 있도록 해주고,
복잡한 쿼리도 직접 작성할 수 있기 때문에 쿼리를 최적화하여 성능을 향상 시킬 수 있게 해줍니다.
Mybatis는 쿼리 캐싱과 같은 기능을 제공하여 빠른 실행을 지원해주기 때문에
성능 최적화에 있어 Mybatis를 선택했습니다.


쿼리

: Oracle -> Mysql

int -> Long으로 변환

: 대 공 사

Vo의 모든 타입을 long으로 변경해주고 그외 다른 코드들도 다 변경해줘야한다
DB 설계시부터 Long으로 하는 이유를 알겠음


spring -> springboot

profile
하루 일지 보단 행동 고찰 과정에 대한 개발 블로그

0개의 댓글

관련 채용 정보