원본 본문으로 이동하기

사로 서블릿 -> 스프링 교체기 : 1. DBMS

박용서 - 이번에 사로[사로, 가리사니, 라온등...]의 사이트를 전부 스프링으로 교체를 하려고합니다. 하지만 처음부터 문제가 발생했습니다. 하하하..... 문제 1 : DBMS [미디어]가리사니 1-158.png[/미디어] 프로시저/함수 그전까지 가장 큰 문제점이 모든걸 프로시저(pg-sql에선 함수)로 만들어놨기 때문에 orm 활용이 거의 불가능 하다는 단점이 있습니다. (사이트전체가 SPA라 주요 정보를 빼고 리턴해야하기 때문에 PG-SQL에서 텍스트형태의 json까지 만들어서 컨트롤에 붙인게 화근이였습니다...) 함수만해도 가리사니 98개.. 사로 52개... 테이블 결정적으로 네이밍을 잘못했습니다. 사실 이걸 처음 만들었을 당시에는 함수를 인터페이스 삼아 함수만을 사용하다보니 함수와 테이블을 구분하자라는 마음으로 잘 쓰지않는 테이블은 파스칼, 함수는 스네이크로 표현했는데... PG-SQL은 [영문소문자/숫자/_]외 다른 조합을 쓸 경우 ""로 묶어서 예외처리를 해야합니다. (데이터베이스에서 예약어를 테이블, 컬럼등에 쓸경우와 똑같은 처리라고 보시면됩니다. mysql = ``, mssql = [], postgresql = "") 결론 그나마 필드는 다시 스네이크이기 때문에 테이블 이름을 한번에 마이그레이션 할 수 있는 쿼리를 짜두기로 했습니다. 참고 낙타 표기법 : camelCase 파스칼 표기법 : PascalCase, UpperCamelCase 스네이크 표기법 : snake_case 문제 2: 도메인 노가다 테이블만해도 수십개인데.. 저건 언제다 만들지... 그래서 Hibernate Tools ( https://gs.saro.me/#!m=elec&jn=805 )을 써봤지만 결과가 깔끔하지 않아 직접 만들었습니다.... [미디어]가리사니 1-159.png[/미디어] 이건 가리사니까지 모두 만든뒤에 웹사이트로 공개할 예정입니다. : postgresql, mysql, mssql 지원예정 (나머지는 오픈소스로 열어두고 작성되면 작성자 이름과 함께 걸어둘생각!!) (입력 -> 사용자 지정 -> 결과 -> zip파일로 다운로드) 추신 취업준비로 인해 잠시 작업을 홀드합니다. ㅠㅠ... - 서블릿 스프링mysql 기준으로 lastDate 같은건 자동설정하게 할수 잇을듯 [코드] @Column(name="last_date", columnDefinition="TIMESTAMP DEFAULT now() ON UPDATE now()") Date lastDate; [/코드] MySQL 기준으로 필드내 문에 있을 경우 고려해봐야겠네요.