일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 백준 20055 컨베이어 벨트 위의 로봇
- 코틀린
- 백준 13460 Python
- 스프링 핵심 원리
- 스프링 컨테이너와 스프링 빈
- kotlin in action 정리
- 고급매핑
- 객체 지향 설계와 스프링
- 백준
- 20055 컨베이어 벨트 위의 로봇
- 싱글톤 컨테이너
- Kotlin
- Python
- 스프링 핵심 원리 이해
- 7장 고급매핑
- Kotlin in action 5장
- KotlinInAction
- 코틸린인액션
- 기능개발 python
- 13460 구슬탈출 2
- 자바 ORM 표준 JPA 프로그래밍 7장
- 컨베이어 벨트 위의 로봇 Python
- Kotlin In Action
- spring
- Kotlin in action 10장
- Kotlin in action 3장
- 코틀린인액션
- 20055
- 스프링 핵심 원리 - 기본편
- Kotlin in action 6장
- Today
- Total
목록스터디 (19)
기록하는 습관
1. 예외 처리 jpa 표준 예외는 javax.persistence.PersistenceException의 자식 클래스이다. jpa 예외는 모두 unchecked 예외이다. ** unchecked 예외란? 언체크 예외는 RuntimeException의 하위 클래스들을 의미. 체크 예외와는 달리 에러 처리를 강제하지 않는다. 말 그대로 실행 중에(runtime) 발생할 수 있는 예외를 의미한다. 배열의 범위를 벗어난(ArrayIndexOutOfBoundsException) 값이 null이 참조변수를 참조(NullPointerException) JPA 표준 예외 2가지 1. 트랜잭션 롤백을 표시하는 예외 트랜잭션 강제로 커밋해도 커밋되지 않고, javax.persistence.RollbackException..
스프링 데이터 JPA와 QueryDSL 통합 1. QueryDslPredicateExecutor 사용 첫 번째 방법은 다음처럼 리포지토리에서 QueryDslPredicateExecutor를 상속받으면 된다. 이제 상품 리포지토리에서 QueryDSL을 사용할 수 있다. 아래 예제는 QueryDSL이 생성한 쿼리 타입으로 장난감이라는 이름을 포함하고 있으면서 가격이 10000~20000원인 상품을 검색한다. public interface ItemRepository extends JpaRepository, QueryDslPredicateExecutor {} QItem item = QItem.item; Iterable result = itemRepository.findAll( item.name.contains(..
1. 기본 문법과 쿼리 API Java Persistence Query Language(JPQL)은 엔터티 객체를 대상으로 하는 쿼리 언어로, SQL과 유사하지만 테이블이 아닌 엔터티에 대해 작동한다. 1.1 기본 문법 JPQL의 기본 문법은 다음과 같다: SELECT FROM WHERE 예) SELECT e FROM Employee e WHERE e.department = 'IT' 이 쿼리는 'IT' 부서에 속한 모든 직원을 검색한다. 1.2 쿼리 API JPQL은 EntityManager를 통해 실행된다. EntityManager는 엔터티를 관리하고 영속성 컨텍스트를 제공하는데, 이를 이용해 JPQL을 실행할 수 있다. EntityManager em = // EntityManager를 얻는 코드 Ty..
JPA 의 데이터 타입을 가장 크게 분류하면 엔티티 타입과 값 타입으로 나눌 수 있다. 엔티티 타입 : @Entity로 정의하는 객체 식별자를 통해 지속적으로 추적할 수 있다. 엔티티의 속성 값을 변경하더라도 같은 엔티티이다. 값 타입 : int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체를 말한다. 식별자가 없고 숫자나 문자같은 속성만 있으므로 추적할 수 없다. 숫자 값을 100에서 200으로 변경하면 완전히 다른 값으로 대체된다. 값 타입은 다음의 3가지로 나눌 수 있다. 기본값 타입(Basic value type) 자바 기본 타입(예: int, double) 래퍼 클래스(예: Integer) String 임베디드 타입(복합 값 타입) JPA 에서 사용자가 직접..
더보기 회사에서 JPA 스터디를 중간에 참여하게 되어 7장부터 글을 쓰게 되었다. 앞으로 책을 읽고 알게된 내용이나, 궁금했던 점 위주로 정리할 예정이다. 복합 키와 식별관계 매핑 식별관계 vs 비식별관계 DB 테이블 사이의 관계는 외래 키가 기본 키에 포함되는지 여부에 따라 식별, 비식별로 구분된다. 식별관계 식별 관계는 부모 테이블의 기본 키를 내려 받아 자식 테이블의 기본키 + 외래키로 사용하는 관계 비식별관계 비식별 관계는 부모 테이블의 기본 키를 받아서 자식 테이블의 외래 키로만 사용하는 관계다. 비식별 관계는 외래키에 NULL을 허용하는지에 따라 필수적, 선택적으로 갈린다. 필수적 비식별 관계 외래키에 NULL 허용하지 않음 연관관계를 필수적으로 맺어야함 선택적 비식별 관계 외래키에 NULL ..
** 이 글은 Kotlin In Action을 읽고 정리한 글입니다. ** 10.1 애노테이션 선언과 적용 10.1.1 애노테이션 적용 애노테이션 적용을 위해서는 적용하는 대상 앞에 애노테이션을 붙이면 된다. 애노테이션은 '@'과 애노테이션 이름으로 이루어진다. 예를 들어 JUnit 프레임워크를 사용한다면 테스트 메서드 앞에 '@Test' 애노테이션을 붙이면 된다. class MyTest{ @Test fun testTrue(){ Assert.assertTrue(true) } } 애노테이션의 인자로는 원시 타입의 값, 문자열, enum, 클래스 참조, 다른 애노테이션 클래스, 배열이 들어갈 수 있다. 애노테이션의 인자를 지정하는 문법은 자바와 약간 다르다. 클래스를 애노테이션 인자로 지정할 때는 @MyAn..
** 이 글은 Kotlin In Action을 읽고 정리한 글입니다. ** 1. 널 가능성 fun strLenSafe(s: String?) = s.length() 타입 이름 뒤에 물음표(?)를 붙이면 그 타입의 변수나 프로퍼티에 null 참조를 저장할 수 있다. val x:String? = null val y:String = x 널이 될 수 있는 값을 널이 될 수 없는 타입의 변수에 대입할 수 없다. 안전한 호출 연산자 ?. null 검사와 메서드 호출을 한 번의 연산으로 수행한다. val country = this.company?.address?.country 엘비스 ?:연산자 이항 연산자로 좌항을 계산한 값이 널인지 검사한다. 좌항 값이 널이 아니면 좌항 값을 결과로 하고, 좌항 값이 널이면 우항 값..
** 이 글은 Kotlin In Action을 읽고 정리한 글입니다. ** 1. 람다 식과 멤버 참조 1-3. 람다 식의 문법 { x:Int, y:Int -> x + y } 코틀린 람다 식은 항상 중괄호로 둘러싸여 있다. 화살표(->)가 인자 목록과 람다 본문을 구분한다. 실행 시점에 코틀린 람다 호출에는 부가 비용이 들지 않으며, 프로그램의 기본 구성 요소와 비슷한 성능을 낸다. 1) 함수 호출 시 맨 마지막 인자가 람다식이라면 이를 괄호 밖으로 빼낼 수 있다. people.maxBy() { p -> p.age } 2) 람다가 어떤 함수의 유일한 인자이고 괄호 뒤에 람다를 썼다면 호출 시 빈 괄호를 없애도 된다. people.maxBy { p -> p.age } 3) 람다의 파라미터가 하나뿐이고 컴파일..