본문 바로가기

전체 글

(73)
4-2 설계한대로 만들어보자! 이전 Post에서 해결하지 못한 객체 모델링과 DB모델링에서 오는 괴리감. 을 해결해보자 이전 모델링을 통해서 다음과 같이 구성할 수 있었습니다. Flower_name과 color를 복합키로 하는 Flower가 이제 어떠한 값타입으로 특성들을 가질 수 있게 되었습니다. Flower는 List로 자신의 특성인 season과 keyword들을 가질 수 있게 구성할 수 있습니다. @Data @Entity @NoArgsConstructor public class Flower { @EmbeddedId private FlowerId id; private String symbol; private String imageUrl; @OneToMany(mappedBy = "flower", cascade = CascadeTy..
4-1. DB모델링 변화 이전 Posting에서 기존에 있던 sql문을 JPQL또는 JPA를 활용해서 변화하고자 하였는데, 진행하면서 DB모델링에 의구심이 들었고, 이를 해결하고자 했다. 1. 이전 설계의 문제점 구현하고자 하는 기능은 검색 기능이였고, 어떤식으로 검색을 하든 나와서 보여주어야 하는 결과값이 항상 같기 대문에 join문이 너무 많이 나갔다. 어떤 옵션으로 검색을 하든 나와야 하는 값은 json 형태로 표현하자면, 밑과 같다. { "flowerName" : "장미", "season " : [ 봄 , 여름], "feature" :[ { "color" : "빨강" "description" : "사랑과 정열" "keyword" : ["사랑", "정열"] "url" : {red_rose.jpg} }, { "color" :..
[백준] Q22866 탑 보기JAVA https://www.acmicpc.net/problem/22866 22866번: 탑 보기 3번째 건물에서 볼 수 있는 건물은 2, 4, 8번째 건물로 총 3개를 볼 수 있다. 그 중 3번째 건물과 가장 가까운 건물은 2, 4번째 있는 건물로 이 중 번호가 작은 번호인 2가 답이 된다. www.acmicpc.net 1. 문제의 유형 및 이해 스택 일직선으로 다양한 높이의 건물 총 N개에 대해 양 옆에 존재하는 건물의 옆을 몇개 볼 수 있는지 궁금하다. 현재 건물 높이가 L이라고 할 때, 높이가 L보다 큰 건물만 볼 수 있고, 바라보는 방향에 높이가 L인 건물 뒤에 L이하의 건물이 있다면 가려져서 보이지 않는다. 각 건물에서 볼 수 있는 건물들의 개수와, 가장 가까운 건물 위치를 출력하라. 어떤 기준 건물..
03. 새로 배워나가야 할 것들.. JPA를 배우고 적용하기도 전에 Database 설계를 보면서 막혀 답답하기도 하고 무엇이 베스트일까 생각도 하고 다른 공부도 조금씩 하다보니 시간이 조금 늦춰졌다. 문제가 되는 부분은 Database 설계 부분이 가장 컸다. entity diagram이 나오면 mapping하면 금방 끝나겠지만, 설계 자체가 마음에 들지 않아 꽤나 고생한 끝에 결국 일단 그대로 진행하면서 서서히 고쳐나가자는 처음 생각에 맞도록 진행하기로 결정했다. 설계하고자 하는 내용은 다음과 같다. - 꽃은 다양한 색상을 가진다. - 꽃은 피어나는 계절이 여러 계절일 수 있다. - 꽃은 색상에 따라 꽃말을 가진다. - 꽃말은 여러 키워드를 가질 수 있다. 구현하고자 하는 검색 기능은 다음과 같다. - Keyword를 통한 검색 - 꽃..
Spring boot 에서 h2 database 초기 데이터 설정하기 by SQL 현재 개인 프로젝트를 진행하면서 고정적으로 update나 create가 빈번하지 않고 읽기만 하는 테이블들이 존재해서 미리 테스트 데이터를 넣어두고 진행하려고 한다. spring boot jpa database initialize로 찾아가면서 얻은 정보들을 기록해두려고 한다. 검색을 하면서 spring.datasource.data 를 사용하려고 하였으나 deprecated가 되서 찾아보게 되었다. (버전 정보를 확인하세요 ! 2.x 다른 버전에서는 다르게 설정해도 가능합니다.) 프로젝트 버전 정보 Spring boot : 2.6.4 h2 database : 2.1.210 기준 jpa 설정정보 1. Spring documentation을 참조해보자. https://docs.spring.io/spring-b..
[백준] Q11085 군사 이동 JAVA https://www.acmicpc.net/problem/11085 11085번: 군사 이동 전쟁 당시 Baekjoon World의 국왕은 Cube World를 공격할 작전을 세운 적이 있습니다. Baekjoon World와 Cube World는 p개의 지점과 w개의 길로 표현됩니다. 모든 길은 양방향이며, 각 길마다 너비가 존재하여 www.acmicpc.net 1. 문제의 유형 및 이해 그래프 탐색, 분리집합 문제를 단순히 하면 다음과 같습니다. 노드 P개와 W개의 edge가 주어진다. 이 때 두 노드 C와 V가 주어지는데, C에서 V까지 가는 여러 경로가 있다. 이 때 각 경로에 포함된 간선 중 가장 작은 값을 가장 크게하는 경로를 찾아보자. 처음에 푼 풀이방법과 이후에 알게된 풀이에 대해 정리해봅시..
[백준] Q17610 양팔저울 JAVA https://www.acmicpc.net/problem/17610 17610번: 양팔저울 무게가 서로 다른 k개의 추와 빈 그릇이 있다. 모든 추의 무게는 정수이고, 그릇의 무게는 0으로 간주한다. 양팔저울을 한 번만 이용하여 원하는 무게의 물을 그릇에 담고자 한다. 주어진 모든 추 www.acmicpc.net 1. 문제의 유형 및 이해 완전탐색 서로다른 K개의 추를 양팔저울을 한번만 비교하여 원하는 무게를 그릇에 담고자 한다. {1,2,6}의 추가 주어질 때 , 만들 수 있는 모든 경우의 수는 다음과 같다. (ㅁ : 그릇) 그릇에 4만큼의 무게를 담고자 할때는 가지고 있는 추 2, 6을 이용하여 (ㅁ + 2) = 6 을 통해 ㅁ = 4 를 만들어 낼 수 있다. 모든 추의 합이 S라고 할 때 1~ S ..
[백준] Q9079 동전게임 JAVA https://www.acmicpc.net/problem/9079 9079번: 동전 게임 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 세 줄로 이루어지며, 한 줄에 세 개의 동전모양이 주어지는데, 각각의 동전 표시 사이에는 하나의 공백이 www.acmicpc.net 1. 문제의 유형 및 이해 완전탐색, bit연산 동전을 3행 3열로 놓을 때 앞면을 H 뒷면을 T라고 하자. 게임의 목적은 모든 동전을 같은 면으로 보이도록 하게하는 것이다. 한 번에 3개의 동전을 뒤집는 행위를 '한번의 연산'으로 셀 때 최소 횟수로 실행하고 싶다. 가로, 세로, 대각선 (항상 3개씩 뒤집어야함) 연산의 개수는 총 가로 3줄, 세로 3줄 대각선 2줄로 한번의 상태에서 총 8..