전체 글92 Spring Boot(Gradle) 젠킨스 구축 및 자동배포 - (3) 젠킨스 SSH 생성 후 워커 인스턴스에 등록 젠킨스에서 개인키와 공개키 쌍을 만들어서, 공개키를 워커 인스턴스에 등록해주면 이후 젠킨스에서만 워커에 ssh로 접속 가능 젠킨스에서 공개키,개인키 생성 ssh-keygen -t rsa -b 4096 -m PEM Your public key has been saved in {경로} 확인되는 {경로}에서 생성된 키 확인 가능 .pub 붙은게 공개키 안붙은게 개인키 공개키를 워커 인스턴스에 등록해야됨 첫번째 방법 워커 인스턴스 서버의(root 계정 X, 일반 계정) , root계정 테스트중 일반계정 vi /home/{유저명폴더}/.ssh/authorized_keys root계정 vi /root/.ssh/authorized_keys 경로에 직접 넣기 / 파일의 맨밑에 생성한 공개키 넣기 ※ 주의할 것 : 띄어.. 인프라/Jenkins 2021. 8. 31. GCP 인스턴스의 Centos7에 MaraiDB 설치 후 외부접속 && Character Set 변경 https://downloads.mariadb.org/mariadb/repositories/#distro=CentOS&distro_release=centos7-amd64--centos7&mirror=yongbok&version=10.6 MariaDB - Setting up MariaDB Repositories - MariaDB To generate the entries select an item from each of the boxes below. Once an item is selected in each box, your customized repository configuration will appear below. 1. Choose a Distro SLES openSUSE Arch Linux Mag.. 인프라/GCP 2021. 8. 31. Spring Boot(Gradle) 젠킨스 구축 및 자동배포 - (1) 젠킨스 세팅 환경 구성 centos7 : centos8로 시도시 일부 문제발생 GCP 인스턴스 3개 jenkins : 젠킨스 설치 인스턴스 / 최소 권장 사양 : CPU 2코어, 램 4G worker1 : 실제 웹 어플리케이션을 실행할 인스턴스 worker2 : 실제 웹 어플리케이션을 실행할 인스턴스 GCP 방화벽 추가 젠킨스, worker1 포트 관련 방화벽 추가 젠킨스 서버 && worker1~2 실행 명령어 sudo yum update # docker sudo yum install docker sudo systemctl start docker sudo chmod 666 /var/run/docker.sock docker login > 도커허브 계정 ID/PW 입력 후 Success 문구 확인 # JDK sudo .. 인프라/Jenkins 2021. 8. 31. 스프링 부트 테스트 도중 'Lock wait timeout exceeded; try restarting transaction' 스프링 테스트 코드를 아래와 같이 작성했다. DB를 수정하는 테스트코드이기 때문에 트랜잭션을 걸어줬다. 코드는 보안상 대충 수정했다.. @Transactional(value = "testTransactionManager") @Test void updateTest() throws Exception { ReqDTO reqDTO = new ReqDTO(); reqDTO.setTest("test"); MvcResult mvcResult = super.performReqBody(BEGIN_URL, "test/insert", reqDTO); this.mockMvc.perform(asyncDispatch(mvcResult)) .andDo(print()) .andExpect(status().isOk()) .andExp.. Database/Mysql 2021. 8. 17. Mybatis와 Jpa 사용시 트랜잭션 묶어서 사용하는 방법(※ 멀티 datasource 설정 / QueryDsl) JPA와 Mybatis를 동시에 사용하고 있다. 두 기술의 트랜잭션을 서로 공유하면서 사용하고 있는데 세팅한 방법을 기술한다. 실무에선 2개 이상의 데이터베이스를 한프로젝트에서 사용한다. application.yml에서는 아래와 같이 세팅한다 spring: ${보통 DB이름}: //자유롭게 입력 datasource: type: com.zaxxer.hikari.HikariDataSource driverClassName: com.mysql.cj.jdbc.Driver jdbcUrl: ${DB URL} username: ${DB 계정이름} password: ${DB 계정비밀번호} hikari: poolName: ${poolName} //자유롭게 입력 connectionTimeout: ?? maximumPoolS.. Tech/Spring 2021. 7. 24. Spring Filter에서 request Body 가공하기 목적 : 컨텐츠 검색시 싱글쿼터( ' )가 포함된 검색어가 있는경우 \를 붙여주기 마이바티스를 사용할수 밖에 없는 쿼리이며 mysql은 자바처럼 싱글쿼터를 \을 붙여줘야 인식하기 때문에 특정 컨트롤러에서 치환해도 되지만 공부할겸 필터에서 가공하는 코드를 작성해봤다. @ServletComponentScan @SpringBootApplication public class TestApplication { public static void main(String[] args) { SpringApplication.run(VodmanagerApplication.class); } } @ServletComponentScan 등록 등록해야 @WebFilter, @WebListener and @WebServlet 주석을 s.. Tech/Spring 2021. 7. 19. 실무에서 mybatis to querydsl 변환시 사용한 querydsl 문법 1. concat 사용 concat('http://', a.example1, '/', a.example2, '/', a.example3, '/abc.com') to Expressions.asString("http://").concat(QEntity.example1).concat(".").concat("abc) .concat("/").concat(QEntity.example2).concat("/").concat(QEntity.example3).concat("/abc.com").as("url") 보통 Qentity.example.concat("/").. 이런식으로 했는데 첫단어부터 상수를 써야되서 난감했다. 하지만 갓오버플로우로 해결!! 2. Expression.numberTemplate select uni.. Tech/QueryDSL 2021. 7. 14. vscode 단축키 정리 - 2 1. Ctrl + Shift + T (Reopen) 방금 전에 닫은 파일을 다시 열고 싶을때 사용 2. Ctrl + [ or ] 들여쓰기, 내어쓰기 3. Ctrl + Shift + K 해당 커서에 있는 행 삭제 4. Ctrl + Shift + P VS Code에서 사용할 수 있는 모든 명령어 입력 가능 5. Ctrl + P 파일들 쉽게 이동 6. Ctrl + J 하단 패널 껏다 키기 7. Ctrl + Shift + E 탐색기와 편집기 스위칭 8. Shift + Alt + A 전체 주석 IDE/vscode 2021. 4. 4. vscode 단축키 정리 - 1 1. Ctrl + D 현재 커서 위치의 단어와 같은 단어 하나씩 추가 선택 밑의 alert에 커서를 놓고 ctrl+D 위,가운데,아래 가 있을때 가운데에 커서를 놓고 누르면 가운데 -> 밑 -> 아래순으로 블럭 2. Ctrl + Shift + L 현재 커 위치의 단어와 같은 단어 모두 선택 ※ 다중 선택을 취소하고 싶을 때는 esc를 누르면 커서가 원래대로 돌아온다. 3. Alt + (위 아래 방향키) 현재 줄 이동 4. Alt + (클릭) 클릭하는 위치마다 커서를 만들어줌 5. Alt + Shift + (위 아래 방향키) 현재 커서에 있는 문장(?)을 복사해서 위,아래로 움직임 6. Alt + Shift + I 블럭을 씌운 후 클릭 시 커서가 좌르륵 생김 7. ALt + Shift + Drag 마우스의.. IDE/vscode 2021. 4. 4. Docker 명령어 정리 1. docker run 이미지 : 이미지 다운&실행 docker : 도커 클라이언트 언급 run : 컨테이너 생성 및 실행 이미지 : 컨테이너를 위한 이미지 2. docker run 이미지 (커스텀 명령어) : 이미지 내부에 있는 시작명령어 무시하고 커스텀 명령어 실행 docker : 도커 클라이언트 언급 run : 컨테이너 생성 및 실행 이미지 : 컨테이너를 위한 이미지 커스텀 명령어 : 원래 이미지가 가지고 있는 시작 명령어를 무시하고 여기에 엤는 커멘드를 실행 ex) ls, ping localhost ※ ls 커멘드는 현재 디렉토리의 파일 리스트 표출 3. docker ps : 현재 실행중인 컨테이너 나열 ps : process status ※ docker images, docker images .. 인프라/Docker 2021. 3. 24. 단위 테스트를위한 ReflectionTestUtils Mockito를 이용한 테스트 코드 작성시 발생한 이슈를 간단히 정리하고자 합니다. @Table(name = "category") @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Category extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name") private String name; @Column(name = "parent_id") private Long parentId; @Builder public Category(String name, Long pare.. Tech/Spring 2021. 3. 23. Springboot + GCP Cloud Storage 연동(파일 업로드, 다운로드) 회원 정보 수정에서 썸네일 업로드가 필요했습니다. 파일을 Gloud에 저장하여 업로드 및 다운이 필요했기에 현재 사용하고 있는 Google Cloud Platform을 선택하였습니다. 적용하는데 발생한 이슈위주로 적는 글이라, 자세한 설정은 아래 블로그를 참조해주세요. jyami.tistory.com/54 GCP Cloud Storage + Springboot 연동하기 이번 외주를 맡은 내용이 Google Cloud Storage를 이용해서 file을 업로드, 다운로드하는 API 기능을 구현해서 이 내용을 정리하고자 한다. Cloud Storage를 다루는 방법으로 Google Cloud Console, Cloud SDK를.. jyami.tistory.com 설정 gradle 설정을 다음과 같이 했습니다.. Tech/Spring 2021. 3. 22. 이전 1 2 3 4 5 6 7 8 다음