분류 전체보기 495

[디버깅] Database may be already in use 에러 해결

이번 시간에는 h2 DB를 스프링부트 프로젝트에서 연결하던 중 발생한 오류인 Database may be already in use를 해결하는 과정을 포스팅하려고 합니다. 에러는 아래와 같습니다. 저는 기존에 다른 프로젝트에서 이미 H2를 사용하는 상태였고 url만 다르게 변경하여 프로젝트를 하려고 하니 아래와 같은 에러가 발생한 것이었습니다. 1. Database may be already in use 해결 방법 1 구글링을 하던 중 이미 Port를 사용 중일 수도 있다는 것을 알게 되어 Window의 명령어 키를 통해 실제로 포트가 사용되고 있는지를 체크해보았습니다. (나는 껐다고 생각했는데 포트가 이미 실행중인 경우도 존재하기에) Window에서 netstat -an으로 사용중인 포트를 확인할 수 ..

IT/디버깅 2023.03.26

백준 성곽 2234번 Python 파이썬 풀이

이번 포스팅에서는 백준 성곽 2234번 문제를 python으로 푼 정답 코드를 작성해보려고 합니다. 각각 주석으로 달아놓았고 밑에는 간략하게 해설을 작성하였습니다. 백준 성곽 2234번 Python 파이썬 정답 코드 # 성곽 # 복습 횟수:0, 01:30:00, 복습필요O import sys from collections import defaultdict si = sys.stdin.readline M, N = map(int, si().split()) graph = [list(map(int, si().split())) for _ in range(N)] visited = [[0 for _ in range(M)] for __ in range(N)] # 남 동 북 서 # graph 모양 치환 for i in r..

카테고리 없음 2023.03.22

[디버깅] SpringRunner.class 인식 오류 해결하기

Test를 진행하려고 하는 중 SpringRunner.class 및 @SpringBootTest 어노테이션을 인식하지 못하는 오류가 발생하였습니다. 이를 해결하기 위한 과정들을 정리하는 포스팅입니다. SpringRunner.class 인식 문제 해결 과정 1. SpringRunner.class 에서 나온 에러 메세지를 바탕으로 아래와 가튼 의존성을 추가해주었으나, 해결하지 못하였습니다. 2. intellij invalidate/restart를 해보았지만 해결하지 못했습니다. SpringRunner.class 인식 문제 해결 의문점 분명히 external 라이브러리에는 존재하는데 인식을 못하는 상황이었습니다. SpringRunner.class 인식 문제 해결 pakage의 모듈 구조때문에 인식하지 못 한 ..

IT/디버깅 2023.03.16

[Spring] 디렉터리 패키지 구조 구성하는 방법

스프링으로 프로젝트를 시작하려고 하는데, 어떻게 패키지의 계층 구조를 나눠야 효율적인지 궁금해졌습니다. 그래서 어떤 방법이 좋을지를 찾아보았는데, 이와 관련해 내용을 정리하려고 합니다. 계층형 디렉토리 패키지 구조 계층형 디렉토리 패키지 구조는 아래와 같이 3가지로 구분됩니다. 1. Web Layer: 사용자의 요청과 이에 대한 응답을 반환하는 처리가 일어나는 Layer 2. Service Layer: 실제 비지니스 로직이 일어나는 Layer로 Web Layer와 Repository Layer 사이에 있는 Layer 3. Repository Layer: DB와 통신하는 Layer 계층형 구조의 장점 1, 전체적인 프로젝트의 구조를 빠르게 파악할 수 있습니다. 계층형 구조의 단점 1. 각각 패키지 디렉토리..

백엔드/Spring 2023.03.13

[JPA] N+1 문제를 해결하기 위한 fetch

오늘 포스팅에서는 fetch = Lazy에서 발생할 수 있는 N+1 문제를 해결하기 위해 등장한 fetch join의 장점과 한계를 정리해보는 시간을 가지겠습니다. 1. JPA에서 N+1 문제의 발생 코드 Team teamA = new Team(); teamA.setName("teamA"); em.persist(teamA); Team teamB = new Team(); teamB.setName("teamB"); em.persist(teamB); Member member1 = new Member(); member1.setUsername("member1"); member1.changeTeam(teamA); em.persist(member1); Member member2 = new Member(); membe..

백엔드/JPA 2023.03.06

[백준/python] 13549번 숨바꼭질 풀이

이번 포스팅에서는 13549번 숨바꼭질을 풀어보겠습니다. 이 포스팅에서는 정답풀이와 오답풀이의 차이점을 기준으로 문제를 해결해보겠습니다. 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K..

카테고리 없음 2023.03.01

[백준] 1062번 가르침 파이썬 풀이

이번에는 백트래킹 골드4문제인 1062번 가르침을 어떻게 해결하였는지를 작성하는 시간을 가져보도록 하겠습니다. 정답풀이 import sys n, k = map(int, input().split()) # k 가 5보다 작으면 어떤 언어도 배울 수 없음 if k < 5: print(0) exit() # k 가 26이면 모든 언어를 배울 수 있음 elif k == 26: print(n) exit() answer = 0 words = [set(sys.stdin.readline().rstrip()) for _ in range(n)] learn = [0] * 26 # 적어도 언어 하나는 배우기위해 a,c,i,n,t 는 무조건 배워야함 for c in ('a', 'c', 'i', 'n', 't'): learn[ord..

카테고리 없음 2023.02.17

[백준] 10971 외판원 순회 2

정답코드 # 외판원 순회 2 # 복습 횟수:0, 00:45:00, 복습필요O import sys si = sys.stdin.readline N = int(si()) graph = [list(map(int, si().split())) for i in range(N)] visited = [0 for i in range(N)] answer = sys.maxsize def dfs(first, start, count, sumi): global answer if count == N-1: if graph[start][first] == 0: return answer = min(answer, sumi + graph[start][first]) return for i in range(N): if visited[i]: con..

카테고리 없음 2023.02.16

[네트워크] DNS를 통한 IP 주소 확인 과정

DNS 서버의 기본 동작은 클라이언트에서 조회 메시지를 받고 조회의 내용에 응답하는 형태로 정보를 회답하는 일입니다. 그렇다면 조회 메세지에 포함된 정보는 무엇일까요? 그리고 DNS를 통해 IP주소를 어떻게 확인할 수 있을까요? 조회 메시지에 포함된 정보 (a) 이름 서버나 메일 배송 목적지(메일 주소에서 @뒷부분의 이름)와 같은 이름입니다. (b) 클래스 DNS의 구조를 고안했을 때 인터넷 이외에도 네트워크에서의 이용까지 검토하여 이것을 식별하기 위해 클래스라는 정보를 준비합니다. 그러나 지금은 인터넷 이외의 네트워크가 소멸되어서 클래스는 항상 인터넷을 나타내는 ‘IN’이 됩니다. (c) 타입 이름에 어떤 타입(종류)의 정보가 지원되는지를 나타냅니다. 예를 들어 타입이 A이면 이름에 IP 주소가 지원되..

CS/네트워크 2023.01.09