전체 글
-
[CICD] 프로젝트 빌드Health-Genie 2024. 1. 25. 16:02
기존에는 프로젝트 빌드 명령어를 아래와 같이 작성했어서 해당 관련 오류를 몰랐습니다. 해당 명령어에서 -x 는 test 를 하지않고 빌드하기에 성공은 했지만, 우리는 테스트를 제외할 수는 없었습니다. 위와 같이 작성하면 코드 변경이 적용되지 않고 기존 코드가 빌드에 성공함을 경험했습니다. 저는 jasypt를 활용해서 프로젝트를 빌드하고 있기에 아래와 같이 작성을 해줘야 test 진행 상황이 나옵니다! run: ./gradlew clean build -Pjasypt.encryptor.password=${{ secrets.JASYPT_ENCRYPTOR_PASSWORD }} 빌드 중 만난 문제 상황 1) redis connection timeout 발생 저는 main.yml 에 script 안에서 redis ..
-
[CICD] github actions CD ssh 연결안됨Health-Genie 2024. 1. 25. 15:20
문제 상황 현재 aws ec2와 docker등을 연결하는 중에 발생하는 에러 입니다. 여러 블로그를 구글링 했었다. 여러 시도 방법중 aws ec2 연결시 timeout도 넣어보고, https://github.com/marketplace/actions/ssh-remote-commands SSH Remote Commands - GitHub Marketplace Executing remote ssh commands github.com 위의 문서를 찾아보면서 password 대신에 key로 넣어 보고 했다. 방법은 맞았다 password 대신에 pem key를 사용하면 되는거 였는데, github setting 부분에서 나의 경우에는 pem키를 잘 못 넣었다. ---begin --- 부터 --- end ---..
-
[CICD] s3 zip 파일이 안열리는 문제!Health-Genie 2024. 1. 23. 16:35
문제 상황 github action까지 성공을 하고 서버에 연동이 안되길래 s3에 저장된 zip 파일을 열어서 확인하려고 했더니 zip 파일이 열리지 않았다. 처음에는 버킷의 access가 제한되어 있어서 그런가 싶어서 엑세스 권한 설정을 변경했는데, 해당 문제로는 해결이 되지 않았었다. [ zip 파일을 열어보는 방법은 버킷안으로 들어가서 속성을 보면 객체 URL 부분이 있는데 그 zip url을 열어 보면 됩니다 ] 그래서 버킷 안에 있는 권한 부분에서 버킷 정책을 봤더니 나느 비워져 있었다.. 해당 부분에 있어서 s3에 대한 delete, put, get action을 주고, 버킷 ARN ( amazon resource name )은 버킷의 속성부분에 보면 있습니다!. 이와 같이 버킷 정책을 추가해..
-
[Codedeploy] 에러메세지 및 해결방법 정리Health-Genie 2024. 1. 22. 17:37
다른 블로그를 따라하면서 EC2, S3, Code deploy를 하는 중에 아래 사진들과 같이 action은 성공을 하는데, 계속 code deploy 배포중에 오류가 생겼다. [ action 성공 사진 ] [ code deploy 배포 실패 사진 ] 해당 배포 ID 를 들어가면 위의 에러를 블로그에서 찾아보니까 s3 연동 문제이거나 main.yml 파일이 문제라고 하는데, 저 같은 경우는 아래 사진과 같이 s3에 zip 파일도 잘생겨서 해당 문제가 아니더라고요 ㅠ 그래서 code deploy에 배포 ID를 눌러보면 아래 배포 수명 주기 이벤트 부분에서 View events를 눌러보면 좀 더 자세한 에러 사항이 나옵니다. 저같은 경우는 아래 사진과 같은 에러가 나왔어요! 위와 같은 에러는 log를 찍어봐..
-
[error] 현재 브랜치의 끝이 리모트 브랜치보다 뒤에 있으므로 업데이트가 거부되었습니다Health-Genie 2024. 1. 22. 15:56
해당 문제는 git 문제입니다. 에러 해당 에러가 발생하면서 git push가 동작하지 않고 있습니다 에러 원인 개인적으로 여러 블로그를 찾아본 결과 기존에 같은 branch로 작성한 commit중에서 에러가 발생했는데, 지금의 커밋과 과거 에러가 났던 커밋의 충돌 때문이라고 보입니다. 에러 해결 방법 해결 방법은 2가지가 있는거 같습니다 1. 과거 에러가 발생했던 branch의 커밋이 필요없다면, github repository로 들어가서 해당 branch로 올린 과거 커밋 내역 삭제하기 2. git push origin 해당 branch --force 명령어를 통해서 과거 커밋 내용 상관없이 현재 커밋으로 덮어쓰기 에러 해결 결과 저는 2번째 방법을 통해서 위의 에러를 해결했습니다 개인적으로 첫번째 ..
-
의존성 주입 DI스프링 2024. 1. 15. 22:16
DI - 의존성 주입 DI는 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴으로, 인터페이스를 사이에 둬서 의존관계가 고정되지 않도록 런타임 시전에 동적으로 관계를 주입하여 결합도를 낮출 수 있다. 의존성 주입이라는 말을 예시를 통해서 정확히 무엇인지 알아보겠다. A가 B를 의존한다 → 의존대상 B가 변하면 그것이 A에게 영향을 미친다. (요리사)가 (레시피)에 의존한다 “피자가게의 요리사는 피자의 레시피에 의존”한다. 피자 레시피가 변하면 요리사는 피자를 만드는 방법을 수정해야 한다. 왜냐하면 레시피의 변화가 요리사의 행위에 영향을 끼치기에 “요리사는 레시피에 의존한다” 라고 할 수 있다. 왜 필요한가? DI를 적용하지 않는다면, 객체들 간의 관계가 아니라 클래스 간의 관계가 맺어질 뿐만 아니라 ..
-
[error] cannot deserialize from Object value (no delegate- or property-based Creator)Health-Genie 2024. 1. 13. 17:05
발생한 에러 cannot deserialize from Object value (no delegate- or property-based Creator) requestDTO를 받는 과정에서 발생한 원인 입니다 발생 당시 코드 @Getter @Builder public class PtReviewRequestDto { private Long id; private String content; private String stopReason; private Double reviewScore; private String userNickName; private String trainerNickName; // 작성하는 사람 } (no Creators, like default constructor, exist) 위의 내용..
-
[error] Name for argument of type [java.lang.Long] not specifiedT-note 2024. 1. 9. 15:17
발생한 에러 Name for argument of type [java.lang.Long] not specified, and parameter name information not found in class file either parameter에 @PathVariable을 사용했을때 명시되어 있는 이름이 없어서 나오는 에러이다. 해결 방법 구글링을 해보면, 나오는 해결 방법은 아래와 같다. 1. gradle에 추가해보기 compileJava {options.compilerArgs 설정 > 빌드, 실행, 배포 > 컴파일러 > 자바 컴파일러 위와 같이 해당 명령어를 추가하기 3. 파라미터에 이름을 정확하게 명시하기 -> 나의 경우에는 이 방법으로 되었다. 기존 코드 @PatchMapping("/{schedu..