전체 글

전체 글

    [JPA] 영속성 컨텍스트와 플러시

    [JPA] 영속성 컨텍스트와 플러시

    인프런 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 내용 정리 영속성 컨텍스트 영속성 컨텍스트란 '엔티티를 영구 저장하는 환경'이라는 뜻이다. 애플리케이션과 DB 사이에서 객체를 보관하는 논리적 개념이다. 엔티티 매니저를 통해 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. em.persist DB에 저장한다는 뜻이 아닌 엔티티를 영속성 컨텍스트에 저장한다는 의미 특징 엔티티 매니저를 생성할 때 딱 하나만 만들어진다. 엔티티 매니저를 통해 영속성 컨텍스트에 접근하고 관리할 수 있다. 엔티티의 생명주기 비영속(new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속(managed) 영속성 컨텍스트에 관리되는 상태 준영속(detache..

    [자바의 정석] 7장 - 객체지향 프로그래밍 Ⅱ

    [자바의 정석] 7장 - 객체지향 프로그래밍 Ⅱ

    상속 (Inheritance) 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속의 장점 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 extends 키워드와 함께 써준다. class Child extends Parent { ... } 조상 클래스 부모(parent) 클래스, 상위(super) 클래스, 기반(base) 클래스 자손 클래스 자식(child) 클래스, 하위(sub) 클래스, 파생된(derived) 클래스 생성자와 초기화 블럭은 상속되지 않는다. 멤버만 상속된다. 자손 클래스의 멤버 개수는 조상 클래스..

    [Java] 코테 준비 - 클래스 객체 배열 정렬하기 -  Comparable<E>

    [Java] 코테 준비 - 클래스 객체 배열 정렬하기 - Comparable<E>

    Comparable 이용한 정렬 Comparable 인터페이스를 implements 하고 추상 메서드인 compareTo 를 구현해야 한다. compareTo의 리턴 값이 양수라면 오름차순으로 정렬하고 음수라면 내림차순으로 정렬한다. 내림차순 정렬 public class SortTest { static class Pair implements Comparable { int first; public Pair(int first, int second) { this.first = first; this.second = second; } int second; @Override public int compareTo(Pair p) { return p.first - this.first; } } @Test void sort..

    [Java] 프로그래머스 - 로또의 최고 순위와 최저 순위(Level 1)

    [Java] 프로그래머스 - 로또의 최고 순위와 최저 순위(Level 1)

    🔗 문제 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 💡 풀이 이 문제의 핵심은 0을 개수를 당첨 번호로 가정해서 최고 순위와 0을 제외해 최저 순위를 구하는 것이다. 최고 순위 : 0의 개수 + 맞은 번호의 수 최저 순위 : 맞은 번호의 수 최고 순위와 최저 순위는 위와 같이 구할 수 있다. 💻 코드 import java.util.*; public class Solution { public int[] solution(int[] lottos, int[] win..

    [Java] 프로그래머스 - 점프와 순간 이동 (Level 2)

    [Java] 프로그래머스 - 점프와 순간 이동 (Level 2)

    코딩테스트 연습 - 점프와 순간 이동 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈 programmers.co.kr 📝 문제 설명 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈..

    [JAVA 풀이] 프로그래머스 - 이진 변환 반복하기 (Level2)

    [JAVA 풀이] 프로그래머스 - 이진 변환 반복하기 (Level2)

    코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr 📝 문제 설명 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요. ⚠️ 제한사항 s의 길이는 1 이상 150,..

    [JAVA 풀이] 프로그래머스 - 캐시 (2018 KAKAO BLIND RECRUITMENT)

    [JAVA 풀이] 프로그래머스 - 캐시 (2018 KAKAO BLIND RECRUITMENT)

    코딩테스트 연습 - [1차] 캐시3 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Jeju", "Pangyo", "Seoul", "NewYork", "LA"] 50 3 ["Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul"] 21 2 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "SanFrancisco", "Seoul", "Roprogrammers.co.kr📝 문제 설명지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업..

    [JAVA 풀이] 프로그래머스 - 모음사전 (Level 2)

    [JAVA 풀이] 프로그래머스 - 모음사전 (Level 2)

    코딩테스트 연습 - 모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr 📝 문제 설명 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니다. 단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요. ⚠️ 제한사항 word의 길이..

    [JAVA 풀이] 프로그래머스 - 전력망을 둘로 나누기 (Level 2)

    [JAVA 풀이] 프로그래머스 - 전력망을 둘로 나누기 (Level 2)

    코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 📝 문제 설명 n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 r..