본문 바로가기
반응형

[서버]104

[SpringBoot] Java -> Kotlin 리팩토링 순서의 정석 1. 테스트 코드 작성 2. Entity(Domain) 리팩토링 3. Repository 리팩토링 4. Service 리팩토링 5. Controller, DTO 리팩토링 우선, 테스트코드를 먼저 작성해놔야 한다. 자바 코드를 코틀린 코드로 바꿨는데 잘 작동하지 않을 수 있기 때문에, 이 과정이 선행되어야 한다. 모든 모듈에 대해서 테스트코드를 작성하기엔 어려우므로, Controller, Service, Repository, Domain 중에서 고르자면 Service 모듈 하나에 대해서만 테스트 코드를 작성함으로써 전체적인 로직에 대한 검증을 진행할 수 있다. -> Controller는 테스트 방법이 조금 상이해서, 추가적인 테스트가 필요하다. (프론트 테스트 or 추가 테스트 코드 작성 or Insomn.. 2023. 3. 29.
SpringBoot 테스트의 종류 Domain 계층 - 클래스 테스트하는 것과 동일 Repository, Service 계층 - @SpringBootTest 를 이용. 스프링 빈을 사용하는 테스트. 데이터 위주의 검증. Controller 계층 - @SpringBootTest 를 이용. 스프링 빈을 사용하는 테스트. 응답받은 JSON을 비롯한 HTTP 위주의 검증. 모든 계층을 테스트하는 것이 좋지만, 현실적으로 딱 한개의 계층만 테스트해야한다면 보통은 Service 계층을 테스트한다. -> 그래도 Controller는 별도로 추가적인 테스트가 필요하다. 테스트 방식이 조금 다르기 때문. 테스트할 클래스에 커서를 두고 Cmd + Enter를 누르면 Test 생성을 간편하게 할 수 있다. 코틀린 테스트코드 예시 @SpringBootTest.. 2023. 3. 28.
JPA update 할 때 save 안해도 되는 이유 JPA는 transactional 범위 내에서 자동으로 dirty checking을 한다. 그래서 이렇게 update 할 때에는 save를 명시적으로 해주지 않아도 된다. (안드로이드 Room도 이러한지 궁금하네 -> 그런건 없는 듯 하다) 새로 Insert할 때에는 save를 명시적으로 해주어야 하겠지만 update할 때에는 transactional 범위 안에서 save를 안해줘도 된다. 참고 https://jaehoney.tistory.com/273 JPA - Update(수정) 시 save() 메서드를 호출하는 것이 좋을까? JPA를 사용하면 트랜잭션 범위 안에서 Dirty Checking이 동작한다. 따라서 save() 메서드를 호출하지 않아도 값이 알아서 수정되고 반영된다. 그렇다면 save().. 2023. 3. 25.
AWS OpenSearch Service 비용 이슈 불길한 예감.. 관리를 못하고 있었던 서비스가, 프리티어가 풀리면서 돈이 나가고 있었다. 분명 1월 3일까지는 매번 확인해도 돈이 안나갔는데.. 갑자기 왜.. 하루에 1달러 이상씩 돈이 나가고 있었다. 현재는 8.5달러까지 무섭게 올라갔는데.. 오늘 정말 오래간만의.. 먼 동창 친구와의 만남이 있어서 내일 해결해야겠다. DynamoDB 내의 GSI (글로벌 보조 인덱스) 기능이 OpenSearch Service 과금과 관련이 있나 했는데, 그건 아니었다. graphql로 테이블을 설계할 때 잠시 @searchable을 사용했던 적이 있는데, 이걸 사용하게 되면, search{table명} 같은 쿼리를 수행할 수 있었다. 그리고 @searchable을 사용하면 OpenSearch Service의 t2.sm.. 2023. 1. 8.
반응형