@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(..
๋ฆฌํฉํ ๋ง์ด 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..

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..

์๋น์ค ๊ตฌํ์ ์์ 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..
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..

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..
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..