Infra

    [Flyway] 간략히 알아보는 Flyway 적용법

    간략히 알아보는 FlyWay 적용법 FlyWay? DB Migration Tool 도입하게된 이유는? 진행 중인 프로젝트에서 spring.jpa.hibernate.ddl-auto 속성을 update을 이용했었는데 운영서버와 개발서버 간의 문제가 간간히 발생했고, create 속성으로 두기에도 데이터가 계속해서 날라가는 단점이 있었다. validate 으로 두고 진행하니, 운영서버와 개발서버를 나누고 있는 상황에서 한 쪽에만 DDL, DML을 적용되는 실수가 발생할 수 있기에 이를 쉽게 관리하기 위해 사용했다. 또한, 버전 기록이 남아있어 변경 내역을 확인할 수가 있다는 장점이 있다. 적용법 build.gradle 의존성 추가 dependencies { implementation 'org.flywa..

    [Jenkins] 간략히보는 SonarQube와 Jenkins 연동하기

    간략히보는 SonarQube와 Jenkins 연동하기 EC2를 하나 파서 도커를 설치한다. sudo apt-get update && \ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && \ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \ sudo apt-key fingerprint 0EBFCD88 && \ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) st..

    [DB] Mysql Order By 쿼리 ONLY_FULL_GROUP_BY 문제 해결

    MySql Order By 쿼리 ONLY_FULL_GROUP_BY 문제 해결 MySql 에서는 Group By 사용 시에 필드에 집계함수만을 사용할 수 있게끔 하기 때문에 생긴 문제다. SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); 입력해주자. REFERENCE https://stackoverflow.com/questions/23921117/disable-only-full-group-by

    [Nginx] 하나의 Nginx로 여러 upstream 처리하기

    하나의 Nginx로 여러 upstream 처리하기 events {} http { upstream app { server 앱_아이피; } upstream api-dev { server 데브서버_아이피; } upstream api { server 프로드서버_아이피; } # Redirect all traffic to HTTPS // server { // listen 80; // return 301 https://$host$request_uri; // } // // server { // listen 443 ssl; // location / { // proxy_pass http://app; // } // } server { listen 80; server_name api-dev.thankyou-for.com; r..

    [Jenkins] PR 라벨에 따른 젠킨스 빌드 유발 설정

    PR 라벨에 따른 젠킨스 빌드 유발 설정 현재 진행중인 프로젝트의 main 브랜치는 다음과 같이 client와 server 디렉토리로 나뉘게 된다. 각각 프론트와 백이다. 만약 단순히 해당 브랜치가 push 될 때에 빌드 유발을 하게끔 설정해놓는다면 client 디렉토리 내부의 코드가 변경이 생겨서 push 된다고 했을 때에 server를 담당하고 있는 젠킨스 아이템 또한 빌드 유발이 되어 불필요한 CI/CD가 일어나게 될 것이다. main 브랜치는 직접적인 푸쉬가 제한되고 오직 머지를 통해서만 변경이 가능하다는 가정하에, PR 라벨을 통한 효율적인 젠킨스 빌드 유발 설정에 대해 알아보겠다. 기본적인 젠킨스 사용법을 안다는 가정하에 진행하겠다. 보통 빌드 유발 설정 시에 위의 사진에 해당하는 GitHub..

    [DB] drop, Delete, truncate 에 대해

    drop, delete, truncate 에 대해 drop 테이블 자체를 삭제하는 명령어다. 테이블 자체가 모두 지워지고 생성되어 있던 인덱스도 삭제된다. 테이블이 사용했던 Storage는 모두 Release 처리된다. 오라클 10g 부터는 테이블이 삭제되는 것이 아니라 휴지통 개념처럼 잠시 삭제되고, 테이블 이름이 BIN$...로 변경된다. drop table [table_name] delete 데이터만 삭제되고 테이블 용량은 줄어 들지 않는다. 커밋이전에는 롤백이 가능하다. 전체 또는 일부 데이터 삭제가 가능하다. 데이터를 모두 Delete해도 사용했던 Storage는 Release 처리되지 않는다. truncate 테이블을 최초 생성된 초기상태로 만든다. 용량이 줄어들고 인덱스 등도 모두 삭제된다...