일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코틀린
- 컨베이어 벨트 위의 로봇 Python
- Kotlin in action 10장
- 코틀린인액션
- kotlin in action 정리
- 20055
- Kotlin in action 6장
- Kotlin in action 5장
- 백준 20055 컨베이어 벨트 위의 로봇
- 20055 컨베이어 벨트 위의 로봇
- spring
- 객체 지향 설계와 스프링
- Kotlin in action 3장
- Kotlin
- 스프링 핵심 원리 이해
- 자바 ORM 표준 JPA 프로그래밍 7장
- 스프링 컨테이너와 스프링 빈
- Kotlin In Action
- 코틸린인액션
- 백준 13460 Python
- 스프링 핵심 원리 - 기본편
- 7장 고급매핑
- Python
- 고급매핑
- 싱글톤 컨테이너
- 13460 구슬탈출 2
- 기능개발 python
- 스프링 핵심 원리
- KotlinInAction
- 백준
- Today
- Total
기록하는 습관
1. WebSocket vs SSE 비교특징WebSocketSSE (Server-Sent Events)통신 방식양방향 (full-duplex)단방향 (server -> client)연결 유지지속적인 연결 유지 (클라이언트와 서버가 모두 메시지 전송 가능)지속적인 연결 유지 (서버에서 클라이언트로만 데이터 전송 가능)브라우저 지원대부분의 최신 브라우저 지원대부분의 최신 브라우저 지원 (IE 지원 X)재연결직접 구현 필요자동 재연결 지원 (EventSource API)사용 사례채팅, 온라인 게임, 금융 거래실시간 알림, 데이터 스트리밍, 로그 업데이트2. 대화형 AI와의 통신에서 적합한 방식WebSocket이 더 적합한 경우AI가 클라이언트의 입력을 실시간으로 받아야 하고, 결과를 즉시 반환해야 하는 경우 ..
🔥 WebSocket Stream 방식이란?WebSocket Stream 방식은 서버가 데이터를 한 번에 전송하는 게 아니라, 여러 번에 걸쳐 스트리밍(조각)으로 보내는 방식이다.즉, WebSocket 연결을 유지하면서 데이터를 점진적으로 처리하고, 필요한 만큼 실시간으로 전송하는 패턴을 의미한다.✅ 일반적인 WebSocket vs. WebSocket Stream방식설명일반 WebSocket한 번의 요청으로 한 번의 응답을 받음 (ex. 채팅 메시지)WebSocket Stream서버가 데이터를 조각으로 나눠서 지속적으로 전송 (ex. AI 응답, 실시간 데이터 처리)WebSocket Stream이 필요한 경우?AI가 긴 답변을 한 번에 보내기 어렵고, 조금씩 전송해야 할 때실시간 데이터 업데이트 (예:..

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. 메소드 이름으로 쿼리 생성 public interface MemberRepository extends Repository { List findByEmailAndName(String email, String name); } // 실행되는 JPQL select m from Member m where m.email = ?1 and m.name = ?2 ** 엔티티의 필드명이 변경되면 인터페이스에 정의한 메소드 이름도 꼭 함께 변경해야 한다. 그렇지 않으면 애플리케이션 시작하는 시점에 오류가 발생한다. 2. JPA NamedQuery // 어노테이션 방식 @Entity @NamedQuery( name="Member.findByUsername", query="select m from Mem..
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 ..