분류 전체보기275 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. GiftFunding) Service 테스트 코드 작성하기 테스트를 만들 서비스 클래스에서 Ctrl + Shift + T 를 눌러서 테스트 파일을 생성한다. 컨트롤러 테스트에서는 상단에 @WebMvcTest(XxxController.class)를 붙여주었고 @Autowired를 이용해 Mockmvc나 ObjectMapper를 주입받았다. 이것들은 이미 만들어진 Bean을 주입받아서 사용한다. -> @WebMvcTest가 MockMvc를 빈으로 등록해줘서 @Autowired를 통해사용이 가능한 것. * Autowired 스프링 컨테이너에 등록한 빈에게 의존관계주이이 필요할 때, DI(의존성 주입)을 도와주는 어노테이션. 스프링 컨테이너에 빈을 모두 등록한 후, 의존성 주입 단계가 이루어짐. 이 때 @Autowired 어노테이션이 부여된 메서드가 실행되며 필요한 인.. 2024. 4. 17. GiftFunding) RestDocs + Swagger 적용하기(feat. Controller 테스트 코드 작성) RestDocs란 ? Spring Rest Docs는 Spring MVC를 사용하는 REST API를 문서화하는데 도움을 줌. Spring Rest Docs는 Spring MVC의 테스트를 실행하면서 생성된 응답을 기반으로 문서를 생성. API Spec과 문서화를 위한 테스트 코드가 일치하지 않으면 테스트 빌드를 실패하게 되어 테스트 코드로 검증된 문서를 보장할 수 있음. 테스트 코드에서 명세를 작성하기 때문에 비즈니스 로직의 가독성에 영향을 미치지 않음. Spring Rest Docs는 Asciidoctor를 사용하여 문서를 생성. 스프링 프로젝트 팀에서는 Swagger보다 Asciidoctor를 사용하는 것을 권장. Swagger는 어노테이션을 운영코드에 추가해야 함 -> 가독성이 떨어지고 운영코드에.. 2024. 4. 13. GiftFunding) 인증이 필요한 컨트롤러 메소드에 대해 @WithMockUser로 테스트 @AuthenticationPrincipal MemberDetailService의 loadUserByUsername 메서드가 return한 객체를 파라미터로 받아 사용할 수 있도록 해주는 어노테이션. @PostMapping("/request") @RedissonLock public ResponseEntity friendRequest( @RequestBody FriendRequest.Request request, @AuthenticationPrincipal UserAdapter userAdapter) { return ResponseEntity.ok(friendService.request(request, userAdapter)); } 나의 경우에는 친구요청을 걸 때 로그인 한 사용자의 정보를 받아오기 위해 .. 2024. 4. 8. 이전 1 2 3 4 5 6 7 ··· 31 다음 728x90