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
no image
[Spring] JPA 에서 Oracle DB 사용할 때 DB 함수 사용하기
JPAExpressions 와 SQLExpressions 를 섞어서 사용할 수 없기 때문에 사용자가 수동으로 함수를 등록해주어야 한다. (대소문자는 상관없다) 이는 QueryDSL 에서도 적용이 되는데, 먼저 DB 설정에서 Adapter 를 설정해줄 때 아래와 같이 코드를 입력해주고, EntityManagerFactory 에서 사용하도록 해준다. ... @Bean public JpaVendorAdapter dbJpaVendorAdapter() { HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter(); adapter.setDatabasePlatform("kr.pe.karsei.configs.DbDialect"); // Dialect 연결 ..
2022.04.04
no image
[Spring] JPA 와 Mybatis 동시 사용 시 Connection Deadlock 벗어나기
PHP 에서 Java 로 작업을 진행하면서 기존에 작성했던 Query 문을 사용해야 할 필요가 생었겼다. 근데 한번에 효율적으로 데이터들을 불러오려고 작성된 Query 를 사용하려다보니 우선은 Query 문의 길이가 길었고, DBMS 의 고유 기능을 사용한 것이 많았다. 사내에서 작성된 Query 들을 되돌아보니 DB 테이블들이 상당히 많아 복합적으로 Join 을 하거나 서브쿼리가 많이 존재했고, Oracle 의 START WITH ... CONNECT BY ... 처럼 특수 기능을 사용하고 있거나, LOB 관련 함수 등 그저 JPA 만으로는 분명 해결하기 까다로운 이슈들이 있다고 생각했다. 난이도도 있고 QueryDSL 를 사용한다고 해도 다른 사람들이 유지보수를 할 때 과연 잘 할 수 있을까? 하는 ..
2022.04.04
[Linux] 폴더(디렉토리) 용량 확인하는 방법
디렉토리 별로 하위 디렉토리까지 확인 $ du -h /폴더명 하위 디렉토리까지 확인 $ du -hs /폴더명 디렉토리 별 용량 확인 $ du -h --max-depth=2
2022.03.27
[Linux] 열린 포트와 관련된 여러 가지 netstat 명령어
열려있는 모든 포트 확인 $ netstat -nap LISTEN 되는 모든 포트 확인 $ netstat -l (netstat -nap | grep LISTEN) 모든 서비스의 동시 접속자 수 $ netstat -nap | grep ESTABLISHED | wc -l 웹 동시 접속자 수(웹 포트 - 80) $ netstat -nap | grep :80 | grep ESTABLISHED | wc -l
2022.03.27