언어 29

JPA에서 즉시 로딩(EAGER)과 지연 로딩(LAZY)은 왜 중요할까?

💡 JPA에서 즉시 로딩(EAGER)과 지연 로딩(LAZY)은 왜 중요할까?우리가 JPA를 사용할 때 가장 자주 마주치는 개념 중 하나가 즉시 로딩(EAGER) 과 지연 로딩(LAZY) 이다.이 둘의 차이를 알지 못한 채 개발을 진행하면, 언젠가는 의도치 않은 N+1 문제를 만나게 된다.오늘은 이 두 개념의 차이를 이해하고, 언제 어떤 전략을 선택해야 할지에 대한 나의 생각을 정리해본다.🔍 즉시 로딩과 지연 로딩이란?JPA에서 연관 관계를 맺을 때, 하위 엔티티를 언제 로딩할지를 지정할 수 있다.기본적으로는 다음 두 가지 방식이 존재한다.java복사편집@OneToMany(fetch = FetchType.LAZY) private List orders; EAGER (즉시 로딩): 연관된 엔티티를 즉시 조..

언어 2025.06.13

2025년 6월 최신 React 트렌드

2025년 6월 최신 React 트렌드와 실무 꿀팁 5가지안녕하세요!2025년 6월 기준으로 React 개발자분들이 꼭 알아두셔야 할 최신 트렌드와 실무 팁을 정리해 보았습니다. 매년 진화하는 React 생태계 속에서 경쟁력을 유지하시려면 지금 소개해 드리는 내용을 꼭 숙지하시면 좋겠습니다.1. React 18과 Concurrent 모드 완전 정복React 18이 기본 스펙이 된 지금, Concurrent 모드는 사용자 경험 개선에 필수적인 기능입니다.startTransition과 useDeferredValue를 활용하여 부드러운 렌더링을 구현할 수 있습니다.UI가 멈추지 않고 자연스럽게 업데이트되어 사용자 만족도가 크게 올라갑니다.2. 서버 컴포넌트(Server Components) 적극 활용서버 컴포..

언어 2025.06.06

request.getRemoteAddr()로 정확한 IP 추출이 되지 않을 때..

아마 접근IP를 추출하기 위해 많이 쓰는 메소드로 request.getRemoteAddr()가 있을 것 이다. 근데 100% 정확한 ip 추출이 되지 않는 것을 최근 경험하여 검색하고 수정 한 것을 다른 사람들도 편하게 찾을 수 있게 남겨보려 한다. 우선 원인은 중간에 L4나 프록시 서버 등이 생기며 변조되는 문제였다. 내 업무지의 경우 클라우드로 나가면서 보안을 위해 여러 장비를 통해 web에 전달되다보니 발생하였다. (WAF -> LB -> WEB) 그래도 마냥 불가능하진 않다. 추가적인 header들이 생기면서 원래의 ip가 저장이 된다고 한다. 이걸 이용하여서 추출하여 사용하고 싶은곳에 사용 할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Str..

언어/JAVA 2023.05.11

data-hwpjson 제거해버리기

업무 중 오류 사항을 전달 받았고 특정 게시글들만 게시글 저장/수정시에 크롬이 죽어버리는 현상이 발생되었다. 확인해보니 hwpEditorBoardContent라는 id값을 가진 div와 함께 data-hwpjson 이라는 태그가 함께 딸려 들어온다 그러니 필요외의 본문 내용이 함께 저장되서 너무 느려진다. 그래서 저장전에 불필요한 내용은 지우고 넘겨서 저장하도록 바꿨더니 해결되었다. (이게 원초적 해결인지는 잘 모르겠...) 1 2 3 4 5 var ntt = jQuery("#p_ntt_cn").val(); if(ntt.indexOf("

언어/JavaScript 2023.01.10

Javscript - 데이터속성(data-xx) 관련하여

data-xx 개인적으로 필요에 따라 데이터를 hidden에 담아 숨겨두고 했는데 이번의 경우는 클릭 할 때 해당 태그에 할당된 값을 불러 와서 쓰려고 하다보니 찾게 되었고,본인은 a태그에 사용하였지만 다른 태그에도 사용이 가능합니다. var exam = document.getElementById("id"); //아래와 같이 사용하면 할당된 값을 가져와 출력합니다. console.log(exam.dataset.value); console.log(exam.dataset[value]); console.log(exam.dataset.id); console.log(exam.dataset[id]); //아래와 같이 사용하면 값의 변경도 가능합니다. exam.dataset.value = 2; exam.dataset..

언어/JavaScript 2022.12.22

a태그 javascript:void(); 에러 발생

a태그 기본 클릭을 막고 onclick을 잡아두는 과정에 a href = 'javascript:void();'로 작업하니 콘솔에 vm에러가 떠서 void(0)으로 변경해주니 콘솔에 에러 출력이 안되는 것을 확인했지만 둘의 차이점과 원인은 아직 모르겠는데 혹시나 나 같은 문제에 닥친 사람이 있을까봐 우선 작성해둡니다. void 연산자는 값을 생성하는 표현식을 평가해서 undefined를 반환합니다. 오직 undefined 원시값을 얻기 위해선 void 0 또는 void(0) 처럼만 사용해야 원하는 기댓값을 얻어 낼 수 있습니다. 출처 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/void

언어/JavaScript 2022.12.14

에라토스테네스의 체

소수를 찾는 대표적인 방법중 하나 " k=2 부터 √N 이하까지 반복하여 자연수들 중 k를 제외한 k의 배수들을 제외시킨다" 최근에 알고리즘을 기초부터 다시 공부하다가 알게되었다. public class Eratos { public static void main(String[] args) { // ArrayList로 구현 ArrayList primeList; // 사용자로부터의 콘솔 입력 Scanner scan = new Scanner(System.in); int n = scan.nextInt(); // n

언어/JAVA 2022.11.15

배열 복사 : clone() 과 arraycopy()

배열 A = 배열 B 의 형식으로 복사를 하면 주소값을 복사하는 형식이라 한쪽을 수정하면 다른 한쪽에서도 변경되버림 그래서 clone()과 arraycopy()를 찾아보았고 clone()은 원본과는 별개의 주소값의 배열을 만드는 것이고 arraycopy()는 배열 A = 배열 B와 같은 결과지만 속도는 겁나 빠르단다(본인은 한번도 안써봄) 덤으로, 주소값만 복사하는 걸 shallow clone, 내용물을 복사하여 별개의 객체를 만드는 것을 deep clone이라고 합다.

언어/JAVA 2022.11.09
728x90
반응형