ddl-auto none일 때 db 수정
실 서비스 중인 프로젝트는 데이터 베이스가 날라가면 안되기에 ddl-auto를 none으로 둔다.
토이 프로젝트에서도 ddl-auto 를 none으로 두는 걸 권장한다.
이때, 데이터베이스는 직접 SQL문을 날려 구성하고 수정해야 한다.
우리 프로젝트는 초기 설정할 때 가장 처음 한 번만 ddl-auto를 create으로 해서 테이블들을 생성했다. 이후, 데이터베이스에 컬럼을 추가한다던가 제약조건을 건다던가 하는 수정 사항이 생기면 ddl-auto가 none이기에 직접 SQL문을 날려 수정해줬다.
자주 사용한 SQl문 두 가지를 소개한다. 아래 두 개면 컬럼 수정할 것도 없이 컬럼 관련된 것들은 다 해결 가능하다.
- 참고로 스프링에서 boolean 타입은 sql에서 bit(1)으로 표시된다. 아래는 실제 도메인 코드다.
튜토리얼 페이지 적용 시 백엔드가 할 일
- 주어진 조건
- 사용자는 회원가입 후 사이트 최초 접속 시 튜토리얼이 뜬다.
- 최초 접속 이후엔 튜토리얼이 뜨지 않는다.
- 이를 구현하기 위해, 아래 세 가지 기능을 구현했다.
- member 테이블에 튜토리얼 완료 여부 필드 추가. default는 false
- 튜토리얼 완료 API 구현. 튜토리얼 종료하면서 해당 API 호출 시, 완료했단 정보를 DB에 저장
- 로그인 시에, 튜토리얼 완료 여부를 알려주게 로그인 API response 수정
- 후기
- 중간에 사용자가 튜토리얼을 그만하는 기능은 넣지 않았기에 간단한 api를 구현하면 되었다.
- 처음에 프론트분의 의견을 반영해, 튜토리얼 완료 여부를 프론트측에서 기기 별로 저장할까 고민했다.
- 허나, 일반적으로 튜토리얼 페이지를 첫 로그인 시에만 뜨게 하는 걸 어떻게 구현 하는 지 찾아본 결과 멤버 테이블에 따로 튜토리얼 완료 여부 필드를 저장한단 걸 알게 되어 이를 프로젝트에 적용했다.
