JPA는 기술 명세이며, 인터페이스이다. JPA는 Java Persistence API의 약자이며, JAVA 애플리케이션에서 관계형 데이터베이스를 어떻게 사용해야 되는지를 정의한 인터페이스이다. 라이브러리가 아니다. 인터페이스이므로 구현이 없다. JPA를 구현한 여러 라이브러리가 존재한다. Spring으로 개발하다 보면 Hibernate 자주 볼 수 있는데, Hibernate는 JPA를 구현한 라이브러리이다. Hibernate 외 DataNucleus, EclipseLink 등 다른 여러 라이브러리가 존재한다.(꼭 Hibernate를 사용해야되는 것은 아니다.) Spring Data JPA는 개발자가 쉽게 JPA를 사용할 수 있도록 한 Spring에서 제공하는 모듈이다. Spring으로 개발하다 보면 J..
JPA를 사용 시 보통 Entity 클래스에 포함된 모든 데이터를 읽어오게 되는데, 일부 컬럼만 가져오고 싶을 때가 있다. 일부 컬럼만 가져오는 방법을 정리한다. 아래 정의한 Entity 클래스에서 @Entity @Table(name = "deal") public class Deal { @Id @GeneratedValue private Long id; private String name; private Integer price; @OnoToOne(mappedBy = "deal", cascade = CascadeType.ALL) private DealExtra dealExtra; } 일부 컬럼만 가져오기 위한 Interface를 아래와 같이 정의한다. public interface DealMapping {..
팝업 윈도우로 노출할 페이지가 Origin이 같다면, onbeforeunload로 이벤트 처리하고 const popupWindow = window.open('http://www.google.com') popupWindow.onbeforeunload = function() { // TODO: Your code } Origin이 다르면, onbeforeunload로 이벤트가 발생하지 않기 때문에 setInterval을 사용하여 팝업 윈도우가 닫혔는지 확인한다. const popupWindow = window.open('http://www.google.com'); const timer = setInterval(function() { if (popupWindow.closed) { clearInterval(tim..
Rolling-Restart란? ES 입장에서는 클러스터에 속한 노드중 한대가 중지되면 그 노드에 속한 프라이머리 샤드나 레플리카 샤드를 다른 노드로 옮기려는 샤드 할당(Shard Allocation) 작업을 수행한다. 이는 클러스터의 특정 노드가 장애상황일 때 이부분에 대한 Fail Over가 동작하는 과정이다. 그러나 순차적 재시작 case에서는 이 과정이 오히려 오버헤드(overhead)로 동작하기 때문에 재시작 전 클러스터의 샤드 할당 기능을 비활성화해 샤드 할당이 다시 일어나는 것을 미연에 방지한다. Rolling-Restart 사용 이유 검색 중단 없이 하드웨어 교체, 서버/ Elasticsearch 업그레이드 작업을 위해 사용한다. indices의 _close, _open 없이 수정된 설정 ..
Spring Boot 2.0에서 인터넷으로 구할 수 있는 OAuth2 예제(2.0 기반이 아닌 프로젝트)를 따라하다보면 Authorization Code Grant Type에서 아래와 같은 에러가 발생할 수 있음 "User must be authenticated with Spring Security before authorization can be completed." Spring Boot 2.0이 아닌 이하 1.5.x에서는 위 에러 메시지 대신에 로그인 입력 창이 보이는데 2.0에서는 보이지 않음 버전에 따른 차이라면 Dependency인데 1.5.x 이하에서는 아래와 같고, - groupId: org.springframework.security.oauth - artifactId: spring-secu..
# CentOS 기반 Fluentd와 HDFS(Hadoop) 연동하기 @ Fluentd 준비하기 설치 curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh 데몬 실행 /etc/init.d/td-agent start systemd systemctl [start / stop / restart / status] td-agent.service init.d /etc/init.d/td-agent [start / stop / restart / status] 테스트(8888 포트는 최초 설치 시 디폴트로 사용) curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug..
- Total
- Today
- Yesterday
- JPA
- onbeforeunload
- oid
- HDFS
- springjpa
- popupWindow
- development
- ffmpeg
- jdk6
- Spring
- springboot
- programmer
- AVIOContext
- CentOS
- Rolling-Restart
- Virtual Thread
- jdk7
- Programming
- JAXB
- springframework
- JDK21
- libavformat
- DATABASE
- HLS
- C/C++
- DB
- elasticsearch
- fluentd
- Java
- HTTP Live Streaming
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |