본문 바로가기

java

(4)
JPA N+1 문제 해결 방법 및 실무 적용 팁 - 삽질중인 개발자 - JPA N+1 문제 및 해결 방법 - JPA를 사용하다 보면 의도하지 않았지만 여러 번의 select 문이 순식간에 여러 개가 나가는 현상을 본 적이 있을 것이다. 이러한 현상을 N+1문제라고 부른다. 해당 포스트에서는 N+1 문제가 왜 발생하게 되는지와 해결 방법 및 실무에서 어떤 식으로 적용을 해야 하는지에 대하여 설명을 할 것이다. N+1 문제란? 연관 관계가 설정된 엔티티를 조회할 경우에 조회된 데이터 갯수(n) 만큼 연관관계의 조회 쿼리가 추가로 발생하여 데이터를 읽어오는 현상 현상 재현 DB 구조는 유저(USER)는 한개의 팀(TEAM)에만 속할 수 있고 팀(TEAM) 하나는 여러 명의 유저(USER)가 가입할 수 있다. 테스트 데이터로는 4개의 팀당 유저 4명씩 총 20명의 유저를 추가했..
커넥션 풀(Connection pool)이란? 커넥션 풀(Connection Pool)이란? WAS(웹 컨테이너)가 실행 될 때 DB연결을 위해 미리 일정수의 connection 객체를 만들어 Pool에 담아 뒀다가 사용자의 요청이 발생하면 Pool에서 생성되어 있는 Connection 객체를 넘겨주고 사용자가 사용이 끝나면 Connection 객체를 다시 Pool에 반환하여 보관하는 기법이다. 커넥션 풀 동작 과정 1. 사용자가 DB를 사용하기 위하여 Connection을 요청한다. 2. Connection Pool에서 사용되지 않고 있는 Connection 객체를 제공한다. 3. 사용자가 Connection 객체를 사용 완료하면 pool로 반환한다. 웹 어플리케이션에서 커넥션 풀을 사용해서 얻는 이점 1. 서버의 부하를 줄여준다. 웹 어플리케이션..
java Error, Checked Exception, Unchecked Exception - 삽질중인 개발자 개발을 하다 보면 예외를 처리해야 하는 상황이 아주 많이 발생한다. 이때 예외에 대해서 정확히 알고 있어야 좋은 코드를 짤 수 있기에 예외에 대한 포스팅을 한다. 에러(Error) vs 예외(Exception) 우선 자바에서 예외는 크게 Error와 Exception으로 나뉜다. Error란 시스템 레벨에서 발생하는 심각한 수준의 오류를 뜻하며 개발자가 미리 예측하여 처리할 수 없기에 개발 시 예외 처리에 신경 쓰지 않아도 되는 부분이다. Exception이란 로직 상에서 발생하는 오류로 개발자 구현한 코드에서 발생하여 예외를 예측할 수 있으며 상황에 맞게 처리할 수 있다. 예외 클래스 구조 이러한 예외 클래스들은 최상위 클래스인 Object를 상속받은 Throwable이라는 클래스를 기반으로 Error..
Java 문자열 비교 equals, == 차이점 - 삽질중인 개발자 보호되어 있는 글입니다.