일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 실전 자바 중급 2편
- LIST
- java
- 시작하세요! 도커 & 쿠버네티스
- 스레드 제어와 생명 주기
- 멀티 쓰레드
- 자바
- 도커 엔진
- container
- contatiner
- Docker
- 제네릭스
- 중급자바
- 컨테이너
- 김영한
- 쓰레드
- Kubernetes
- 인프런
- 스레드
- Thread
- 자료구조
- 시작하세요 도커 & 쿠버네티스
- Collection
- 리스트
- 오케스트레이션
- 쿠버네티스
- 동시성
- 실전 자바 고급 1편
- 도커
- 알고리즘
- Today
- Total
목록TroubleShooting & 고민 (35)
쌩로그
목록문제 발생 배경문제 해결 방향문제 해결요약1. 문제 발생 배경회사 사내 그룹웨어가 있다.각 직원마다 복지포인트가 주어진다.매달 11일마다 복지포인트가 새로 쌓여서 갱신된다.그런데, 1월 11일에 복지포인트가 갱신되지 않음과 동시에 백엔드로부터 받아온 데이터가 이상했다.코드를 확인해보니..@Component로 넣어놓은 클래스에 포인트를 계산하는 로직의 메서드가 있었고, 해당 메서드가 1월인지 아닌지에 따라 계산 방법이 틀려 if-else 처리되어 메서드를 호출한다.이때 API를 호출하는 날짜가 언제인지는 클래스의 인스턴스 변수로 넣어놓은 LocalDate 타입의 값을 통해 계산되는데, 이 값이 문제였다.왜 이 문제를 해가 바뀌고, 1월이 되었을 때야 발견했을까1월이 아니면, 문제가 되지 않기 때문이다...
목록문제 발생 배경문제 해결 핵심문제 해결 과정윈도우와 리눅스요약참고문제가 발생할 때 따로 기록하지 않았기 때문에 GPT가 준 파일들을 예시를 든 점 양해바란다.DB는 MariaDB다.참고로 해당 포스팅은 localhost에서의 환경이므로 호오오옥시나!! 운영과 연관지어 생각한다면 큰 일이 날 수도 있다는 점 참고하자. 3월 13일 수정이번 포스팅을 하고 다음날인 바로 오늘(3월13일)에 적용을 했지만, 잘 못된 내용이 있어서 수정한다.잘 못 말한 내용은 줄긋기(줄)로 표시하고 정정한 내용을 작성한다. 참고로 리눅스와 윈도우의 환경 차이가 있다.정확하게는 윈도우와 리눅스보다는 Docker Desktop이냐 아니냐의 차이다.1. 문제 발생 배경최근 도커 컴포즈를 이용해서 로컬호스트(localhost)에서 ..
목록문제 발생 배경 - 줄거리문제 발생 배경 핵심문제 해결요약1. 문제 발생 배경 - 줄거리현재 WAS 를 배포하는 중이다.배포에 GitLab 과 GitLab Runner 를 이용해서 CI/CD 를 적용하여 배포하는 중에 있었다. 코드 수정 후 main 브랜치에 merge혹은 push를 하면 GitLab & GitLab Runner가 이를 감지하여 자동적으로 배포하도록 하고 있었다.CI/CD 자체는 원활히 진행되었다.그런데 CI 과정에서 스프링 프로젝트의 application.yml 에 환경 변수로부터 읽어와야 하는 값들이 있다.예를 들면, DB user의 id와 password 다.아래는 그 예시다.spring: datasource: url: jdbc:RDB정보://호스트:포트이름/스키마..
목록포스팅 개요본론요약1. 포스팅 개요현재 회사에서 VM 위에 애플리케이션을 구축하려고 한다.VirtualBox 를 통해서 HostOS(윈도우) 그리고, VM 내의 GuestOS(Rocky Linux) 끼리 통신을 하려고 하는데 ping 통신이 되지 않았다.지금은 잘 된다.이 부분에 대해 문제를 해결한 포스팅이다.2. 본론먼저 GuestOS의 네트워크 어댑터는 어댑터에 브리지 로 설정한다. 이렇게 하면 HostOS에서 GuestOS 로의 통신은 가능하다.아래는 그 사진이다. 그리고 현재 Host OS의 IP는 다음과 같이 10.1.1.103 이다. 현재 케이블없이 Wifi 를 사용하는 중이다.vEthernet은 앞에 v가 붙은 것처럼 가상이다. 가볍게 무시하면 된다.이제 Guest OS에서 Host..
포스팅 개요타임 리프 사용시 겪는 모든 문제static 필요 Xjs 혹은 css 파일 링크시 경로에 staic 을 다음과 같이 붙였다. 근데 동작 안 한다.static은 안 붙여도 된단다.... 참고 : https://recordsoflife.tistory.com/268동적으로 입력 폼 처리순수 바닐라 JS로 querySelector 발라서 어째저째 동적으로 입력폼이 추가되도록 했다.심지어 GPT 두들기면서 입력값 검증까지 끝냈다.타임 리프 입히려는데, JS로 핸들링해서 만든 입력폼에 정작 중요한 타입리프 속성이 안 입혀진다...이걸 어짬...;;GPT는 리액트나 뷰를 권장하거나, 통신할 때 AJAX를 쓰라고 한다.타임리프 예시도 보여주긴했는데, 개번거로움;;;계(속) 추(가) 예정...이었는데, 갈..
목록포스팅 개요본론 요약1. 포스팅 개요컨트롤러 테스트를 하는 도중 ResponseEntity의 제너릭에 아무 타입도 지정해주지 않고 반환하려 한 요청 핸들러 메서드들이 있었다. 경고 줄이 나오는 게 조금 신경쓰였고, 수정, 삭제 같은 경우 HttpStatus 외에 메세지로 수정, 삭제가 완료되었다는 메세지를 응답 데이터로 넣어주는 게 좋을 거 같아서 아래와 같이 MessageResponse라는 커스텀 타입을 만들어서 반환하도록 했다. 그리고 컨트롤러 테스트를 하는 도중에 제너릭 타입을 바꾼 요청 매핑 핸들러 테스트만 실패했다. 이를 해결하고자 한 포스팅이다.2. 본론자 로그를 살펴보자.문제의 단서 첫 번째 200을 바랬지만, 406이 떴다.https://developer.mozilla.org..
목차포스팅 개요본론요약 및 참고 블로그1. 포스팅 개요해당 포스팅은 트러블 슈팅 포스팅이다.요즘 부트캠프 때 진행했던 메인 프로젝트르 리팩터링 하는 중이다.최대한 테스트 코드를 많이 짜고 있다.일단 내가 맡았던 도메인이었던 Borrow 라는 대여 CRUD를 지금 개발 & 구현 중인데,목록 쪽 개발중이다.여러 건의 게시물 목록을 응답하기 위해서 QueryDSL을 사용 중이다.(나중에는 JOOQ 배우고 JOOQ로 변경해볼 예정이다.)지금까지 트러블 슈팅 만난 배경이다.어디서 문제를 만났는지는 본론에서 살펴보자.2. 본론두 개의 코드를 아래에 쓸 것이다.근데 진짜 똑같다.한 군데가 다르다.근데 그 한 군데 때문에 테스트가 성공하거나, 테스트가 실패한다.(import와 패키지는 생략한다.)먼저 성공하는 코드다...
목록포스팅 개요본론결론 및 요약1. 포스팅 개요요즘 너무 인풋만 해서 output을 하려니 머리가 안 돌아가서 배운 걸 써먹기 위해서 부트 캠프 때 진행했던 메인 프로젝트를 리팩터링 중이다.테스트 코드도 일일이 다 작성하는 중이다.컨트롤러 Bean Validation 검증 테스트 중 강의 내용을 참고하는데도 컨트롤러 테스트에서 계속 성공하지 못 하길레 가만히 들여다봤더니, 컨트롤러에도 @Controller가 있고, 내부에 @ResponseBody를 가진 @RestController가 있듯이#ControllerAdvice에도 내부에 @ResponseBody를 가진 @RestControllerAdvice가 있다..@RestController를 몰라서 해맸다.그냥 잊지 않기 위해 포스팅 한다..레포 링크 :..
사용자를 나타내는 객체 이름으로 User를 사용하려고 했다.Entity를 만들고 실행해보니, 다음과 같은 에러가 났다. 찾아보니 User가 H2에서 예약어이기 때문이라고 한다.생각해보니 User를 못 써서 Member로 써왔던 거 같은데... 잊어버린 거 같다.한동안 Entity를 작성한 적이 없어서 잊고 있었는데, 그래서 내가 Member만 사용했던 게 생각났다...Member로 바꾸니깐 깔끔하게 실행된다. 참고 블로그P.S나는 단순히 사용자 객체를 나타내는 표현으로 Member를 사용한게 살짝 질려서 User를 쓰려했던거 뿐이다..
목록 포스팅 개요 본론 2-1. 환경 변수 지정 2-2. yml에 지정 요약 1. 포스팅 개요 해당 포스팅은 스프링부트에서 yml에 환경변수를 지정하고, 출력 테스트를 진행할 때 @Value 애너테이션의 동작에 대한 간단한 개요를 정리하려고 한다. 2. 본론 스프링 시큐리티를 통해 JWT를 적용하려고 하다가. yml에서 환경변수의 값을 지정하고, 출력 테스트를 하려고 할 때 null이 출력 됨을 확인했다. 2-1. 환경 변수 지정 먼저 값을 지정하려면, 윈도우 기준으로 시작 - '환경 변수'를 검색하면 시스템 시스템 환경 변수 편집이 나온다. 거기서 환경 변수 - 시스템 변수 - 새로 만들기 를 통해서 다음과 같이 변수 이름과 값을 넣으면 된다. 리눅스로 편하게 지정하려면 다음 명령어를 사..