일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 순열
- 유클리드호제법
- 포톤
- UnrealEngine
- FSM
- BFS
- 언리얼엔진
- 프로그래머스
- Inventory
- Firebase
- C++
- unityui
- 구현
- QueryDSL
- Unity
- 내일배움캠프
- 알고리즘
- 문자열
- Unity2D
- UE4
- 스파르타내일배움캠프TIL
- 유니티
- Unity3d
- c#
- 스파르타내일배움캠프
- 이분탐색
- 해시
- 스택
- 워크플로
- Photon
- Today
- Total
목록Java (104)
개발 낙서장

오늘의 학습 키워드📚 쿼리 메소드 쿼리 메소드는 JpaRepository에서 메소드 네이밍을 통해 쿼리문을 작성할 수 있는 간편한 기능이다. 가령 User라는 테이블에서 username의 필드값을 통해 User를 찾고 싶다면 Optional findByUsername(String username); 이렇게 간단한 메소드 네이밍을 통해 쿼리문을 만들 수 있다. 실제로 저 메소드를 실행하면 이런 쿼리가 날아가게 된다. 이런 식으로 어떤 식으로 작성해야 할지를 추천해 줘서 작성하기도 편하다. 하지만 형식에 맞지 않는 메소드 네이밍을 할 경우 에러가 발생하니 주의해야 한다. (없는 필드로 찾으려 한다거나 오탈자가 있다거나 문법에 맞지 않다거나 등등...) 애초에 이런식으로 잘못 입력됐을 경우 IntelliJ에서..

오늘의 학습 키워드📚 좋은 테스트란 테스트 코드 개인 과제가 끝이 났다. 검토해보면 난 절대 좋은 테스트를 작성하지 못했다고 생각한다. 좋은 테스트란 과연 뭘까. Mock 라이브러리를 잘 활용해서 테스트 코드를 작성하는 것? 다양한 테스트 프레임워크를 사용해 테스트를 해보는 것? 그냥 간단하게 '테스트의 행위가 의도한 대로 완수되는지'가 좋은 테스트이다. 무슨 요청을 해서 값이 이렇게 들어가면 어떻게 처리가 돼서 이렇게 나와야 되고 1이라도 틀리면 안되고 응답 메세지는 반드시 이렇게 나와야 하고... 물론 목적에 따라 값의 아주 세밀한 검증이 요구될 수 있고 응답에 대한 메세지의 검증이 필요할 수 있다. 하지만 결론은 어떠한 목적으로 테스트를 진행했으며 테스트의 행위가 의도한 대로 동작했는가?를 가장 중..

오늘의 학습 키워드📚 Controller 테스트 404 에러 TodoCard Controller 테스트가 잘 진행돼서 Comment Controller 테스트 코드 작성을 하던 중에 진짜 도저히 이해가 안 되는 에러를 만났다. 바로 404 에러..... 404 에러는 99%의 경우로 URL을 잘못 입력했거나 GET, POST 등 메소드를 다르게 입력했을 때 발생한다. 근데 나는 URL도 그대로 입력했고 메소드도 제대로 했는데 계속 404가 발생해서 도저히 이유를 찾을 수 없었다. @RestController @RequiredArgsConstructor @RequestMapping("/api") public class CommentController { private final CommentService ..

오늘의 학습 키워드📚 BDDMockito를 활용한 Service 테스트 테스트 코드는 기본적으로 Given, When, Then 구조로 이루어져있다. Given은 테스트를 준비하는 과정으로 데이터의 변수를 설정한다거나 데이터를 추가하는 등의 작업을 수행한다. When은 실제로 테스트를 진행하는 과정이다. Then은 예상한 결과와 실제 테스트 값을 비교하는 과정이다. TodoCard 글을 작성하는 createCard라는 메소드가 Service에 있다고 하면 테스트 코드는 다음과 같이 작성하면 된다. @Test @DisplayName("Create Card") void createCard() { // given User user = new User("abc123", "abc12345", UserRoleEnu..

오늘의 학습 키워드📚 테스트 환경에서 Validtate DTO 테스트 코드를 작성할 때 DTO에 대한 검증은 어떻게 해야 할까? @Getter @Builder public class SignUpRequestDto { @NotBlank(message = "사용자 이름이 공백이면 안됩니다.") @Size(min = 4, max = 10, message = "사용자 이름의 크기가 4에서 10 사이여야 합니다.") @Pattern(regexp = "^[a-z0-9]*$", message = "사용자 이름은 영어(소문자)랑 숫자만 가능합니다.") private String username; @NotBlank(message = "사용자 비밀번호가 공백이면 안됩니다.") @Size(min = 8, max = 15, ..

@DataJpaTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) public class UserRepositoryTest { @Autowired private UserRepository userRepository; User user; @Test @Order(1) @DisplayName("유저 생성") void createUser() { String username = "abc123"; String password = "abc123"; UserRoleEnum role = UserRoleEnum.USER; User createdUser = userRepository.s..

오늘의 학습 키워드📚 AOP(Aspect Oriented Programming) 어떤 쇼핑몰 사이트를 서비스하고 있다고 했을 때, 이용자들의 평균 이용 시간을 집계하고 싶다면 어떻게 해야 될까? API 요청부터 응답까지의 시간을 체크해 유저 별로 DB에 저장하는 방법이 있을 것이다. @PostMapping("/products") public ProductResponseDto createProduct(@RequestBody ProductRequestDto requestDto, @AuthenticationPrincipal UserDetailsImpl userDetails) { long startTime = System.currentTimeMillis(); try { return productService.c..

오늘의 학습 키워드📚 단위 테스트 https://dachomi97.tistory.com/111 단위 테스트 테스트의 필요성 위 그림은 버그를 발견한 시간이 늦어질 수록 비용이 크게 증가하는 것을 의미하는 그래프이다. Development(개발) 단계에서 발견하면 최소 비용, Unit Tests(단위 테스트) 단계에서 dachomi97.tistory.com OAuth를 이용해 카카오톡으로 회원가입하는 방법을 배웠고 테스트 중 JUnit을 이용한 단위 테스트를 어떻게 하는지에 대해 배웠다. 오늘의 회고💬 새로운 팀으로 바뀌었는데 분위기가 좋은 것 같아서 다행이다. 내일의 계획📜 월요일부터 새로 개인 과제가 발제된다. 열심히 해야지 또...