no image
[GitLab] rsync 를 이용한 cicd 자동화 배포
2019년도에 회사 내에서 GITLAB 을 이용하여 배포 자동화 작업을 하면서 작성했던 내용입니다. 설치형 GitLab 기준으로 작성한 내용이며 gitlab-runner 사용에 대한 내용은 포함되어 있지 않습니다. Apache 내에서 특정 Document Root 를 바라보고 있을 때 rsync 를 이용하여 웹 서비스를 배포하는 내용을 담고 있습니다. 다른 방식으로 배포하는 것을 참고하려면 이 글과는 맞지 않으니 다른 글을 참고하세요. 배포 전략 rsync 를 통해 운영 서버에 업로드하며 롤링 배포를 심볼릭 링크를 이용하여 기존 버전을 교체하는 방식으로 진행할 것이다. 저장소에서 TAG Push 를 통해 배포를 한다. CI/CD 파이프라인 내에서 rsync 를 통해 업로드를 한다. CI/CD Variab..
2022.06.09
no image
[GIT] SVN 에서 GIT 으로 이전하기
회사 내에서 SVN 을 GIT 으로 이전할 때 정리하여 작성했던 내용입니다.GIT 저장소 준비$ git clone SVN 으로부터 Clone$ git svn clone -s# ex) git svn clone svn://svn.somehost.com/some_repo some_repo_folder -srev-parse --git-path svn: command returned error: 127 오류날 경우git 저장소 폴더로 들어가서 아래 명령어를 실행한다.$ git svn gc다시 clone 명령어 실행해서 이어서 진행한다.브랜치 확인로컬, 원격 저장소에 모두 다 제대로 불러왔는지 확인한다.$ git branch -atrunk 로 내용 가져오기$ git checkout trunk$ git pull..
2022.06.09
no image
[K8S] nodePort, port, targetPort 구분
NodePort - 외부에서 접속하기 위해 사용하는 포트 port - Cluster 내부에서 사용할 Service 객체의 포트 targetPort - Service객체로 전달된 요청을 Pod(deployment)로 전달할때 사용하는 포트 apiVersion: v1 kind: Service metadata: name: helloworld-service spec: ports: - nodePort: 31001 port: 8080 targetPort: 80 protocol: TCP selector: app: helloworld type: NodePort https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=freepsw&logNo=2219100..
2022.06.08
no image
[DB] Oracle 최대/최소값에 대한 특정 컬럼 데이터 조회
예를 들어, SOME_TABLE 테이블 안에 SEQNO, CNT 컬럼이 있다.SEQNO 컬럼은 기본 키이고, CNT 컬럼은 중복된 값이 올 수 있으며 숫자만 취급한다. 여기서 CNT가 제일 큰 값을 찾으려면 아래와 같이 작성할 수 있을 것이다.SELECT MAX(CNT)FROM SOME_TABLE근데 여기서 CNT가 제일 큰 값의 레코드 중에 다른 컬럼의 데이터를 가져오고 싶은 경우가 있다.그렇다면 아래와 같이 작성할 수도 있을 것이다.SELECT SEQNO, CNTFROM SOME_TABLEWHERE CNT = ( SELECT MAX(CNT) FROM SOME_TABLE ) AND romnum =..
2022.06.08
no image
[K8S] Jaeger 설치 (jaeger-operator)
https://github.com/jaegertracing/jaeger-operator K8S 구성 설명: https://www.jaegertracing.io/docs/1.34/operator/ 포트 관련: https://www.jaegertracing.io/docs/next-release/getting-started/#all-in-one 한글 설명: https://www.oss.kr/storage/app/public/oss/9f/ca/[Jaeger]%20Solution%20Guide.pdf cert-manager 설치 $ kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.0/cert-manager.ya..
2022.06.08
no image
[ERROR] @WebMvcTest 시 Failed to load ApplicationContext 관련 (feat. JPA)
오류 내용 java.lang.IllegalStateException: Failed to load ApplicationContext ... Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'io.github.service.FooService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchi..
2022.06.07
no image
[K8S] Jaeger 설치 (jaeger-kubernetes)
jaeger-kubernetes 는 현재 deprecated 되었고 jaeger-operator 를 권고하고 있다. 이 글은 jaeger-kubernetes 기준으로 진행하면서 직접 사용하기까지의 기록을 담은 글이다. 이 글 대신 jaeger-operator 을 사용하는 내용을 보고 싶으면 여기로 가면 된다. 1. YML 설정 구성 다운로드 https://github.com/diazjf/meow-micro/blob/main/jaeger/jaeger-all-in-one.yaml (https://github.com/jaegertracing/jaeger-kubernetes 에서 제공하는 apiVersion 을 일부 수정) 을 적용한다. $ kubectl apply -f jaeger-all-in-one.yaml..
2022.05.26
[ERROR] java.lang.IllegalStateException: No primary or default constructor found for interface org.springframework.data.domain.Pageable
오류 내용 java.lang.IllegalStateException: No primary or default constructor found for interface org.springframework.data.domain.Pageable 해결 방안 이 오류는 Spring MVC 에서 Pageable 에 대한 파라미터 리졸버를 찾을 수 없어서 발생한다. 해결 방법은 두 가지인데 WebMvcConfigurationSupport 를 사용하고 있다면, WebMvcConfigurer 로 변경한다. addArgumentResolver 와 같은 Handler 를 오버라이딩을 한 후, PageableHandlerMethodArgumentResolver 를 추가한다.
2022.05.23
no image
[ERROR] cannot find symbol method builder()
오류 내용 > Task :cleanTest > Task :compileJava > Task :processResources UP-TO-DATE > Task :classes > Task :compileTestJava FAILED /SomethingProject/Someclass.java:31: error: cannot find symbol User user = userRepository.save(User.builder() ^ 해결 방안 보통 Intellij 와 IDE 에서 Spring Boot 프로젝트를 만들다보면 build.gradle 에 아래와 같이 의존성이 설정되어 있는 경우가 있다. compileOnly 'org.projectlombok:lombok' compileOnly 로 하게 되면 컴파일 시점..
2022.04.17