애정코딩 💻

8. Service

@RequiredArgsConstructor @Service public class DiaryRegisterService { private final CoupleRepository coupleRepository; private final DiaryRepository diaryRepository; private final UserRepository userRepository; public DiaryRegisterResponse addDiary(DiaryRegisterRequest diaryRegisterRequest) { Couple couple = coupleRepository .findByCoupleToken(diaryRegisterRequest.getCoupleToken()) .orElseThrow(..

Project/DARLING 2022.02.16 Joana

7. CI/CD 계획

리팩토링이 30%정도 남은 시점에서 자동화 배포를 계획하고자합니다! 우선 처음해봐서 검색으로 찾아낸 방법을 실행한 후 방식을 이해하고 다른걸로 바꿔볼 예정입니다. 제일 많이 들어봤던 Jenkins, Docker를 사용할 예정입니다. 1. GitHub Push. 2. GitHub에서 Jenkins에 Build 유발한다. 3. Jenkins에서 Gradle Build하여 Jar 파일 생성 한다. 4. 생선된 Jar 파일을 build 한다. 5. DocerHub에 Push 한다. 6. Jenkins 가 DockerHub에 있는 파일을 pull 한다. 7. 이전 컨테이너 삭제 후 새로 받아온 이미지를 실행한다. https://velog.io/@haeny01/AWS-Jenkins%EB%A5%BC-%ED%99%9..

Project/DARLING 2022.02.09 Joana

6. 무엇이 문제일까 ...

Test 도중 이상하게 ResponseFileds를 받지 못하는 문제가 있다. 혹시나 해서 postman으로 테스트 해보았는데 아래와 같이 잘나온다 ... 테스트는 성공하지만 responseFields 가 없다며 계속해서 오류를 뱉는다 ... ㅜㅜ 무엇이 문제일까 @Test void loginUser() throws Exception { final UserLoginRequest userLoginRequest = UserLoginRequest.builder().socialToken("Asd823daz").pushToken("Wesdf0898dfa").build(); final UserLoginResponse userLoginResponse = UserLoginResponse.builder().coupleT..

Project/DARLING 2022.01.25 Joana

5. Spring REST Docs 사용

서비스 구현에 앞서 REST API 문서를 자동화 해주는 Spring REST Docs 를 사용해본다. Docs를 사용한 이유는 Test에서 성공해야만 문서를 만들 수 있기 때문에 사용하게되었습니다. 강제로 TEST CODE를 작성하여 API에 대한 신뢰성을 높일 수 있기 때문입니다. Gradle 7을 사용하고 있었는데 문서생성이 안되서 검색해봤다. 우회방법이 있지만 복잡하기 때문에 다운그레이드를 선택했다. 그리고 Gradle과 Maven 에서 다르게 설정되는 부분이 있기 때문에 맨아래 링크를 통해 확인해보는 것도 좋다! 환경설정 Springboot 2.6.1 Gradle 6.9.1 JUnit5 Asciidoctor 1.5.9.2 build.gradle 에 추가한 설정 plugins { id "org.a..

Project/DARLING 2022.01.24 Joana

4. 연관관계 - OneToMany

DiaryEntity package so.ego.re_darling.domains.diary; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import so.ego.re_darling.domains.user.domain.Couple; import javax.persistence.*; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; import java.util.List; @Gette..

Project/DARLING 2022.01.23 Joana

3. 연관관계 - ManyToOne

Coupon Entity package so.ego.re_darling.domains.coupon.domain; import lombok.*; import so.ego.re_darling.domains.user.domain.User; import javax.persistence.*; import java.time.LocalDateTime; @AllArgsConstructor(access = AccessLevel.PROTECTED) @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name = "coupon") @Entity public class Coupon { @Id @GeneratedValue(strategy = GenerationType.IDEN..

Project/DARLING 2022.01.23 Joana

2. Entity

package so.ego.re_darling.domains.coupon.domain; import lombok.*; import javax.persistence.*; import java.time.LocalDateTime; @AllArgsConstructor(access = AccessLevel.PROTECTED) @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name = "coupon") @Entity public class Coupon { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @NonNull private String title; private Str..

Project/DARLING 2021.12.03 Joana