분류 전체보기

    Set 인터페이스

    Set 인터페이스

    🧐 Set Interface란? Set 인터페이스는 중복을 허용하지 않고, 저장순서가 유지되지 않는 컬렉션 클래스를 구현하는데 사용된다. (LinkedHashSet은 Set을 상속받음에도 불구하고 입력 순서대로의 저장순서를 보장하고 있다. 그러나 중복은 아니다.) 기본적으로 List 계열은 index(Node)로 관리하기에 add()같은 메서드를 쓰면 순서대로 저장이 되었다. Queue 계열 또한 PriorityQueue(우선순위 큐)를 제외하고는 입력 순서대로 객체가 연결되어 있다. 하지만 Set의 경우 일반적으로 입력받은 순서와 상관없이 데이터를 집합시키기 때문에 입력받은 순서를 보장할 수 없다. 이러한 순서 보장을 개선하기 위해 만들어진 것이 LinkedHashSet이다. 만약 중복은 허용하고 싶지..

    [백준] 2908번 - Java(자바)

    [백준] 2908번 - Java(자바)

    백준 2908번 자바 https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 문제 내용은 아래 더보기를 누르면 나온다. 더보기 알고리즘 3자리의 정수 A와 B를 첫 줄에 입력받는다. (A != B, A와 B는 서로 같지 않다) 만약 123을 입력받았으면 321 로 바꾼다. 두 수를 비교해서 큰 수를 출력한다. 1. 3자리의 정수 A와 B를 첫 줄에 입력받는다. 3. 각 정수의 자리를 바꾼다. 4. 두 수를 비교해서 큰 것을 출력한다. 풀이1 import java...

    JPA 데이터베이스 자동 생성

    JPA 데이터베이스 자동 생성

    JPA는 데이터베이스 스키마를 자동 생성하는 기능을 지원한다. 그래서 DB에 미리 만들어 놓지 않아도 JPA를 통해 코드를 작성해서 자동으로 생성시켜줘서 편하기도 하다. 클래스의 매핑 정보를 보면 어떤 테이블에 어떤 컬럼을, 어떤 제약조건 등을 사용하는지 알 수 있다. JPA는 매핑 정보와 DB 방언을 사용해서 DB 스키마를 생성한다. 📝 사용 방법 // xml 방식 - persistence.xml // application.properties 방식 spring.jpa.hibernate.ddl-auto=옵션 // application.yml 방식 spring: jpa: hibernate: ddl-auto: 옵션 이 속성을 추가하면 애플리케이션 실행 시점에 DB 테이블을 자동으로 생성한다. 📝 속성 옵션 ..

    Queue 인터페이스

    Queue 인터페이스

    🧐 Queue Interface(큐 인터페이스)란? Queue Interface는 선형 자료구조로 순서가 있는 데이터를 기반으로 선입선출(FIFO, First In First Out)을 위해 만들어진 인터페이스이다. 큐는 1,2,3,4 순으로 데이터를 넣으면 꺼낼 때 넣은 순서대로 1,2,3,4로 나오는 구조라는 것이다. 가장 앞쪽은 head(헤드)이고, 가장 뒷쪽은 tail(꼬리)라고 부른다. Queue를 상속하고 있는 Deque(덱)이라는 Interface도 있다. Queue는 한쪽 방향으로만 삽입과 삭제가 가능하지만 Deque는 Double-ended Queue라는 의미로 양쪽에서 가능하다. Stack의 성질과 Queue의 성질을 모두 가지고 있는 자료구조이다. 📝 Queue Interface에 정..

    List 인터페이스

    List 인터페이스

    🧐 List Interface(리스트 인터페이스)란? List Interface는 선형 자료구조로 순서가 있는 데이터를 목록으로 사용할 수 있도록 만들어진 인터페이스이다. 배열은 우리가 선언한 공간 외에는 더 이상 사용할 수 없다. 이런 배열의 단점을 보완하여 List를 통해 구현된 클래스들은 동적 크기를 가지면서 배열처럼 사용할 수 있다. 특징으로는 다음과 같다. 요소의 저장 순서가 유지 같은 요소의 중복 저장 허용 배열의 기능 + 동적 크기 할당 Java에서는 두 가지 범용 List 구현이 있다. 일반적으로 사용하는 ArrayList 특정 상황에서 더 나은 성능을 제공하는 LinkedList 위의 List 구현말고도 잘 사용하지 않는 두 가지가 더 있다. Vector Stack 🧐 List Inter..

    JPA 영속성 관리 - 정리

    엔티티 매니저 팩토리와 엔티티 매니저 영속성 컨텍스트 소개 영속성 컨텍스트 특징 플러시란? 준영속 상태와 병합 JPA 영속성 관리의 마지막 글이다. 이번 장에서는 위 내용에 대해 정리를 해보자. EntityManagerFactory와 EntityManager 엔티티 매니저는 엔티티 매니저 팩토리에서 생성한다. 자바를 직접 다루는 J2SE 환경에서는 엔티티 매니저를 생성하면 그 내부에 영속성 컨텍스트도 같이 생성된다. 엔티티 매니저를 통해 영속성 컨텍스트를 접근할 수 있다. 영속성 컨텍스트 (Persistence Context) 애플리케이션과 DB 사이에서 객체를 보관하는 가상 DB같은 역할을 한다. 영속성 컨텍스트 덕분에 1차 캐시, 동일성 보장, 트랜잭션을 지원하는 쓰기 지연, 변경 감지(Dirty C..

    JPA 준영속, 병합

    JPA 준영속, 병합

    영속 상태는 persist() 메서드 또는 find() 메서드를 사용할 때 1차 캐시에 저장되면서 영속성 컨텍스트가 관리하면서 된다고 했다. 준영속 상태는 영속 상태의 엔티티가 영속성 컨텍스트에서 분리(detached)됐을 때이다. 이러면 영속성 컨텍스트가 제공하는 기능을 사용하지 못한다. (변경 감지, 지연로딩 등) 📝 준영속 상태로 만드는 방법 1. em.detach(entity) - 엔티티를 준영속 상태로 전환 1차 캐시부터 쓰기 지연 SQL 저장소까지 해당 엔티티를 관리하기 위한 모든 정보 제거 2. em.clear() - 영속성 컨텍스트 초기화 영속성 컨텍스트를 초기화해서 해당 영속성 컨텍스트의 모든 엔티티를 준영속 상태로 만든다. 3. em.close() - 영속성 컨텍스트 종료 영속성 컨텍스..

    [백준] 1152번 - Java(자바)

    [백준] 1152번 - Java(자바)

    백준 1152번 자바 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 문제 내용은 아래 더보기를 누르면 나온다. 더보기 알고리즘 영어 대소문자와 공백으로 이루어진 문자열 str (str