작성
·
334
답변 1
0
안녕하세요 현우님!! 좋은 질문 감사드립니다~ 🙂
결론부터 말씀드리면 개발자가 선택할 수 있는 부분입니다!
강의에서 다루었던 것처럼 JPA를 사용할 경우에, ddl-auto 옵션을 통해 여러가지 DB 테이블 조작을 할 수 있습니다. 예를 들어 update
라는 설정을 주어 테이블의 변경된 지점을 자동으로 관리해줄 수 있고, create
라는 설정을 통해 테이블을 제거했다가 새로 만드는 것을 자동으로 해줄 수도 있죠. none
으로 설정하고 저희가 직접 리눅스에서는 테이블을 만들어줄 수도 있고요!
각 방법에는 장단점이 있습니다.
우선 update
같은 경우는, 개발자가 테이블을 매번 챙겨줄 필요가 없다는 장점이 있어요! 하지만 세밀하게 테이블을 관리하고 싶다거나, 서비스의 테이블 구조와 실제 테이블이 달라야 할 필요가 있다면 대응하기가 어렵다는 단점이 있습니다.
create
나 create-drop
같은 경우는 테이블이 삭제되는 과정이 있기 때문에 개발 및 배포 환경에서는 사용하기 부적절하고요!! (데이터가 모두 사라지니까요!!)
none
같은 경우는 update
와 반대로 테이블을 매번 챙겨줘야 하지만, 세밀하고 유연한 제어가 가능하다는 장점이 있습니다.
또한 추가적으로 강의에서 다루지는 않았지만 flyway
와 같은 마이그레이션 툴을 관리해서 DDL을 자동으로 적용시키기도 합니다. (이 툴은 MySQL 8 버전과 사용하려고 할 경우 유료에요! 🥺)
답변이 도움이 되었으면 좋겠습니다.
감사합니다! 🙏
명쾌한 답변 정말 감사합니다^^ 즐거운 주말 보내세요!