🔙 Backend/🌿 Springboot

    [JUnit5][SpringBoot][Kotlin] Exception테스트하기 (assertThrows)

    [JUnit5][SpringBoot][Kotlin] Exception테스트하기 (assertThrows)

    JUnit4 Junit4에서 exception 테스트는 @Test(expected=기대하는예외)를 통해 가능하다. (JUnit5와 비교하기 위한 예시코드이므로 정확하진 않을 수 있음) @Test(expected = NotEnoughStockException::class) fun 상품주문_재고수량초과() { val member = createMember("사용자") val book = createBook("도서명", 10000, 10, "저자명", "12345") val orderCount = 11 orderService.order(member.id!!, book.id!!, orderCount) fail("예외가 발생해야 한다."); } JUnit5 @Test에 expected를 쓸 수 없게 되어있어 다른..

    [Spring Boot] 오류: Cannot construct instance of (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

    [Spring Boot] 오류: Cannot construct instance of (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

    정말 오랜만에 작년에 진행했던 프로젝트의 서버를 다시 살려보았다. 겨우 살리는데는 성공을 했는데, API호출을 해보니 500에러가 난다!ㅠㅠ 🚨 에러메세지 Cannot construct instance of `model` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) 문제가된 'model' 위치에는 req, res에 사용되는 dto class가 있었다. import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lom..

    [JUnit] assertThat deprecated

    Test코드를 작성하던 중에, assertThat에 빨간줄이 떠서, 아래와 같이 import했더니 assertThat은 deprecated되었다고 뜬다. import org.junit.Assert.*; 해결 import static org.assertj.core.api.AssertionsForClassTypes.assertThat; assertj를 import한 뒤, assertThat을 사용할 수 있다!

    [Spring Boot] 카카오 로그인 API 구현 (2) - Access token으로 사용자 정보 가져오기

    [Spring Boot] 카카오 로그인 API 구현 (2) - Access token으로 사용자 정보 가져오기

    *만약 클라이언트 개발자가 따로 있다면 클라이언트 쪽에서 access_token을 전달해주기 때문에 이 포스팅부터 수행하면 된다. 만약 혼자 구현해야한다면 아래 글부터 진행하여 테스트할 수 있다. 카카오 로그인 API 구현(1) https://suyeoniii.tistory.com/79 [Spring Boot] 카카오 로그인 API 구현 (1) - Access token 발급받기 Spring Boot를 이용해서 카카오 로그인을 구현해보았다. Node.js로 구현할 때보다 복잡해보였는데, 구현하고 나니까 그래도 생각보단 덜 복잡했다! 동작 흐름 카카오를 이용한 소셜로그인 구현 Flow이 suyeoniii.tistory.com 이제 access_token을 받았으니, 이 token을 이용해서 카카오 서버에서..

    [Spring Boot] 카카오 로그인 API 구현 (1) - Access token 발급받기

    [Spring Boot] 카카오 로그인 API 구현 (1) - Access token 발급받기

    Spring Boot를 이용해서 카카오 로그인을 구현해보았다. Node.js로 구현할 때보다 복잡해보였는데, 구현하고 나니까 그래도 생각보단 덜 복잡했다! 동작 흐름 카카오를 이용한 소셜로그인 구현 Flow이다 이건 네이버도 비슷하다! Apple은 조금 다를 듯 1. 클라이언트 쪽에서 로그인을 한다 2. 카카오 서버는 redirect url로 code를 전달해준다 3,4. code를 이용하여 access_token을 발급받는다 5. access_token을 서버로 전송한다 6,7. 서버에서는 받은 access_token을 이용하여 카카오 서버에서 사용자 정보를 받는다 8. 받은 사용자 정보를 이용하여 회원가입 또는 로그인을 진행한다 9. JWT등과 같이 사용자 식별 정보를 클라이언트로 보낸다 혼자 프론트..

    [Springboot][EC2] 로컬에서 빌드하고 빌드파일만 업로드하기

    [Springboot][EC2] 로컬에서 빌드하고 빌드파일만 업로드하기

    원래는 EC2에 코드를 올려서 build 하고, 수행하게 되는데 EC2 사양이 그렇게 좋지 않다보니 무리가 갈때가 있다! 그래서 가끔 EC2가 먹통이 되곤 했다... 그래서 로컬에서 빌드하고, 서버에 업로드해서 사용하면 괜찮다고 해서 시도!! 먼저 로컬에서 EC2에서 빌드하는 것과 같이 빌드를 수행해준다 ./gradlew build 수행하면 프로젝트 폴더에 build 폴더 안에 libs 폴더가 생긴다! libs 폴더 안을 보면 jar 파일이 생성되어 있을 것이다 우리는 이 jar파일만 EC2에 업로드 시켜주면 된다 파일업로드는 Filezila, 사이버 덕 등을 이용하여 EC2에 SFTP접속을 해서 파일업로드를 시켜주면 된다 나는 사이버덕을 사용해보았다 EC2에서 해당 서버의 루트경로인 var/www/~로..

    [SpringBoot][AWS EC2] nohup을 이용하여 무중단 서비스 만들기

    [SpringBoot][AWS EC2] nohup을 이용하여 무중단 서비스 만들기

    빌드 먼저 Git을 통해 받은 프로젝트 폴더로 이동하여, build를 진행한다. ./gradlew build build가 완료되었다 실행 java -jar build/libs/demo-0.0.1-SNAPSHOT.jar 정상적으로 잘 실행되었다. 하지만 이상태에서 터미널을 종료하면 실행중인 java도 같이 종료되어 버린다! 무중단 서비스를 위해 nohup을 이용하여 백그라운드에서 실행시키자 nohup nohup java -jar build/libs/demo-0.0.1-SNAPSHOT.jar & > /dev/null 아까 실행시킬 때 수행했던 명령어 앞에 nohup을 붙이고, 뒤에 &을 붙이면 백그라운드에서 실행이 되어, 터미널을 종료해도 EC2상에서는 계속 돌아간다, 뒤에 > /dev/null은 log를 ..