전체 글 493

@WithMockUser 사용시 요청에 사용되는 User와 MockUser가 다른 경우 발생하는 에러 401

이번 포스팅에서는 realUser로 테스트를 작성해야 하는데 @WithMockUser 로 Authentication을 하게 되면, 인증과 인가의 context가 달라 401 에러가 발생하는 이슈를 해결하는 과정을 설명하고 있습니다. @WithMockUser 코드 @Test @Transactional @WithMockUser ( username = "patient", roles = { "PATIENT" } ) @DisplayName("testDeleteAppointmentRequestsAPI - 성공") public void testDeleteAppointmentRequestsAPI () throws Exception { // given final AppointmentRequestForm appointme..

IT/디버깅 2023.11.11

백준 10159 파이썬 풀이 bfs

이번 포스팅에서는 백준 10159번 저울문제를 bfs로 푼 방식에 대해 설명하겠습니다. 백준10159 정답 코드 # 복습 횟수:0, 01:30:00, 복습필요O import sys si = sys.stdin.readline from collections import deque N = int(si()) M = int(si()) graph_high = [[] for i in range(N+1)] graph_low = [[] for i in range(N+1)] def bfs_high(start, tmp_set: set): visited = [0 for i in range(N+1)] q = deque() q.append(start) visited[start] = 1 # 방문 처리 while q: start =..

카테고리 없음 2023.10.30

"query specified join fetching, but the owner of the fetched association was not present in the select list" 에러 원인과 해결

queryDsl을 사용하던 중 query specified join fetching, but the owner of the fetched association was not present in the select list 에러가 발생하여 원인과 해결과정에 대해 정리하는 포스팅입니다. 1. error의 원인 코드 jpaQueryFactory .select(mainPayment.itemImage, mainPayment.itemName, mainPayment.subPayment.pointUse) .from(mainPayment) .join(mainPayment.subPayment, subPayment) .fetchJoin() .fetchOne(); 위의 코드를 살펴보면 subPayment를 join 한 후 N..

IT/디버깅 2023.10.28

Service 계층 단위 테스트를 위한 Mockito 사용하기

기존에 @SpringbootTest 어노테이션를 사용하여 Service 계층을 테스트하였습니다. 그러나 실제 DB와 관련된 Repository 계층 등을 직접 주입받아야 했고, 이렇게 된다면 service 계층만의 단위 테스트를 제대로 하지 못할 것이라는 판단을 하였습니다. 따라서 Mockito를 사용하여 리팩토링하였는데, 이 과정을 포스팅하려 합니다. Service 계층 단위 테스트 - 기존의 코드 @SpringBootTest @Transactional(readOnly = true) @ExtendWith(MockitoExtension.class) class TicketInformationServiceTest { @Autowired private TicketInformationRepository tick..

백엔드/Spring 2023.10.17

백준 2331 python 풀이 bfs

이번 포스팅에서는 백준 2331번을 python으로 풀고 해설을 작성하려 합니다. 백준 2331 번 정답 코드 import sys from collections import deque si = sys.stdin.readline N, P = map(int, si().split()) def bfs(): q = deque() q.append(N) visited = [0 for _ in range(1000000 + 1)] visited[N] += 1 # 방문처리 while q: val = q.popleft() val = str(val) if val == 3: break number_list_str = list(val) new_val = 0 for number_str in number_list_str: new_v..

카테고리 없음 2023.09.11

비트맵과 RGB

이번 포스팅에서는 비트맵과 RGB에 대해 공부한 과정에 대해 포스팅하려고 합니다. 머신러닝 모델을 사용하던 중 32bit의 ARGB 비트맵을 RGB로 변환하는 코드를 공부하다, 호기심이 생겨 정리하는 포스팅입니다. 앱의 머신러닝 모델이 안드로이드의 비트맵 사진을 인식하기 위해서는 ARGB -> RGB 변환과정이 필요했기 때문입니다. 코드 float imageSTD = 255.0f; FloatBuffer buffer = FloatBuffer.allocate(BATCH_SIZE * PIXEL_SIZE * INPUT_SIZE * INPUT_SIZE); buffer.rewind(); int area = INPUT_SIZE * INPUT_SIZE; int[] bitmapData = new int[area]; bi..

카테고리 없음 2023.08.21

백준 2138번 전구와 스위치 파이썬 상세 풀이

이번 포스팅에서는 백준 골드5 2138번 전구와 스위치를 파이썬으로 푼 것에 대해 설명하겠습니다. https://www.acmicpc.net/problem/2138 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 www.acmicpc.net 전구와 스위치 정답 코드 # 전구와 스위치 # 복습 횟수:1, 00:45:00, 복습필요X import sys si = sys.stdin.readline N = int(si()) current_state = list(map(int, si().rstrip())) hope_s..

카테고리 없음 2023.07.26

[디버깅] yolo8 FileNotFoundError: Image Not Found 이슈 해결

이번 포스팅에서는 인턴 ML 과제를 하던 중 발생한 이슈를 해결한 과정에 대해 기록하려고 합니다. 구체적으로는 yolo8에 image 파일이 존재함에도 불구하고 FileNotFound: Image Not Found 이슈가 발생하여 이를 해결하는 과정을 기록하였습니다. yolo8 FileNotFoundError 원인 cv2를 사용할 때 window에서 한글 경로를 읽지 못하기 때문에 발생하였습니다. * 원인을 찾은 과정정리 1. cv2를 사용해 이미지를 가져오는데 이부분에서 에러가 발생하였습니다. print()로 찍어보니 file이 None임을 체크하였고 이와 관련해 구글링을 해보았습니다. yolo8 FileNotFoundError 해결 아래와 같이 convert to Utf8 코드를 작성하여 file을 ..

IT/디버깅 2023.07.26

[디버깅] 구글 코랩 tensorflow light install 이슈 해결

Can't install tflite-model-maker from pip 에러가 발생하여 해결하는 과정을 적었습니다. INFO: pip is looking at multiple versions of tensorflow to determine which version is compatible with other requirements. This could take a while. 이슈 1. tensorflow light 다운로드 이슈 원인 Requirement already satisfied: pycocotools in /usr/local/lib/python3.10/dist-packages (from tf-models-nightly->tflite-model-maker) (2.0.6) Collecting ..

IT/디버깅 2023.07.20

[Spring] 서블릿과 스프링 MVC 패턴

이번 포스팅에서는 Spring에서 사용하는 서블릿이 무엇인가, 그리고 이와 관련하여 Spring은 어떤 동작을 하는지에 대해서 정리하려고 합니다. 서블릿 1. 서블릿의 개념 서블릿은 request, response을 통해 동작하는 프로그래밍 모델에서 웹 서버의 역할을 **확장**할 수 있도록 하는 자바 클래스입니다. 서블릿은 request를 받고 동적인 웹 페이지를 만들어 client에 응답합니다. *확장의 의미 정적인 리소스를 응답하는 웹 서버에 동적인 웹 페이지 응답을 전달하는 WAS의 역할을 하는 것입니다. WAS = 웹 서버 + 서블릿 Container 2. 서블릿의 동작 과정 순서 WAS의 서블릿 컨테이너가 Servlet 객체를 생성 Client가 해당 Servlet을 사용하는 http 요청을 ..

백엔드/Spring 2023.07.14
728x90