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

쿼리 메소드 기능 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. 회복성 패턴 서비스에 장애가 발생했을 때, 문제가 전파되는 것을 막는 구현 방식은 3가지가 있다. Circuit Breaker 서비스 호출을 모니터링 하여 일정 timeout을 넘기면 실패 횟수가 카운팅 되고 조건에 충족되면 회로 차단기가 활성화 되어 다른 서버로의 장애 전파를 막는다. Fall back 회로 차단기에 의해 서비스 호출이 실패하면 대체 코드를 서비스 한다. Bulk head 스레드를 격리된 구획으로 관리하여 특정 스레드에 문제가 발생시 전체 application이 다운될 위험을 방지한다. ##2. 종류 Hytrix Hystrix는 Netflix에서 Circuit Breaker, Fall back, Bulk head 패턴을 구현한 라이브러리. 2018년도에 공식적으로 개발 종료. ..

공부해볼 디자인 패턴 템플릿 메서드 패턴 전략 패턴 템플릿 콜백 패턴 디자인패턴 공부시, 가장 중요한 것은 바로 디자인패턴의 의도이다. 의도 생각하면서 공부할 것. 1. 템플릿 메서드 패턴 정의: 작업에서 알고리즘의 골격을 정의하고 일부 단계를 하위 클래스로 연기합니다. 템플릿 메서드를 사용하면 하위 클래스가 알고리즘의 구조를 변경하지 않고도 알고리즘의 특정 단계를 재정의할 수 있습니다. [GOF] 변하는 것과, 변하지 않는 것을 분리 단일 책임 원칙을 잘 지킨 패턴 Single Responsibility Principle 단일 책임 원칙은, 변경이 있을 때 가장 잘 드러나게 된다. (SRP를 잘 지켰다면 변경 최소) 템플릿 패턴은 변경 지점을 하나로 모아, 변경에 쉽게 대처하도록 함. 추상 클래스에 공..
스프링 핵심 디자인 패턴 템플릿 메서드 패턴 전략 패턴 템플릿 콜백 패턴 프록시 패턴 데코레이터 패턴 데이터 동기화 방법 Parameter 동기화 개념: 데이터를 함수 파라미터로 넘겨주어 동기화 시킴. 문제점: 동기화를 위해 관련 method의 모든 parameter를 수정해야 한다. (만약, 인터페이스가 있다면 인터페이스까지 모두 고쳐야 함) Field 동기화 개념: 객체 내의 필드로 초기화 시키고 값을 변경하면서 동기화 시킴. 문제점: 동시성 문제가 발생. 필드 객체가 singleton으로 등록된 spring bean이기 때문이다. 이 인스턴스의 필드를 여러 thread가 동시에 접근하게 되기 때문에 문제가 발생한다. 싱글톤 객체의 필드를 사용하면서 동시성 문제를 해결하려면? -> ThreadLoca..
참고) Reindex 관련 글: https://flexiblecode.tistory.com/157 Elasticsearch (3) - reindex ** Elasticsearch를 공부하며 정리한 글입니다. Elasticsearch에서는 인덱스 매핑 정보가 바뀌면 업데이트 하는 과정이 어렵다. reindex를 통해 다시 인덱스 생성을 한 후 reindex api 호출을 통해 기존 인덱 flexiblecode.tistory.com Update By Query 기능 조건에 맞는 필드를 탐색 후 업데이트 사전을 반영하는 문서 재색인 ES 사전 반영을 위해서는 2가지 방법을 사용할 수 있다. Update By Query API 사용 사전 반영을 위해서 update by query API 호출 전 index를 c..
Tokenizer : 문장을 정해진 기준(공백 등)으로 분리하여 token을 생성하는 작업. nori tokenizer nori 형태소 분석기를 사용하는 토크나이저 whitespace 공백 기준으로 분리하는 토크나이저 keyword 입력된 문장이나 단어 그 자체를 토큰으로 만드는 토크나이저 standard lowercase + whitespace 를 수행하는 토크나이저 Token Filter : Tokenizer로 분리된 token들을 원하는 형태로 가공하는 작업. # index 구성 nori_crawl, nori_crawl_hanspell Tokenizer type: nori_tokenizer를 사용하여 nori 형태소 분석기로 토크나이징 진행 user_dictionary: 사용자 사전을 정의했다. d..
local redis 사용중, RDB 백업 관련 에러 발생. 에러 메시지 MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.. → Redis를 캐시 ..