전체 글
-
[토이프로젝트] 스프링 클라우드 기반 MSA 앨범 판매 사이트Project/토이프로젝트 2023. 12. 10. 17:25
0. Docker Yaml 파일 레포지토리 https://github.com/JEONSEUNGREE/msa-docker-compose GitHub - JEONSEUNGREE/msa-docker-compose: 앨범 판매 서비스 - 마이크로 서비스 도커환경 배포 앨범 판매 서비스 - 마이크로 서비스 도커환경 배포. Contribute to JEONSEUNGREE/msa-docker-compose development by creating an account on GitHub. github.com 1. 전체 소스 코드 레포지토리 spring cloud config 프로젝트를 제외한 나머지는 한 레포지토리에 생성 전체 소스 https://github.com/JEONSEUNGREE/msa-project conf..
-
[토이프로젝트] 스프링 클라우드 기반 MSA 앨범 판매 사이트Project/토이프로젝트 2023. 12. 10. 00:33
작년 초에 MSA에 대해 공부를 진행 했었다. 실습용으로 가벼운 프로젝트를 하나 생성했다. 0. 프로젝트로 얻은 경험 1. 도커에 대한 두려움이 많이 사라졌다. -> 도커허브에서 필요한 이미지를 사용, 빌드, 허브에 커밋 정도.. 2. 도커와 도커의 네트워크에 대한 기초 지식을 조금이나마 쌓을 수 있었다. -> 도커 네트워크를 호스트외에 브릿지로 구성하여 포트 충돌 방지 3. 도커를 어느 부분에 사용해야 할지 어느정도 알 수 있었다. -> 주로 배포를 목적 이미지 빌드용으로 사용한다. 4. MSA SAGA 패턴 학습 -> 트랜잭션 기반에서 이벤트 기반으로 서로 다른 서버간의 데이터 처리 예시로 서버가 서로 다르기 때문에 하나의 트랜잭션에서 작업이 불가하고 롤백도 구성하기 어려워 에러 발생시 보상 이벤트를..
-
[토이프로젝트] 객실 예약 사이트 - 3rd ~ 4th 스프린트Project/토이프로젝트 2023. 12. 9. 19:19
3rd ~ 4th 스프린트 0. 주요 목표 1. FE 회원 가입 + 로그인 (OAuth2.0 kakao, gmail, google, 기본 회원 가입) 2. BE 회원 가입 + 로그인(OAuth2.0 kakao, gmail, google, 기본 회원 가입) 3. FE 회사 회원 가입 4. BE 회사, 리뷰 등록, 객실 등록, 예약, 팔로우, 고객 센터 api 생성 스프린트를 하나 더 만들어야 했는데 어정쩡하게 되어 그냥 진행되었다. 1. BE 소셜 로그인 작업 작업 ID : TSK-40 1. OAuth2.0 작업 2. jwt 토큰으로 인증 정책 설정 3. OAuth2.0 프로퍼티 반영 OAuth2.0 관련 작업 코드 https://heehee-myblog.tistory.com/23 SpringSecurit..
-
[토이프로젝트] 객실 예약 사이트 - 2ed 스프린트Project/토이프로젝트 2023. 12. 8. 18:35
2ed 스프린트 0. 주요 목표 1. FE 메인화면 작업 2. BE 개발 서버 DB 생성 (k8s pv,pvc) 3. 메인화면 추천 객실 더미 데이터 생성 4. 도메인 모듈 기본 CRUD 테스트 도메인 모듈내에 기본 SpringDataJpa를 통해서 구현 작업 도메인 모듈 사용 시 jpa 활용 방법에 크게 3가지 방법이 보였다. 1. 도메인 모듈 자체에서 기본 CRUD 구현 하여 어플리케이션 레벨에서 사용 2. 도메인 모듈에서 인터페이스만 구현하고 어플리케이션 레벨에서 상속 받아 구현 후 사용 3. 2번째 방법에서 중간 모듈을 한번 더 만들어서 인터페이스를 구현하여 사용 2번째 방법이 의존성을 낮출 수 있지만 모듈로 분리하여 이용할때의 장점이 크게 없어 보였다. 아니면 3번째으로 중간 모듈을 만들어도 되..
-
[토이프로젝트] 객실 예약 사이트 - 1st 스프린트Project/토이프로젝트 2023. 12. 8. 15:38
1st 스프린트 회고 1. 기획 객실 예약 클론 사이트 선정, 상세 기획은 노션에 기록 https://www.tripadvisor.co.kr/ - 트립어드바이저 클론 사이트 선정 트립어드바이저: 10억 건 이상의 호텔, 관광명소, 음식점 리뷰와 포스팅이 모여드는 곳 다음 여행을 계획하고, 리뷰를 읽고, 트립어드바이저 커뮤니티에서 숙박 장소와 볼거리 및 즐길거리에 대한 여행 조언을 받으세요. 호텔 할인을 찾고, 완벽한 투어 또는 관광명소를 예약하고, www.tripadvisor.co.kr 2. 테이블 설계 erd cloud 사용 https://www.erdcloud.com/d/nc9fKXgmyzuKmYg9v TP Draw ERD with your team members. All states are shar..
-
[스프링부트] @DataJpaTest 멀티스레드에서 no value presentBackEnd/SpringBoot 2023. 12. 6. 18:16
비관적 락 테스트를 하기 위해서 멀티 스레드 코드를 테스트하였다. 문제 환경 0. 테스트용 메모리 디비를 사용한다. 1. EntityManger도 @PersistenceContext로 팩토리를 통해서 tread-safe하도록 생성했다. 2. @DataJpaTest 사용하여 테스트 테스트 시나리오 1. 테스트 전에 이미 더미 데이터를 넣고 시작한다. 2. entitymanager로 flush()와 clear()를 사용하여 커밋과 1차캐시를 삭제한다. 3. 멀티 스레드 테스트 코드를 실행 한다. 1. 문제의 테스트 코드 2. 스레드 내부 메서드 foundUser에서 no value present가 발생한다. 오류를 찾을수가 없어서 log를 확인했다. application-test.yaml에 로그를 확인 할..
-
[스프링부트] 이미지 업로드 테스트 postman + restdocsBackEnd/SpringBoot 2023. 12. 3. 19:44
1. RequestPart Content-Type이 multipart/form-data로 오는 요청에 대해 동작하며 MultipartResolver 를 통해서 multipartFile을 받을 수있고 동시에 HttpMessageConverter를 통해서 RequestBody도 수행함을 알 수있다. 공식문서 : https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestPart.html RequestPart (Spring Framework 6.1.1 API) Annotation that can be used to associate the part of a "multip..
-
[스프링부트] 테스트 시 Mysql관련 에러 Unique index or primary key violationBackEnd/SpringBoot 2023. 11. 24. 11:27
0. 결론 1. @SpringBootTest를 사용하였고 컴포넌트스캔 범위가 전역으로 지정되었다. 2. 따라서 기존에 CommandLineRunner로 만든 더미데이터 컴포넌트를 스캔해서 데이터를 읽어서 발생한 오류였다. 3. 디버깅을 해서 쿼리 확인을 해보는게 가장 빨리 해결하는 방법인것같다. 4. 또한 통합테스트가 아니고서는 테스트 속도가 현저하게 떨어질수있기때문에 각 테스트에 맞게 테스크 클래스를 선택해야 한다. 1. 발생 경위 테스트코드 런타임중 에러 발생 에러코드 : [23505-214] 설명 : Unique index or primary key violation: "PUBLIC.UK_GXRAOQ3YFQ2112DHX6K3I3QWO_INDEX_2 ON PUBLIC.USER_MS(USER_EMAIL..