분류 전체보기 썸네일형 리스트형 aws codedeploy 블루/그린배포 중 오류 blue / green 배포 ci/cd 도중 발생한 에러 모든 설정 다 했는데 자꾸 실패.. 왜 자꾸 실패하는지 모르겠습니다. 심지어 UnknownError라고 합니다ㅠㅠ EC2 인스턴스 재부팅, codedeploy-agent 재설치도 해봤지만 같은 문제가 계속 발생했습니다.. EC2에 설치한 codedeploy-agent codedeploy-agent 서비스의 상태를 확인해봤습니다. 설치 후 실행 확인 시에는 정상이라 문제가 없다 생각하고 그냥 넘어갔었습니다.. 혹시 몰라 로그 파일(/var/log/aws/codedeploy-agent/codedeploy-agent.log)을 봤습니다. 그랬더니.. 에러가 계속 발생하고 있었습니다!!!! 그래도 일단 원인은 찾았어요. :) 현재 IAM 정책 EC2의 I.. 더보기 PUB/SUB 채팅서비스 redis ? kafka 이번 소프트웨어마에스트로 서비스에서 채팅서비스를 운영하면서 웹소켓의 stomp구조를 사용하게되었다. STOMP란 무엇일까 ? (Simple/Stream Text Oriented Message Protocol) websocket 위에서 동작하는 문자 기반 메세징 프로토콜로써 클라이언트와 서버가 전송할 메세지의 유형 형식 내용들을 정의하는 매니즘 TCP와 웹소켓과 같은 신뢰할 수 있는 양방향 스트리밍 네트워크 프로토콜 기본적으로 pub/sub 구조이며, 메세지 전송하고 받아 처리하는 부분이 확실히 정해져 있다. http 와 마찬가지로 frame을 사용해 전송하는 프로토콜 여기서 pub/sub 란 무엇인지 또 알아보겠습니다. 1. 이벤트메세지를 발행하는 publisher가 존재하고, publisher는 특정 .. 더보기 NAT Gateway를 왜 쓰는걸까 ? public 서브넷은 인터넷과 연결하여 외부에서 접근이 가능한 영역을 말한다. 따라서 public 서브넷과 인터넷 게이트웨이를 연결시킴으로서 외부 인터넷과 통신이 되게 하였다. private 서브넷은 외부 인터넷을 차단하고 내부에서만 사용하기 위해 만든 Subnet이다. 예를 들어 Database Service인 RDS를 넣어두고, RDS는 중요한 정보이니 외부에서의 접속을 차단하는 형태로 이용한다. "그런데 만일 RDS가 외부 인터넷을 통해 업데이트를 해야 할 일이 생긴다면 어떻게 해야할까?" 공인 IP를 생성해서 private 서브넷도 Internet Gateway를 통해 연결해줘야할까? 그러면 그건 public 서브넷이지 private가 아니게 된다. 그리고 외부에서도 침입이 가능해져 보안이 문제가.. 더보기 DTO에 Noargs 사용하는이유와 aceessLevel Protected을 사용하는이유 @Getter @NoArgsConstructor(access= AccessLevel.PROTECTED) public class SignUpRequestDto { private String email; private String password; } 👉 이러한 DTO에서 습관적으로 @NoArgsConstructor 를 붙여서 사용하곤 했는데, 사용하는 이유를 제대로 알지 못해서 이번 기회에 제대로 알아보고자 한다. 우선, 기본 생성자가 필요한 이유를 알기 위해서는 스프링이 어떻게 Dto를 JSON으로 맵핑하는지 그 원리를 알아야 한다. 스프링은 바로 Jackson 라이브러리의 ObjectMapper를 사용하여 JSON으로 맵핑한다! ObjectMapper는 직렬화(serialize), 역직렬화(deseri.. 더보기 AutoScaling 시작템플릿설정 실제 시작 템플릿 생성 화면 오토 스케일링 조정 옵션 Auto Scaling 그룹을 조정하는 다양한 조건 방법을 설정하는 옵션이다. 예를들어, CPU 점유율이 일정 %를 넘었을 때 추가로 늘리거나 아니면 2개 이상이 필요한 스택에서 EC2 하나가 죽었을 때 실행하거나 등 현재 인스턴스 수준 유지 관리, 수동 조정, 일정을 기반으로 조정, 온디맨드 기반 조정 등등 이 있다. CloudWatch이나 ELB(부하 분산)와 연계가 가능하다. 아래 사진과같이 어느 when일떄 take the action할지 옵션 조정 메뉴가 있다. 오토스케일링 동작 원리 복잡하지만 최대한 간단하게 요약하자면 다음과 같이 된다. EC2 인스턴스 클러스터 가 있고 8개의 인스턴스가 필요하다고 가정해보자 하드웨어가 터졌다던지 소프트웨.. 더보기 JSON parse error: Cannot deserialize value of type `enum package` 이게 무슨오류일까 ?? enum을 validationCheck해주는 어노테이션을 만들다가 오류가 발생했다. 기본적으로 json body를 받을때, json to object 과정에서 deserialize 는Jackson라이브러리에서 실행됩니다. 이 경우 enum value의 name과 완전 동일한경우, 기본 deserialize가 있기에 문제는 없으나, 변수가 조금이라도 틀리게되면 바로 이런 에러를 맞이하게됩니다. JSON parse error: Cannot deserialize value of type `enum package` 이경우 해당 에러를 맞이하지않고, 내가 지정한 setter를 사용하게끔 지원하는 @JsonCreator라는 어노테이션이 필요합니다. youth,adult,oldMan; @Jso.. 더보기 reset --hard로 삭제한 커밋 git reflog를 이용해 살리기 프로젝트를 진행하면서 reset --hard 로 커밋을삭제하면 원래 기존의 status 값을 반환해주는 줄 알았는데아니었다... 결국에는 reset --hard 로 내가 작업한 영역이 사라졌다. 어떻게 다시 내가 작업한 영역을 가져올지 서칭을 통해알게되었다. git reflog실수로 reset --hard로 파일을 지운 경우 위 명령어를 이용해 복원할 수 있다.전체적인 과정은 다음과 같다.git reflog로 이전 커밋 목록을 띄운다복원하고 싶은 커밋으로 checkout 한다.커밋에 checkout 한 상태이기 때문에 Detached HEAD 상태가 된다.복원하고 싶은 커밋에서 git branch backup 명령어로 브랜치를 만든다. (브랜치 이름이 꼭 backup일 필요는 없다. 원하는 브랜치 .. 더보기 컬렉션 fetch join 및 페이징 applying in memory 오류 이번에 프로젝트를 하는 도중에 2023-08-01 23:49:22.440 WARN 2334 --- [nio-8080-exec-7] o.h.h.internal.ast.QueryTranslatorImpl : HHH000104: firstResult/maxResults specified with collection fetch; applying in memory! 2023-08-01 23:49:22.441 DEBUG 2334 --- [nio-8080-exec-7] org.hibernate.SQL 이런 경고로그가 발생했다 어 뭐지 ..? 코드를 다시보니 JPAQuery contentQuery = selectFrom(board) .leftJoin(board.comments, comment).fetchJoin() ... 더보기 이전 1 ··· 5 6 7 8 9 10 11 ··· 35 다음