분류 전체보기

SpringBoot

[Spring/스프링] JPA CompositeKey 복합키 설정

Database를 구성할때 Entity의 ID는 하나로 구성하기도 하지만 테이블의 여러 필드를 이용해 복합키를 만들기도 한다. 이러한 복합키를 쓰는 이유와 사용하는 방법에 대해서 알아보고자 한다. 복합키를 사용했을 때 장점 1. 고유성 및 식별성 강화 복합키는 여러 열을 조합하여 구성되기 때문에 단일 열의 경우보다 높은 고유성과 식별성을 제공할 수 있다. 특히, 개별 열의 값이 중복되더라도 조합된 복합키는 고유한 식별자로 사용될 수 있고, 이는 특정 레코드를 정확하게 식별하고 조회하는 데 유용하며, 데이터의 정확성과 일관성을 유지하는 데 도움이 된다. 2. 검색 및 정렬 효율성 향상 복합키는 여러 열을 기반으로 하기 때문에 특정 열 하나로만 기준을 정하는 단일 키보다는 더 다양한 검색 및 정렬 옵션을 제..

ERROR

[ERROR/에러] Unknown integral data type for ids : java.lang.String

@Entity @NoArgsConstructor public class Channel{ @Id @GeneratedValue private String id; private String name; private String reference; private AccessType accessType; private ChannelType channelType; @CreatedDate private LocalDateTime createdTime; @LastModifiedDate private LocalDateTime updatedTime; @Builder public Channel(String name, String reference, AccessType accessType, ChannelType channelT..

ERROR

[ERROR/에러] 카프카와 주키퍼 실행 에러 "입력 줄이 너무 깁니다. 명령 구문이 올바르지 않습니다."

주키퍼와 카프카를 실행시키기 위해 아래 명령을 진행하면 "입력 줄이 너무 깁니다. 명령 구문이 올바르지 않습니다." 에러가 발생한다. bin\windows\zookeeper-server-start.bat config\zookeeper.properties bin\windows\kafka-server-start.bat config\server.properties 처음에는 테스트 실행으로 C:\Users\#####\Downloads 해당 경로에서 진행했을 떄 실행이 되지않았다. 카프카 폴더를 루트 디렉토리와 가깝게 옮겨서 실행하면 해결된다. reference https://charactermail.tistory.com/359 윈도우 카프카(kafka) 실행 에러 (입력 줄이 너무 깁니다. , 명령 구문이 올바..

ERROR

[ERROR/에러] APACHE KAFKA 아파치 카프카 실행 에러

Apache Kafka를 처음 실행했을 때에 생기는 문제를 해결해보고자 한다. Classpath is empty. Please build the project first e.g. by running 'gradlew jarAll' 아파치 카프카를 다운받을 때, https://kafka.apache.org/downloads Source File이 아닌 Binary File로 다운받으면 해결된다. Reference https://twofootdog.tistory.com/92 아파치 카프카 실행 에러(Classpath is empty. Please build the project first e.g. by running) 아파치 카프카를 설치한 후 실행시킬 때 아래와 같은 에러가 발생하는 경우가 있다. Class..

Computer Science/SQL Solving

[Programmers/프로그래머스] 3월에 태어난 여성 회원 목록 출력하기

DATE_FORMAT(날짜, "%Y-%m-%d") 제목 3월에 태어난 여성 회원 목록 출력하기 문제 설명 다음은 식당 리뷰 사이트의 회원 정보를 담은 MEMBER_PROFILE 테이블입니다. MEMBER_PROFILE 테이블은 다음과 같으며 MEMBER_ID, MEMBER_NAME, TLNO, GENDER, DATE_OF_BIRTH는 회원 ID, 회원 이름, 회원 연락처, 성별, 생년월일을 의미합니다. Column name Type Nullable MEMBER_ID VARCHAR(100) FALSE MEMBER_NAME VARCHAR(50) FALSE TLNO VARCHAR(50) TRUE GENDER VARCHAR(1) TRUE DATE_OF_BIRTH DATE TRUE 문제 MEMBER_PROFILE..

Problem Solving/CodeTree

[코드트리 챌린지] 8주차

실력진단 결과 코드트리 8주차 실력진단 결과 오늘의 학습 Parametric Search 다음 문제는 어떻게 해결해 볼 수 있을까요? 1부터 n까지의 자연수의 합이 100이상인 경우 중 가능한 n의 최솟값을 구하는 프로그램을 작성해보세요. 단, 답은 1에서 30사이라고 가정합니다. 무작정 코드를 작성한다면, 1, 2, 3 ..., 30 전까지 계속 더해보며 최초로 그 합이 100을 넘는 순간을 찾아 바로 그 직전의 숫자를 구하게 될 것입니다. 넘어야 하는 합을 s라 했을 때 시간복잡도는 O(S)가 됩니다. 하지만 만약 이 문제가 수학 문제로 나왔다면, 다음과 같이 시도하게 될 것입니다. 1차 시도 (n = 15) 1부터 15까지의 합은 120이므로, 일단 15은 답의 후보 중 하나입니다. 이제 더 작은 ..

Problem Solving/CodeTree

[코드트리 챌린지] 7주차

실력진단 결과 코드트리 7주차 실력진단 결과 오늘의 학습 Tree DP 각 정점에 값이 적혀있는 트리 정보가 아래와 같이 주어졌을 때, 각각의 노드마다 자신을 포함하여 자손 노드들에 적혀있는 수들의 합을 구해보려고 합니다. 위 그림에서 예를 들어 6번 노드의 경우 자신을 포함한 자손 노드 번호가 6, 2, 3, 5 이므로 각 노드에 적혀있는 수들의 합인 2 + 3 + 3 + 4 = 12가 나와야 합니다. 즉, 우리가 얻고 싶은 결과는 아래와 같습니다. 이를 각 노드를 정한 뒤 해당 노드에서 자식 노드로 움직이는 것을 재귀적으로 반복하는 탐색을 진행하는 완전탐색 방법을 통해 구현한다면, 각 노드를 정하는데 O(N), 각 노드마다 최대 확인해야 하는 노드 수가 O(N)이 되어 총 O(N^2)의 시간복잡도를 ..

Problem Solving/CodeTree

[코드트리 챌린지] 6주차

실력진단 결과 코드트리 6주차 실력진단 결과 오늘의 학습 Bitmask DP 다음 문제는 어떻게 해결해볼 수 있을까요? 아래와 같이 노드가 4개 간선이 x개 있는 양방향 그래프가 주어져있습니다. 3번 노드에서 시작하여 모든 노드를 정확히 한번씩만 방문하되, 이동거리의 합이 최소가 되도록 해보세요. 3번에서 시작하여 모든 정점을 단 한번씩만 방문해야 하는 문제이므로 가장 간단한 방법은 모든 순열을 만들어보는 백트래킹을 이용하는 것입니다. 백트래킹을 이용해 모든 순열을 만드는 방법에 대해 아직 잘 모르신다면, 순열 만들기 유형을 공부하시고 나서 다시 이 설명을 읽는 것을 추천드립니다. 수열 만들기 링크 : https://www.codetree.ai/missions/2/problems/n-permutation..

Problem Solving/CodeTree

[코드트리 챌린지] 5주차

실력진단 결과 코드트리 5주차 실력진단 결과 오늘의 학습 Bit Operator 다양한 비트 연산자에 대해 다뤄보도록 하겠습니다. 비트 연산은 기본적으로 2진법을 기반으로 합니다. Bit 연산는 컴퓨터의 기본 연산이기에 속도가 굉장히 빠릅니다. and 연산자 (|) and 연산자 |는 두 수 a, b를 이진법으로 표현한 뒤 각 자리에 적혀있는 bit에 대해 and 연산을 진행한 후 그 결과를 다시 10진수로 표현해줍니다. and 연산이란 둘 다 1일 때만 1, 아니라면 0이 되는 연산입니다. 예를 들어 5 | 6은 4가 됩니다. 101 (5) 110 (6) and ---------- 100 (4)​ or 연산자 (|) or 연산자 |는 두 수 a, b를 이진법으로 표현한 뒤 각 자리에 적혀있는 bit에 ..

JAVA

[JAVA/자바] 실행시간 확인

long startTime = System.currentTimeMillis(); // // // 실행 시간을 측정할 코드 // // long time_end = System.currentTimeMillis(); double time_execute = time_end - time_start; System.out.println(time_execute / 1000 + "sec");

JAVA

[JAVA/자바] 메모리 사용량 확인

Runtime.getRuntime().gc(); Long usedMemory = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory(); System.out.println(usedMemory + "B"); System.out.println(usedMemory / 1000 + "KB"); System.out.println(usedMemory / 1000 / 1000 + "MB");

Problem Solving/BaekJoon

[BOJ/백준] 30017 - 치즈버거 만들기

30017번: 치즈버거 만들기 승현이가 일하는 햄버거 가게에는 요리 재료로 사용할 햄버거 패티가 $A$개, 슬라이스 치즈가 $B$개 있다. 치즈버거를 만들기 위해서는 패티와 치즈를 각각 한 개 이상 고른 후 햄버거 빵 사이에 www.acmicpc.net 2 * A - 1와 2 * B + 1의 최소 제목 치즈버거 만들기 조건 시간 제한 : 1 초 메모리 제한 : 1024 MB 문제 승현이가 일하는 햄버거 가게에는 요리 재료로 사용할 햄버거 패티가 A개, 슬라이스 치즈가 B개 있다. 치즈버거를 만들기 위해서는 패티와 치즈를 각각 한 개 이상 고른 후 햄버거 빵 사이에 패티와 치즈를 번갈아 쌓아야 한다. 단, 패티의 개수는 치즈의 개수보다 정확히 한 개 더 많이 골라야 한다. 승현이는 가게에 있는 요리 재료를..

JunHoChoi
'분류 전체보기' 카테고리의 글 목록 (4 Page)