목록SPRING&JAVA (12)
ultra_dev
젠킨스: 오픈 소스 CI/CD 툴이다. 들어가기 앞서 잡담)이번에 젠킨스를 사용한 이유는 일단 '무료'이기 때문이다.예전 사이드 프로젝트 진행 때는 github actions를 써서 aws ec2에 CI/CD 작업을 진행했는데 이번엔 젠킨스를 쓰게 됐다. 사내 코드는 private Repository로 git 관리가 되고 있고, private repository에서 CI/CD를 구축하는 건 "조건부 무료.."즉 제 기능을 다 쓰려면 유료라고 볼 수 있다. 물론 public repository로 만들면 그런 제한이 없는 걸로 알고 있다. 마침 회사 서버 pc도 여유가 있으니 무료인 젠킨스를 사용해서 CI/CD를 구축하는 건 허락을 받고 진행했다.구축 이유는 개발 단계에서 프론트엔드와의 협업 때문이다. 프론..
https://tw-dev.tistory.com/151 Schema 여정기 Multi-Tenancy(feat. PostgreSQL) * PostgreSQL에는 Schema라는게 존재한다. MySQL에서는 Schema가 테이블을 의미하지만, PostgreSQL에서는 테이블의 집합을 의미, 하나의 데이터베이스를 논리적으로 나누는 개념이다. -> MySQL의 논리 데이터 tw-dev.tistory.com 앞전 멀티테넌시 관련해서 추가 요청 사항이 생겼다. 필터 단계에서 처리하는 것 외에도 컨트롤러에서 파라미터를 통해서 스키마를 바꿔줘야하는 경우가 생겼다. 처음에는 컨트롤러에서 해당 부분을 따로 처리했는데 그러다 보니까 너무 반복되는 코드가 많아진다는 걸 느꼈다. 마침 전에 공부했던 AOP와 커스텀 어노테이션이..
View Table : 데이터가 아닌 SQL 을 저장하고 있는, 보여주는 것 만을 목적으로 하는 테이블 -> 따라서 원본 테이블의 데이터가 변경되면 뷰 테이블에도 해당 변경 사항이 즉시 반영됨 장점 : 다른 쿼리나 뷰에서 재사용이 가능하기 때문에 개발 생산성 향상 -> 반복적인 작업이나 복잡한 쿼리의 경우 View Table을 사용하는 것이 효율적 단점 : 뷰 테이블 생성 이후 수정 어려움 -> 삭제 후 다시 만들면 됨, 어차피 뷰 테이블은 가상 테이블이니 타격 X 현재 회사 프로젝트에서 View Table을 만드려는 이유 : Admin Admin 역할 특성 상, 모든 회사 스키마의 값을 조회하는 경우 많음 이경우, 다중 스키마의 테이블을 하나의 엔티티로 ORM 매핑하는 것은 어려움 Client의 경우 ..
* PostgreSQL에는 Schema라는게 존재한다. MySQL에서는 Schema가 테이블을 의미하지만, PostgreSQL에서는 테이블의 집합을 의미, 하나의 데이터베이스를 논리적으로 나누는 개념이다. -> MySQL의 논리 데이터베이스와 유사하다고 볼 수 있다. 새로 만드는 서비스에서 회사별로 Schema를 통해 논리적으로 데이터베이스를 구분한다고 한다. 화면설계서 만들고 db가 나오려면 시간이 좀 걸린다고 하니까 스키마를 통한 회사 데이터베이스간 완전 격리를 예상하고 공통 코드를 설계했다. 처음엔 한번만 스키마를 바꿔주면 이후에 바꿀 필요가 없을 것이라고 예상했다. 그러라고 있는게 스키마니까.. 그 방법으로 찾은 것이 MultiTenancy https://www.baeldung.com/hibern..