본문 바로가기

IT54

JPA - 스프링 연동 본 포스팅은 총 4편으로 구성되어 있습니다.2024.01.30 - [IT/오픈소스] - JPA - 기본 개념2024.12.23 - [IT/오픈소스] - JPA - 고급 매핑2024.12.23 - [IT/오픈소스] - JPA - 다양한 쿼리방법2024.12.24 - [IT/오픈소스] - JPA - 스프링 연동  JPA + 스프링 연동순수 java에서 JPA를 사용하였기 때문에 트랜잭션과, 엔티티매니저 등을 직접 설정해 주었다.하지만, 스프링 프레임워크에서 JPA를 연동한다면 더 간단히 사용가능하다.  org.springframework spring-orm 1.6.6 org.hibernate hibernate-entitymanager 5.3.7.Final META-INF/p.. 2024. 12. 24.
JPA - 다양한 쿼리방법 본 포스팅은 총 4편으로 구성되어 있습니다.2024.01.30 - [IT/오픈소스] - JPA - 기본 개념2024.12.23 - [IT/오픈소스] - JPA - 고급 매핑2024.12.23 - [IT/오픈소스] - JPA - 다양한 쿼리방법2024.12.24 - [IT/오픈소스] - JPA - 스프링 연동  지금까지는 조건이 없는 간단한 쿼리를 조회하였다.Member m = em.find(Member.class, 3);하지만, 조건이 복잡한 쿼리는 결국에 SQL을 사용해야한다.String jpql = "select m from Member m where m.id = 3 and m.age = 30";Member m = em.createQuery(jpql, Member.class).getSingleResu.. 2024. 12. 23.
JPA - 고급 매핑 본 포스팅은 총 4편으로 구성되어 있습니다.2024.01.30 - [IT/오픈소스] - JPA - 기본 개념2024.12.23 - [IT/오픈소스] - JPA - 고급 매핑2024.12.23 - [IT/오픈소스] - JPA - 다양한 쿼리방법2024.12.24 - [IT/오픈소스] - JPA - 스프링 연동  다양한 연관관계 다대일(N : 1) - N이 주인단방향 양방향 모두 가능JPA에서 가장 많이 사용하고, 꼭 알아야 하는 다중성  일대다(1 : N) - 1이 주인단방향인 경우, 가능은 하나, 비효율특수한 상황이 아닌 경우, 다대일 매핑으로 바꾸어서 사용하는것을 적극 권장 - 단방향@Entitypublic class Member( @Id @GeneratedValue @Column(name = "MEM.. 2024. 12. 23.
리눅스 파일별, 디렉토리별 디스크 사용량 확인 리눅스에서 du -h로 디스크용량을 확인할때디스크가 풀에 가깝지만 어느파일이 어느정도 디스크를 사용하는지 알고 싶을때가 있다. 이런경우에, 해당명령어로 특정 디렉토리별 가장 큰 파일 20개를 쉽게 찾을 수 있다.find /home -type f -exec du -h {} + | sort -rh | head -n 20  추가로 디텍토리별 사용량 확인은 아래와 같다.(sudo 권한이 필요함)du -h --max-depth=1 /home | sort -h 2024. 11. 18.
Junit in Action 3판 정리 (1) 테스트케이스의 중요성은 말하지않아도 잘 알것이다. 예전에는 작성한 코드를 검증하는 것을 목적으로 테스트케이스를 작성하였지만, 요새는 TDD라고해서 테스트케이스를 먼저 작성하고 해당 테스트케이스가 통과하는 형식으로 차후에 코드를 작성하는 테스트주도개발이 많이들린다. 나 또한 개발자로서 테스트케이스를 작성하고는 있지만, 테스트케이스를 잘 알고 쓰기보다는 기존에 작성되어있는 코드를 복사하여 주먹구구식으로 작성했던 적이 많았다. 마침 사내에서 Junit in Action 3판을 주제로 스터디 기회가 생겨서 이번기회에 junit을 정리해보기로 했다.     1장. 밑바닥 부터 시작하기1장에서는 테스트를 사용해야하는 이유와 junit 설치 방법에 관해 설명한다. junit은 작성한 코드가 제대로 동작하는것을 알 수.. 2024. 10. 10.
Common DBCP 속성/옵션 이해하기 최근, 사이트로부터 오라클DB의 readTimeout이 적용되지않는다는 이슈를 받고 DataSource 생성소스를 분석했다.결과적으로 패치 미적용으로 인한 해프닝으로 일단락되었지만, DataSource를 생성할때 ip, port, sid같은 기본적인 속성들 이외에 maxWaitMillis, timeBetweenEvictionRunsMillis 같은 속성들은 어떤 의미를 지니는지 궁금하여 리서치하다가 좋은 글을 발견하여 이번기회에 정리해놓기로 했다.(참고로 readTimeout은 dbcp 라이브러리 고유설정이 아니며, JDBC 드라이버설정이다)    DBCP란?데이터베이스를 연결할때는 기본적으로 효율을 위하여 커넥션 풀을 사용한다. 커넥션을 한번 맺고 끊는건 꽤나 많은 비용이 소모되기에 매순간마다 커넥션을.. 2024. 10. 9.