본문 바로가기

전체 글251

GiftFunding) GitHub Actions CI/CD 적용하기[2] - CD 적용(1) 지난 포스팅에서 CI 를 적용해서 main 브랜치로 PR 요청 시 빌드(+ 테스트)를 자동으로 실행하도록 하였다.GiftFunding) GitHub Actions CI/CD 적용하기(1) - CI 적용 (tistory.com) 원격 repository" data-og-host="soni-developer.tistory.com" data-og-source-url="https://soni-developer.tistory.com/249" data-og-url="https://soni-developer.tistory.com/249" data-og-image="https://scrap.kakaocdn.net/dn/cKUC7A/hyWhay65CM/5Vch66Y9k82IQX9qkqRRW1/img.png?width=8.. 2024. 6. 29.
서브 모듈 설정을 배포 서버에서 읽지 못 하는 문제 해결 '배포 환경과 설정 파일 분리를 위한 작업) Private Repository 만들기 + Submodule 설정' 수정하기 (tistory.com) Tistory좀 아는 블로거들의 유용한 이야기www.tistory.com ec2에 jar 파일을 배포하였는데 실행이 안 되는 것을 확인하였다. 그에 대한 해결책을 강구하다가 DB 접속 정보 .yml 파일이 배포 서버에는 올라가있지 않은 것을 확인하였고 내 yml파일을 깃허브에 올리기 보다는 서브모듈을 통해 분리해주었다. 그런데 여전히 jar파일 실행 시 DB 연결 정보가 없다고 하는 것을 확인했고 S3 프로젝트 zip파일 확인 결과 서브모듈 디렉토리의 application-prod.yml은 업로드가 되지 않았다.  원인서브모듈 private repo에 접근할.. 2024. 6. 29.
배포 환경과 설정 파일 분리를 위한 작업) Private Repository 만들기 + Submodule 설정 DB에 접속하려면 DB 연결 정보가 담긴 설정파일이 필요한데 이 설정 파일을 비공개로 만들기 위해1. 별도의 Private Repository를 두어 설정 파일을 관리한다. 2. Main Repository에서 Private Repository를 Submodule로 참조한다. -> 즉, 설정 파일을 별도의 Private Repository에 업로드 하되, 프로젝트의 메인 레포지토리와 연동하기 위해 Submodule을 이용한다는 것 !   * SubmoduleGit 저장소 안에 다른 Git 저장소를 디렉토리로 분리해 넣는 것을 말한다.서브 모듈을 이용하면 독립된 Git 저장소를 Clone 하여 다른 Git 저장소 안에 포함할 수 있으며 각 저장소의 커밋은 독립적으로 관리 된다. 작업 과정1. 설정 파일을 .. 2024. 6. 29.
AWS) IAM에 대해서 IAM 이란 ? )하나의 AWS 계정 내에서 사용자 별로 권한을 분리하고 인증방식을 제어하는 통합관리 체계 서비스를 IAM(Identity and Access Management) 이라고 한다.IAM에서 사용하는 객체크게 2가지 영역으로 구성되어 있다. 사용자 정의 : IAM User, IAM Group, IAM Role 사용자의 권한 정의 : IAM Policy 사용자와 권한은 1:N 으로 매핑되며 IAM User + IAM Policy(s), IAM Group + IAM Policy(s), IAM Role + IAM Policy(s) 형태로 각 단위 객체에 권한을 붙여 사용한다.루트 계정과 IAM 객체맨 처음 만드는 AWS 계정은 루트계정이라고 부른다.루트 계정은 이 계정 내에서 할 수 있는 모든 행.. 2024. 6. 22.
GiftFunding) Redisson을 이용한 동시성 이슈 제어 기본적으로 웹 환경에서는 동시에 여러 요청들이 들어올 수 있고, 스프링 같은 멀티스레드 환경에서는 여러 스레드가 한 자원을 공유할 수 있어 데이터 정합성 문제가 발생할 수 있다. - 친구요청 (A->B)  친구요청 건(A) 사용자 조회 -> 친구 요청을 받은(B) 사용자 조회 -> 친구 테이블에서 A->B가 친구인지 / 친구 요청을 걸었는지 조회 -> 친구 테이블에서 B->A가 건 요청이 있는지 조회 -> 모든 예외에 걸리지 않으면 친구 테이블에 A->B에게 요청을 건 정보를 저장. ex)  B->A요청이 진행되고 있는 상태에서 A->B 요청이 실행되면 전자 요청이 없는 것으로 조회가 되기 때문에 A->B요청이 정상적인게 되어버림.Redis를 활용한 분산락을 사용해 동시성 제어를 할 수 있다.분산락: 분.. 2024. 5. 30.
GiftFunding) GitHub Actions CI/CD 적용하기[1] - CI 적용 GitHub Actions란 SW 개발 라이프 사이클 안에서 PR, Push 등의 이벤트 발생에 따라 자동화된 작업을 진행할 수있게 해주는 기능. 자동화된 작업이 필요한 경우 ?1. CI/CD   로컬 repository -> 원격 repository로 push하고 GitHub Actioins에서는 이벤트 발생에 따라 자동으로 빌드 및 배포하는 스크립트를 실행.    애플리케잇녀의 규모가 클수록 빌드, 배포 시간이 오래 걸리는데 이걸 자동화 시켜놓으면 시간 절약을 할 수있음2. Testing   팀 프로젝트 중 PR을 보내면 자동으로 테스트를 진행하는 것을 GitHub Actions로 구현 할 수 있다.   => 테스트 성공 여부에 따라서 자동으로 PR을 Open 및 Close 할 수있음.3. Cron .. 2024. 5. 21.
빌드란 ?, 빌드 도구 Gradle, gradle build vs ./gradlew build 프로젝트를 하면서 밥먹듯이 하는게 컴파일 빌드 실행 과정인데 부끄럽게도 빌드가 정확히 무슨 역할인지는 잘 모르고 있었던 것 같다. GitHub Actions로 CI코드를 작성하면서 build를 하는 코드 부분에 gradle build와 gradlew build의 차이점을 찾아보다가 빌드부터 제대로 공부하기로 하였다. 개발자가 코드를 작성하여 서버에 작성하는 것 - "배포"배포(Deploy)를 하기 위한 과정 - "빌드" 빌드란 ?컴파일된 소스 코드를 실행 가능한 애플리케이션으로 만들어주는 과정. ex) Java 프로젝트를 진행한다면 개발자가 작성한 A.jaca와 열어가지 정적 파일에 해당하는 resource가 존재. - 빌드 : 소스코드(.java)를 컴파일해 바이트코드(.class)로 변환하고 reso.. 2024. 4. 28.
GitHub Actions vs Jenkins 개인 프로젝트의 CI/CD를 적용하기 위해 tool들을 조사해보았다. CI / CD 기본 개념 (tistory.com) CI / CD 기본 개념 CI (Continuous Integration) : 지속적인 통합 -> 빌드와 테스트 자동화 모든 개발이 끝난 후 코드 품질을 관리하는 고전적인 방식의 단점을 해소하기 위해 나타난 개념 새로운 코드 변경 사항이 정기적 soni-developer.tistory.com GitHub Actions와 Jenkins의 자료를 가장 많이 찾아볼 수 있었다. 그래서 이 두 개의 차이점을 비교해서 어떤 것을 적용할지 고민해보았다. Jenkins 자유도 + 유연성 GitHub Actions 설정 간편 서버 설치 필요 클라우드에서 동작, 어떤 설치도 필요 없음. 작업이 동기적으.. 2024. 4. 23.
GiftFunding) TroubleShooting - Member API 컨트롤러 테스트 중 401 에러 아직 RestDocs는 만들지 않은 상태로 회원가입 성공 컨트롤러 테스트를 작성하였다. 코드는 아래 @WebMvcTest(value = MemberController.class, excludeFilters = { @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = SecurityConfig.class), @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = JwtAuthenticationFilter.class) } ) @AutoConfigureRestDocs class MemberControllerTest { @MockBean private MemberServiceImpl.. 2024. 4. 18.
728x90