Content type 'application/octet-stream' not supported 에러
·
Backend/Spring Boot
controller에서 multipartFile 타입의 이미지와 json 타입의 dto를 같이 받기 위해 requestpart를 사용하면서 만난 오류이다. dto는 requestbody를 통한 전달이 아닌 form-data로 전달을 해주어야 했고, 그 상황에서 json 타입의 데이터를 보내는 방식에서 문제가 생겼다. form-data 타입의 key-value 값으로 json을 보내줄 때는 content-type을 application/json으로 직접 명시해주자 !! 문제 해결 :)
SOLID 5가지 원칙
·
Backend/Java
SRP 단일 책임 원칙(Single responsibility principle) 하나의 클래스는 하나의 책임만 가져야 한다. 하나의 책임은 모호하다. 클 수도 있고, 작을 수도 있으며, 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 UI 변경, 객체의 생성과 사용을 분리 OCP 개방-폐쇄 원칙(Open/closed principle) 소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀 있어야 한다. 다형성을 활용해보기 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현 지금까지 배운 역할과 구현의 분리를 생각해보기 문제점 MemberService 클라이언트가 구현 클래스를 직접 선택 MemberRepository..
mariadb build 시 트러블 슈팅 해결하기 (포트 변경 및 vim 설치하기)
·
DevOps/docker
bash에 vim을 설치하게 된 이유는 docker에 mariadb를 설치하고 datagrip으로 접속을 시도했다. db접속을 위해 Test Connetion을 시도하였으나, 아래와 같은 오류 발생 ! Could not connect to localhost:3307 : unexpected end of stream, read 0 bytes from 4 (socket was closed by server). 이를 해결하기 위해 default로 설정된 포트를 변경해주려 한다.(접근하려는 PORT와 설정된 PORT가 불일치하므로) 그러기 위해선 my.cnf 파일수정이 필요하다. ps 명령어를 통해 연결된 포트를 확인해본다. 3306은 mysql로 되어있기 때문에(다른 걸 써도 무방하다. 본인의 취향에 맞게 설정..
prepareKotlinBuildScriptModel Task fails in a Java project 오류 해결
·
Backend/Spring Boot
tasks.register("prepareKotlinBuildScriptModel"){ } build.gradle에 추가해주기 ! 해결 완!
[postman] post 방식으로 file 전송 시 working directory 오류 해결하기
·
etc
settings > General > working directory에서 아래와 같이 'Read files ... '를 활성화 시켜주자. 다시 실행해보면 정상적으로 작동한다.
[수학] 소수 구하기
·
Computer Science/Algorithms
소수 판별 알고리즘 1. 1과 자기 자신을 제외한 나머지 수 중에서 약수가 있는 -> 시간 복잡도 O(n) 1을 제외한 2부터 n-1까지 탐색하면서 i로 나누어 떨어지는 수가 있는지 확인 static boolean isPrime(int N) { if (N < 2) return false; for (int i=2; i 시간 복잡도 : O(루트 n) 만약 N이 12라 할때, 12의 제곱근은 약 3.46이다. 12의 약수는 1, 2, 3, 4, 6, 12 이다. 여기서 1과 12를 제외했을 때 이는 2 * 6, 3 * 4, 4 * 3, 6 * 2의 결과이다. 따라서 N의 제곱근까지 나누어 떨어지는지 여부를 조사하면 더 빠르게 소수판별을 할 수 있다. static boolean prime(int n) { if(..
[수학] - 최소공배수, 최대공약수 구하기
·
Computer Science/Algorithms
최소 공배수 import java.util.*; public class Main { private static int gcd(int a, int b) { if (a == 0) return b; return gcd(b%a, a); } private static void lcm(int a, int b) { System.out.println(a / b); } public static void main(String[] args) { // 여기에 코드를 작성해주세요. Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); lcm(n*m, gcd(n,m)); } } 최대 공약수 import java.util.*; public ..
[트리] 트리의 리프노드 개수 구하기
·
Computer Science/Algorithms
https://www.acmicpc.net/problem/1068 1068번: 트리첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다www.acmicpc.net import syssi = lambda : sys.stdin.readline().rstrip()l = lambda : list(map(int, si().split()))def dfs(root) : # x의 subtree에 대해 leaf[x]를 계산해주는 함수 if not child[root] : # 아무것도 없다면 리프노드 leaf[root] = 1 for node in ..
[트리] 트리의 지름 구하기
·
Computer Science/Algorithms
https://www.acmicpc.net/problem/1967 1967번: 트리의 지름파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연www.acmicpc.net 트리의 지름은 DFS 두 번으로 O(N)의 시간 복잡도로 구현이 가능하다.트리에서 아무 노드나 잡고 그 노드에 대한 먼 노드를 구하고 이 노드를 n1이라고 하자.n1에 대한 가장 먼 노드를 한번 더 구한다. 이 노드를 n2라고 하자.이제 n1과 n2의 거리가 트리의 지름이 된다.import sys, heapqfrom collections import dequesi = sys.std..
[링크드 리스트] 링크드 리스트 뒤집기
·
Computer Science/Algorithms
https://leetcode.com/problems/reverse-linked-list-ii/description/ LeetCode - The World's Leading Online Programming Learning PlatformLevel up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.leetcode.com /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * Li..
[MST] BOJ 1197번: 최소 스패닝 트리
·
Computer Science/Algorithms
https://www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net package Data_Structure.union_find; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; class Edge implements Comparable { int v1; int v2; int ..
spring에 swagger 적용하면서 겪은 3가지 에러 해결하기
·
Backend/Spring Boot
스프링 2.X.X 특정 버전 이후로 Swagger2:2.X.X 버전 실행 에러 발생 해결 -> build.gradle파일의 springfox ~ 버전들을 모두 3.0.0 으로 바꿔준다. // Swagger Lib implementation 'io.springfox:springfox-swagger2:3.0.0' implementation 'io.springfox:springfox-swagger-ui:3.0.0' implementation 'io.springfox:springfox-boot-starter:3.0.0' org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrap..