분류 전체보기 273

백준 2193번 : 이진수 자바

🧫 문제 분석✔️ 출처이진수 실버 3 📖 문제  내가 이해한 바로는    이런느낌이다.3번째를 만들어준 2번째의 수의 경우와 2번째를 만들어준 1첫째 수의 경우의 합이라는 느낌이다.  🔅 문제 풀이import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOException;public class Main { public static long[] dp; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ..

baekjoon/DP 2024.07.10

JPA - 프록시와 연관관계 관리

연관관계를 맺은 Member 와 Team 객체에서Member 만 조회할 때 Member 객체 안에는 Team 객체가 들어가 있을까?만약 그렇다면 Member만 사용하고 싶을 때는 어떻게 해야하나 ?JPA는 프록시 기술을 통해서 이 문제를 해결하였다.  ✔️ 프록시 실제 클래스를 상속받아서 만들어진 가짜  위임프록시 객체는 실제 객체의 참조를 보관 (Entity target 필드 가짐)프록시 객체를 호출하면 프록시 객체는 실제 객체의 메소드 호출 em.getReference() : 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회 1. 멤버 프록시 조회Member member = em.getRefernce(Member.class, id);2. member.getName() 호출member.getN..

Back-End/JPA 2024.07.10

JPA - 고급 매핑

✔️ 상속관계 매핑관계형 데이터베이스는 상속 관계 X슈퍼 타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사상속 관계 매핑 : 객체의 상속과 구조와 DB의 슈퍼타입 서브 타입 관계를 매핑  슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법각각 테이블로 변환 -> 조인 전략통합 테이블로 변환 -> 단일 테이블 전략서브타입 테이블로 변환 -> 구현 클래스마다 테이블 전략   ✔️ Join 전략부모 엔티티에 해당 애노테이션 붙이기@Entity@Inheritance(strategy = InheritanceType.JOINED) // 조인 전략@DiscriminatorColumn(name = "DTYPE") // DTYPE 설정 default : DTYPE public class Item { @..

Back-End/JPA 2024.07.09

JPA - 1:N 단방향과 양방향에 대해서

JPA 공부중 이해가 안가서 책을 참고하면서 이해한 것을 적어보려한다 먼저 JPA는 외래키를 관리하며 연관관계 주인만 사용한다.주인이 아닌 Team.members는 조회를 위한 JPQL이나 객체 그래프를 탐색할 때 사용한다. 가정Team : 1(연관관계 주인)Member : N (FK)  1:N 단방향 매핑을 하고 Team이 연관관계 주인이라 했을 때Member는 Team을 모른다.  아래의 코드를 실행해보자.Member member = new Member(); member.setUsername("member1"); Team team = new Team(); team.setName("team1"); member.setTeam(team); team.getMembers().add(member);..

Back-End/JPA 2024.07.09

JPA - 다양한 연관관계 매핑

✔️ 연관관계 매핑시 고려사항 3가지다중성다대일 : @ManyToOne일대다 : @OneToMany일대일 : @OneToOne다대다 : @ManyToMany단방향, 양방향테이블외래 키 하나로 양쪽 조인 가능방향 개념 x객체참조용 필드가 있는 쪽으로만 참조 가능한쪽만 참조 : 단방향양족이 서로 참조 : 양방향연관관계 주인테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음객체 양방향은 참조가 2개 (A -> B, B-> A)때문에 연관관계 주인을 설정하여 외래 키를 관리주인의 반대편은 외래 키에 영향을 주지 않고 단순 조회만 가능 항상 N (다) 쪽이 FK키를 갖기에 연관관계 주인이 된다. ✔️ N : 1 [ 다대일 ]가장 많이 사용다대일의 반대는 1:N [일대다]   외래 키가 있는 쪽이 연관관계의 주인..

Back-End/JPA 2024.07.09

연결리스트

✔️ 리스트(List)데이터를 순서대로 저장한 자료구조 리스트는 배열과 연결리스트를 이용해 구현할 수 있다.  리스트 추상데이터타입insert(list, pos, item) // pos 위치에 요소를 추가insert_last(list, item) // 맨 끝에 요소를 추가insert_first(list, item) // 맨 처음에 요소를 추가delete(list, pos) // pos 위치의 요소를 제거clear(list) // 리스트의 모든 요소를 제거get(list, pos) // pos 위치의 요소를 반환size() // 리스트의 길이를 반환is_empty(list) // 리스트가 비었는지 검사is_full(list) // 리스트가 꽉 찼는지 검사print_list(list) // 리스트의 모든 요..

CS/자료구조 2024.07.09

백준 1874번 : 스택 수열 자바

🧫 문제 분석✔️ 출처스택 수열 실버 2 📖 문제 1~N까지의 숫자들이 오름차순으로 스택에 push될 수 있고,입력된 수열, 여기서는[4 3 6 8 7 5 2 1] 이라는 수열을 만들기 위해 스택이 해야하는 연산을 출력하는 문제이다.push : + pop : - 우선 먼저 수열의 맨 처음인 4를 놓기 위해서는 1~4까지 스택에 push 후 1번 pop한다. 그럼 스택에는 1 2 3 이 남게 된다. 그다음은 3이므로 pop 한 번 한다.다음 6이므로 5 6 을 push하고 pop 하여 6을 빼낸다. 즉 수열의 각 순서에 따른 수만큼 push하고 top의 수가 현재 순서의 수면 pop하고 아니라면 NO를 출력하고 중단한다.push는 현재 까지 넣은 수에 따라서 진행한다. 현재까지 넣은 수보다 큰 수가 오..

백준 9095번 : 1, 2, 3 더하기 자바

🧫 문제 분석✔️ 출처1, 2, 3 더하기 실버 3 📖 문제  DP(동적계획법) 문제이다. 우선 1 과 2 그리고 3을 구하는 경우의 수를 봐보자 1 1 21 + 1231 + 1 + 12 + 11 + 23 문제에서 예시로 4를 구하는 방법이 나와있다. 4를 구하는 방법은 크게 보면1 + 3 2 + 23 + 1 이 세가지 경우라고 볼 수 있다. 우리는 1, 2, 3을 통해서 방법의 수를 구하기에 1을 고정해놓고 3을 구하는 경우의 수2를 고정해놓고 2를 구하는 경우의 수3을 고정해놓고 1을 구하는 경우의 수이 세가지의 합이 4를 구하는 경우의 수라고 볼 수 있다. 표로 보자면 이렇게 볼 수 있다.고정경우의 수1 + 1 + 1 + 11 + 22 + 132 + 1 + 123 + 1  🔅 문제 풀이impo..

baekjoon/DP 2024.07.06

JPA - 연관관계 매핑 기초

객체와 테이블의 연관관계는 매우 다르다. 객체는 참조 하여 연관된 객체를 찾지만테이블은 외래 키를 매핑(조인)하여 연관된 테이블을 찾는다.  ✔️ 단방향 연관관계 @Entitypublic class Member { // 기본 id 및 정보 생략 @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team;}Member 가 Team을 단방향으로만 알고 있는 상태  ✔️ 양방향 연관관계 @Entitypublic class Member { // 기본 id 및 정보 생략 @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team;} @Entitypublic class Team..

Back-End/JPA 2024.07.05

JPA - 엔티티 매핑

✔️ 객체와 테이블 매핑 @Entity클래스에 붙이는 애노테이션해당 클래스는 엔티티로써 JPA가 관리JPA를 사용해서 테이블과 매핑할 클래스는 @Entity가 필수기본 생성자 필수 (public | protected)final 클래스, enum, interface, inner 클래스 사용 불가저장할 필드에 final 사용 x 엔티티 객체는 리플렉션으로 (기본 생성자 + 필드 값 주입 방식) 생성한다. 그런데 final 필드로 선언해버리면 리플렉션을 통한 값 주입이 불가능해진다.  💠 속성name : JPA에서 사용할 엔티티 이름 지정, Default : 클래스 이름 그대로 사용  @Table@Table 은 엔티티와 매핑할 테이블 지정속성기능기본값name매핑할 테이블 이름엔티티 이름을 사용catalog데..

Back-End/JPA 2024.07.05