애정코딩 💻

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

NAWA 프로젝트 설명

1. 문서 작업 문서 작업은 예상만큼이나 어렵고 시간이 많이 들어갔다. 처음으로 개발 예정 보고서로 역할분담, 일정, 시스템 구성도, 구현을 작성하였다. 학원에서 같이 배운 언어와 개발도구를 사용 했기 때문에 어렵지 않았다. 역할분담에서 개인의 역량 차이 때문에 조금 시간이 지체되었지만, 프로젝트를 진행할 때 추가, 수정되었다. 그 후 기능정의서 (FBS)를 시작하며 정말 힘들었다... 그 후에 만든 문서에서 조금이라도 바뀌면 FBS도 바꿔야 하는 상황이어서 처음 계획할 때 좀 더 신중했어야 했다는 걸 뼈저리게 느꼈다... 구현되어야 할 기능이 하나하나 나열되어있다. 대망에 요구사항 명세서 , 가장 시간을 많이 쏟아부었던 것 같다. 그래서 개발할 때 무척 도움이 많이 되었다. 팀 프로젝트이다 보니 서로 ..

Project/NAWA 2020.03.29 Joana