VM 대신 컨테이너를 사용하는 이유컨테이너는 VM보다 훨씬 가볍다.VM은 전체 운영체제를 포함하지만, 컨테이너는 애플리케이션과 해당 애플리케이션이 필요로 하는 라이브러리와 의존성만 포함한다.따라서 필요한 자원이 적고, 더 빠른 실행 및 확장이 가능하다. 컨테이너는 VM보다 시작 시간이 훨씬 짧다.VM은 운영체제를 부팅하는 시간이 필요하지만, 컨테이너는 거의 즉각적으로 시작할 수 있다. 컨테이너는 이식성이 좋고, 일관된 환경을 보장한다.컨테이너는 애플리케이션과 그 환경을 캡슐화하여 어느 플랫폼에서도 일관된 동작이 가능하다.개발환경, 테스트 환경, 운영 환경 간의 차이가 줄어들고, 다양한 환경에 쉽게 배포가 가능하다. 컨테이너는 VM보다 자원 사용이 효율적이다.컨테이너는 호스트 OS의 커널을 공유하여, 하나..
'24년 8월 14일, 큐텐테크놀로지 퇴사생애 처음 권고사직을 경험했다'24년 7월 8일 위메프 정산 지연 이슈가 시작이었다.오너의 폰지 사기같은 경영으로 회사가 어려움에 처했다.어려운 상황이라고 하지만, 회사는 아무런 내용도 공유하지 않았고대부분의 직원들은 언론보도 내용을 통해 상황이 어떻게 돌아가는지 파악했다.결국 회사는 권고사직 희망자를 받았고, 팀장을 제외한 모든 팀원은 권고사직을 신청했다.'24년 8월 14일 권고사직으로 퇴사했다.개인적인 손해도 컸다7월 급여 지급, 4대보험 미납(월급에서 공제됨)8월 급여 미지급, 4대보험 미납퇴직금 미지급아파트 담보 대출 불가구직시장은 보릿고개경기가 좋지 않아 재취업이 쉽지 않은 분위기다급한 대로 실업급여를 신청함미납 4대보험 중 챙겨야 할 것건강보험, 건보..
Could not open JPA EntityManager for transaction; nested exception is java.util.NoSuchElementException 위 트랜잭션을 만들 수 없다는 오류는 검색을 해보면 DB Connection Pool이 작거나, 접속 정보가 잘못되어 DB 연결에 실패하는 경우 발생할 수 있는데 최근에 이런 경우가 아닌 문제로 오류를 경험하게 되어 기록한다. DB 구성이 쓰기/읽기로 구분되어 있는 환경에서, JPA로 DB 작업을 하고 Annotation으로 쓰기/읽기 DB를 제어한다면 Annotation을 설정의 누락이나 실수로 읽기 DB에 쓰기 작업을 시도하여 같은 오류가 발생할 수 있다. 자신의 소스코드가 읽기 DB에 쓰기 작업을 하고 있지 않은지 확..
실행에 문제가 없던 스프링 프로젝트를 디버깅 모드로 실행했을 때 로딩이 완료되지 못하고 멈추는 현상이 간헐적으로 발생한적이 있다. (특정 로그에서 더이상 진행되지 못함) 해결을 위해 프로젝트 재빌드, 의존성 파일 초기화 등을 했지만 해결되지 않았다. 언제는 이건 인텔리J의 프로젝트 환경 설정이 꼬여서 발생하는 문제라고 생각해서 프로젝트 환경설정을 다시했고 이때는 해결된 기억이 난다. 최근에 문제를 찾았는데 인텔리J 프로젝트의 브레이크포인트의 영향으로 디버그 모드에서 멈추는 것이었다. 디버그 모드 실행 전에 브레이크포인트를 모두 제거 후 실행하면 정상적으로 실행된다.(Windows는 ctrl + shift + F8)
Spring Framework에서 JPA 사용 시 @Transactional(readOnly = true) 애노테이션을 사용하면 트랜잭션을 읽기 전용 모드로 동작시킬 수 있고, 성능 향상을 볼 수 있다. JPA는 기본적으로 엔터티를 영속성 컨텍스트에 관리하게 되고, 영속성 컨텍스트는 변경 감지를 위해 스냅샷 인스턴스를 보관하여 메모리를 사용하게 된다. 엔터티를 조회만 하는 경우 변경 감지와 메모리 사용은 불필요하므로 @Transactional(readOnly = true) 애노테이션을 사용하면 트랜잭션이 읽기 전용 모드로 설정되어 변경 감지할 엔터티를 줄이고 메모리 사용을 줄일 수 있다. @Transactional(readOnly = true) 애노테이션을 사용하면 Spring Data JPA는 Hibe..
JPA는 무엇인가? JPA는 Java Persistence API의 약자이며, JAVA 애플리케이션에서 관계형 데이터베이스를 어떻게 사용해야 되는지를 정의한 인터페이스이다. 라이브러리가 아니다. 인터페이스이므로 구현이 없다. 개발자가 직접 SQL을 작성하지 않아도 된다. 개발자 대신 적절한 SQL을 생성해서 DB에 전달하고, 객체에 자동으로 Mapping 해준다. 내부적으로 JDBC(Java Database Connectivity) API를 활용한다. SQL을 JPA가 자동으로 해결해 준다는 점에서 생성성을 높여준다. ORM은 무엇인가? ORM(Object-Relational Mapping)은 객체와 관계형 데이터베이스의 데이터를 자동으로 Mapping(연결)해주는 것을 말한다. 영속성이란 무엇인가? 데..
JPA는 기술 명세이며, 인터페이스이다. JPA는 Java Persistence API의 약자이며, JAVA 애플리케이션에서 관계형 데이터베이스를 어떻게 사용해야 되는지를 정의한 인터페이스이다. 라이브러리가 아니다. 인터페이스이므로 구현이 없다. JPA를 구현한 여러 라이브러리가 존재한다. Spring으로 개발하다 보면 Hibernate 자주 볼 수 있는데, Hibernate는 JPA를 구현한 라이브러리이다. Hibernate 외 DataNucleus, EclipseLink 등 다른 여러 라이브러리가 존재한다.(꼭 Hibernate를 사용해야되는 것은 아니다.) Spring Data JPA는 개발자가 쉽게 JPA를 사용할 수 있도록 한 Spring에서 제공하는 모듈이다. Spring으로 개발하다 보면 J..
- Total
- Today
- Yesterday
- DATABASE
- CentOS
- Rolling-Restart
- JAXB
- Spring
- elasticsearch
- springjpa
- Java
- C/C++
- HDFS
- programmer
- libavformat
- onbeforeunload
- HTTP Live Streaming
- ffmpeg
- jdk6
- jdk7
- popupWindow
- AVIOContext
- HLS
- oid
- development
- springframework
- Audio
- snmp
- fluentd
- JPA
- DB
- springboot
- Programming
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |