본문 바로가기

k-digital training76

[TIL] 2023-01-26(62day) / Unit Test(1) Unit Test(1) 👉 Given-When-Then 패턴 - Given : 테스트에 필요한 변수를 정의하거나 Mock 객체를 통해 특정 상황에 대한 행동을 정의. - When: 실제 테스트를 하는 메소드가 호출되며 테스트를 통한 결과값을 가져온다. - Then: When 단계에서 나온 결과값을 검증하는 작업을 수행. 👉 JUnit + Mockito # JUnit : Java 에서 사용되는 대표적인 테스트 프레임워크. # Mockito : Mock 객체를 쉽게 만들고, 관리하고, 검증할 수 있는 방법을 제공하는 프레임워크. # Mockito에서 Mock(가짜) 객체의 의존성 주입을 위해 사용되는 3가지 어노테이션. - @Mock: Mock 객체를 만들어 반환해주는 어노테이션 - @Spy: Stub하지 .. 2023. 1. 27.
[TIL] 2023-01-25(61day) / 프로젝트(6day) 프로젝트(6) 🙋‍♂️ 소감 : 원래는 클래스 다이어그램을 작성하고 시나리오를 기반으로 분석된 기능별로 시퀀스 다이어그램을 작성해야 하지만, 우리는 설계 단계에서 ERD 다이어그램만 작성하고 프로젝트 자료 준비하면서 처음으로 시퀀스 다이어그램을 팀원들과 함께 만들었다. 주요 기능 위주로만 동기 메세지와 비동기 메세지로 작성하였다. 금일 프로젝트 발표가 있었는데, 피드백 주시면 시퀀스 다이어그램도 다시 수정해봐야겠다. 😈 아는 내용이라고 그냥 넘어가지 않기! 😈 2023. 1. 25.
[TIL] 2023-01-20(60day) / 프로젝트(5day) 👉 OrderServiceImpl @Override @Transactional public CreateOrderResponseDto createOrder(CreateOrderRequestDto requestDto, String userId) { int totalAmount = 0; String sellerId = ""; Order order = new Order(); orderRepository.save(order); List orderItemList = new ArrayList(); for (int i = 0; i < requestDto.getProductId().size(); i++) { Product product = productRepository.findByProductId(requestDto... 2023. 1. 23.
[WIL] 2023-01-21(12th week) 😃 Keep - 이해 안되는 부분은 반복 학습. - 프로젝트 중간체크 기간까지 맡은 기능 구현 완료하기. - 모르는 부분은 팀원들과 함께 공유하여 해결하기 😅 Problem - 알고리즘 문제 풀이를 하지 못함. - 시큐리티 필터, 예외처리 부분은 깊은 이해도는 부족. 💪 Try - 시큐리티 필터, 예외처리 조금 더 자세히 알고 써보기. 🙋‍♂️ feel - 이번 프로젝트는 지난 프로젝트보다 더 많은 부분을 맡아 진행했다. 어드민 기능구현을 맡았으며, 중간 체크 기간까지 기본적인 기능구현은 모두 마치고 예외처리를 진행했고, 추가기능인 포인트까지 해볼 수 있었다. 포인트의 모든 기능 구현까지는 못했지만, 그래도 예상보다 많은 작업을 했고, 그 과정에서 뿌듯함을 느꼈다. 2023. 1. 23.
[TIL] 2023-01-19(59day) / 프로젝트(4day) 프로젝트(4) 👉 JAP Paging # Controller @GetMapping("/admin/customer-list") public List getAllCustomers(Pageable pageable) { return adminService.getAllCustomers(pageable); } # Service @Override @Transactional(readOnly = true) public List getAllCustomers(Pageable pageable) { List userList = userRepository.findAllByOrderByCreatedAtDesc(pageable); if (userList.isEmpty()) throw new IllegalArgumentExceptio.. 2023. 1. 20.
[TIL] 2023-01-18(58day) / 프로젝트(3day) 프로젝트(3) 👉 @Transactional(readOnly = true) 사용하는 이유 @Transactional(readOnly = true) - 영속성 컨텍스트가 결과를 관리하지 않는다. - 읽기 전용이라, 스냅샷을 보관하지 않아 메모리 최적화에 도움을 준다. - 읽기 전용 메서드라는 것을 알 수 있다. - 플러시가 발생하지 않는다. 🙋‍♂️ 소감 : 서비스 로직이 실행이 되지 않아 한참을 들여다봤는데, 지난 프로젝트 피드백에서 @Transactional(readOnly = true) 잘 사용했다는 피드백이 생각나서, 생각 없이 조회한 데이터 return이 아닌 부분에도 죄다 붙여 버린 게 이유였다. 생각이 나서 썼는데 생각 없이 쓰다니 생각 좀 하고 살아야겠다. 😈 아는 내용이라고 그냥 넘어가지 .. 2023. 1. 19.