전체 글

코틀린 개발자 학습 저장소
발단나는 Jwt 토큰 발급(JwtTokenClient.class)에 대한 단위 테스트를 작성하고 있었다.테스트 코드package com.hangongsu.infrastructure.client.auth.jwt;import com.hangongsu.core.dto.auth.response.TokenResponse;import com.hangongsu.support.property.jwt.JwtProperty;import org.junit.jupiter.api.BeforeEach;import org.junit.jupiter.api.Test;import static org.assertj.core.api.Assertions.assertThat;import static org.mockito.BDDMockito.g..
발단나는 최근에 소셜 로그인을 구현하고, 그에 따른 테스트 코드를 JUnit5를 사용해 작성하고 있었다.그 중에서도 @WebMvcTest를 통해 컨트롤러 단위 테스트를 작성하고 있었다.테스트 코드테스트 코드 내용은 간단하다.@WebMvcTest(OAuthController.class)class OAuthControllerTest { @Autowired protected ObjectMapper objectMapper; @Autowired protected MockMvc mockMvc; @MockBean protected OAuthRedirectUriProviderComposite redirectUriProvider; @BeforeEach void setup(Web..
왜 사용하게 되었나 Github에 모든 파일을 올려서 사용할 수는 없습니다. 저희 팀에서는 application.yml 파일 안에 작성하는 DB 정보, API 키가 해당됐습니다. 그럼 로컬이 아닌 환경에서 application.yml 을 어떤식으로 관리해야 할까요? 방법은 다양합니다. 직접 파일을 생성해서 넣어준다. Github Secrets 를 사용해서 Secret을 등록한 뒤, application.yml 안의 값을 주입시킨다. private git repository를 만들어 서브 모듈로 사용하고 서브 모듈의 application.yml 파일을 사용하게 하기 저희 팀은 application.yml을 관리하는 방법으로 Github Secrets와 .env를 동시에 활용하기로 했습니다. .env란 외부..
240108 한 일 - 새로운 팀을 짰다. - 팀 회의만 계속 한 것 같다.간단 회고 - 내가 팀장을 맡았다. 그리고 Github-flow를 적용하기 위해 짧게 지식을 나눴다. 좋은 경험이 됐으면 좋겠다. - 과제 제출까지 일주일밖에 시간이 없기 때문에 필수 구현을 탄탄하게 하고, 선택 구현은 최소한으로 잡아서 시간이 남을 때 구현하기로 했다. 난 전체적인 프로젝트 구도 잡고, 개발을 하게 되면 인증/인가 쪽을 하고 싶은데 정말 많이 공부해야 될 것 같다. 훈님이 많이 도와주셔서 다행이다. - ERD를 설계하는 데, 너무 어렵다. 벌써 연관관계에 벽을 느낀다. 튜터님한테 되도록 많이 찾아가서 많은 지식을 배워야 할 것 같다. - 스터디에 2분이 들어오셨다 이제 벌써 11명이나 참여하고 있다. 어떻게 운영..
240105 한 일 - 1차 리팩터링을 완료 했다. - 오늘은 한 게 없다..간단 회고 - 잠을 설치는 것 때문에 그런가 오전이 너무 몽롱해서 코드카타도 못 풀었다. 잠 관련해서 빨리 정신과를 가던가 해야겠다. - 리팩토링을 너무 급하게 해서 계속 수정할 일이 생긴다. 리팩토링은 충분한 시간을 가지고 어떤게 문제인지 차근차근 살펴봐야 할 것 같다. - JPA의 연관관계를 더 깊게 공부해야 될 것 같고, 동작만 된다고 전부라고 생각하지 말고, 어떤걸 개선해야 되는지 더 생각해봐야 할 것 같다. - 서비스 코드에서 엔티티를 조회할 때 같은 로직을 쓰는 중복을 줄이기 위해 레포지토리에 메서드를 작성했는데, 예상했던 예외가 던져지지 않는 문제가 발생했다. 이와 관련된 문제를 튜터님께 물어보면서 문제를 해결함과 ..
240104 한 일 - JPA 쿼리를 분석해보고 있다. 별 소득은 없다. - 리팩토링을 진행하고 있다. - 테스트 코드를 작성하고 있다.간단 회고 - JPA 연관관계를 설정하는게 너무 어렵다. 할 일 - 리팩토링 마무리하면 제출하고, 제출 기간 이후에도 계속 신경써서 작업하기
240103 한 일 - 숙련 과제 Step 2 완료 했다. - Step 3를 구현 중이다.간단 회고 - 아직도 잠을 많이 못 잔다. - Step 3에서 예외 처리를 고쳐보고 있는데, 어렵다.할 일 - Step 4까지 내일 안에 마무리 하기
240102 한 일 - Step 2 기능 구현 중 할 일 완료 처리는 마무리 했고, 댓글 CRUD를 적용 중이다.간단 회고 - 연관 관계는 "다"가 주인이 되어야 한다는데, 좀 자세히 알아봐야 할 것 같다. - 챌린지 반 숙제는 따로 피드백을 추가로 주시진 않았다. 적당히 잘 낸 것 같다.할 일 - Step 2 기능 구현 마무리 하고, 리팩터링 준비하기
231229 한 일 - 리팩터링 끝냈다! - 예외 처리 적용 - Valid 어노테이션 의존 없애고, 코틀린에서 자체 검증하는 코드로 변경 - DTO 클래스 init 내부 검증 로직 작성 - 검증 실패 메시지 전역 프로퍼티 작성 - 예외 핸들러 클래스 작성 - 기존 테스트 코드(Junit5 기반) 수정 및 Service 단위 테스트(Kotest) 작성 - ExceptionHandler 적용 및 에러 응답 처리 변경 - TodoController 반환값 수정 - TodoController 변경 전파사항에 맞춰 TodoService 비즈니스 로직 변경 - Entity & DTO 클래스 수정 - Entity Setter 접근 제어 private 적용 - BaseEntity 추가 및 EnableJpaAuditin..
231228 한 일 - 검증 처리 예외 리팩터링간단 회고 - 오늘은 리팩터링 관련해서 DTO 관련 글들만 많이 찾아본 것 같다.할 일 - 리팩터링을 계속 진행할 생각이다.
@megaseunghan
메가승한