본문 바로가기

전체 글97

MSA로 전향한 11번가의 사례 📌Hystrix netfilx가 만든 fault tolerance library로 주로 장애 전파 방지와 resilience 기능을 한다. 🎨적용 방법 Hystrix annotation 사용 - hystrix javanic, spring cloud netfix에 포함되어 있음 @HystrixCommand public String anyMethod() { } Hystrix command 상속 pulbic class SampleCommand extends HystrixCommand { @Override protected String run() {} } hystrix command를 호출할 때 벌어지는 일 메소드를 intercept하여 대신 실행한다 - thread isolation 메소드 실행 결과 성공 혹.. 2023. 12. 6.
스프링부트3 페이징 처리 -jpa 이용 JPA Repository를 상속받으면 너~~~~~무 편리해서 빠져나오기 힘들다.. 즈파로도 페이징을 할 수 있지 않을까? 해서 찾아봤더니 아니나 다를까..! 레포지터리에서 jpa를 상속받고, pageable을 매개변수로 넣어준다. ++ List 였던 것을 페이징 처리를 위해 Page로 수정! public interface DealRepository extends JpaRepository { Page findAllByUuidAndIsDeletedFalse(String uuid, Pageable pageable); } dealPost list를 가져오는 서비스를 만들 것이다. uuid로 찾되, 삭제되지 않은 게시글만 가져온다! ++IsDeleted(Boolean isDeleted)로 했다가, 항상 fals.. 2023. 12. 6.
파사드 패턴 적용기 파사드 패턴이란? **파사드 패턴(Facade Pattern)**은 객체 지향 디자인 패턴 중 하나로, 서브시스템(여러 개의 클래스로 구성된 복잡한 시스템)을 단순화하고 클라이언트에게 편리한 인터페이스를 제공하기 위해 사용되는 패턴이다. 이 패턴은 복잡한 시스템을 감싸고, 클라이언트가 시스템 내부 구조를 알 필요 없이 간단하게 상호작용할 수 있도록 한다. 즉, 파사드는 중재자 역할을 하며, 클라이언트와 서브시스템 간의 인터페이스 역할을 수행한다. 파사드 패턴은 의존성을 낮춰 결합도를 높이고 코드 유지 보수를 개선하는 데 도움을 준다. 이게 뭘까 어떻게 코드에 적용해서 퀄리티를 높일 수 있을까? 궁금했는데 프로젝트 진행 중에 강사님께 파사드 패턴을 적용해보라는 조언을 받았다! 나의 상황 메인페이지에 카테고.. 2023. 12. 6.
스프링부트로 s3에 이미지 업로드 하기 ++열심히 삽질하고 영상도 찾아보고 구글도 찾아보다가 415에러의 늪에 빠져 허우적 거리다 찾은 쏫아날 구멍입니다! 저는 스프링 부트3에서 작업했습니다. 저의 상황부터 말씀드리자면, 유저가 게시글을 등록하려고 하면 text부분은 reqeustDto로 post service에서 save 되고, 이미지 파일은 MultiPartFile로 s3에 저장합니다. s3에서 저장하면 이미지에 접근할 수 있는 고유 url을 주는데 그것을 postId와 함께 이미지 entity에 저장합니다. 저는 모놀리식이 아닌 msa로 진행해서 이미지 entity에 저장할 때, 게시물에 접근하면 해당 이미지를 postId로 조회하기 때문에 postId와 이미지 url을 함께 저장하는 것입니다! 그리고 저는 백엔드를 맡았기 때문에 프론트.. 2023. 11. 29.
[queryDSL] 스프링 부트 3에 쿼리 dsl 설정하기 build.gradle에 의존성 추가 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta' annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" 그 아래에 경로 설정 tasks.named('test') { useJUnitPlatform() } // Querydsl 설정부 def generated = 'src/main/generated' // querydsl QClass 파.. 2023. 11. 28.
s3 랑 스프링부트랑 연동하기 aws들어가면 s3를 누르고 새 버킷 만들기를 누른다. 아래의 일반 구성에 버킷이름과 aws리전만 설정하고 나머지는 건들지 않는다! 이미 비공개로 안전하게 설정되어있으므로 ㅎㅎ 그리고 아래의 버킷만들기라는 주황색 버튼을 클릭하면 이미지를 담을 수 있는 버킷 생성! S3에 접근하기 위해 IAM 사용자에게 S3 접근 권한을 주고, 엑세스 키를 만들어 액세스 키, 비밀 엑세스 키를 설정하기 위해 IAM 항목에 들어간다. 아래와 같이 검색해서 들어가기 가능! IAM들어와서 정책 카테고리 들어간 후 정책생성이라는 주황색 버튼 클릭 내가만든 정책은 아래와 같다. 여기서 리소스를 눌러 arn을 추가한다! 해당 버킷에 대해서만 이 정책이 적용되어야 하므로 적용하고 싶은 버킷이름을 설정해주는 작업이다. 추가된 것을 확인.. 2023. 11. 21.