본문 바로가기
반응형

Framework & Lib28

jpa 연관관계 EAGER와 LAZY(etc, 실제 겪은 문제들) jpa는 기본적으로 하나의 엔티티를 가져올 때, 연관관계에 있는 엔티티를 모두 가져온다. 사용하지 않는 엔티티까지 모두 가져오는 것은 굉장한 손해이다. 물론, jpa가 mybatis에 비해 쿼리 재사용성이 높으니 이 정도 손해는 감수해도 되지 않나(?) 라고 생각할 수도 있지만 그럼에도 불구하고 사용하지 않는 엔티티를 가져오는것은 누가 생각하더라도 손해이다. 이러한 손해를 해결해줄 수 있는 방법이 바로 "지연로딩 LAZY"이다. 이를 알아보기 전에 먼저 알고 있으면 도움이 되는 개념이 "프록시" 이다. 내가 알고 있는 프록시라는 개념은 서로 다른 서버의 연결이나 데이터 전달을 해주는 매개체 정도로 알고 있다. 하나의 웹어플리케이션을 본다면 web서버와 was서버를 연결하는 프록시, was서버와 db를 연.. 2022. 6. 26.
jpa 영속성 컨텍스트 개념 영속성 컨텍스트 영속성 컨텍스트란 jpa에서 엔티티를 db에 반영하기 전에 영속화하는 공간이다. 대체적으로 영속성 컨텍스트를 엔티티를 영구 저장하는 공간이라고 하는데 이는 물리적인 개념이 아니라 논리적인 개념으로 실제 영속성 컨텍스트에서 db에 존재하는 모든 엔티티를 저장하는게 아닌 필요할 때마다 가져와서 영속성 컨텍스트에서 사용하므로 논리적으로는 영구 저장되는 공간이라고 하는 것 같다. (실제 물리적으로는 트랜잭션 단위의 휘발성 메모리공간) 서버단에 존재하는 가상의 DB역할을 하는 일종의 메모리 공간이며 엔티티의 변화를 감지하여 DB에 반영전 객체로 우선적으로 작업하는 공간이라고 생각하면 될 것 같습니다. 영속성 컨텍스트의 구조를 보면 위와 같이 영속성 컨텍스트는 EntityManger 안에 존재하며 .. 2022. 6. 12.
리액트 스프링부트 연동[1](라우터 설정 및 서버정보 리턴 받기) 안녕하세요. 오늘은 리액트(웹서버)와 스프링부트(was)를 연동해보겠습니다. 제가 그동안 관리해오던 어플리케이션은 was와 web서버를 구분하지 않고 was가 동적컨텐츠와 정적컨텐츠(html,css,script)를 모두 제공해주는 어플리케이션이었습니다. 이러한 형태는 was에서 모든 자원을 관리하여 was의 부하가 많은 구조입니다. web서버와 was를 분리하여 web서버에서 정적 컨텐츠를 처리하게 하고 was에서는 동적컨텐츠만 처리하게 한다면 상대적으로 많은 처리와 DB접근까지 해야하는 was의 부하를 어느정도 줄여줄 수 있습니다. 저 또한 이러한 부분 때문에 웹서버와 was를 별도로 분리하여 구성될 수 있는 프로젝트를 만들어 볼까 합니다. 프론트엔드 라이브러리로 가장 많이 사용되는 리액트와 스프링 부.. 2021. 12. 23.
웹에디터 게시판 써머노트 스프링 웹서버에 이미지 첨부하기 안녕하세요. 오늘은 스프링 웹서버에서 써머노트 이미지 첨부를 해보겠습니다. 단순한 이미지 첨부가 아니라 웹에디터 형식의 게시판 써머노트는 ajax를 통한 이미지 첨부를 하게 되는데요. 써머노트에서 제공하는 callback함수를 통해 이를 사용할 수 있습니다. 아래 자바스크립트 코드를 보면 callbacks로 콜백 함수 설정이 있고 onImageUpload라는 키값이 있습니다. 이는 써머노트에서 이미지가 첨부됬음을 감지하여 실행할 함수를 설정할 수 있는데요. 저는 sendFile()이라는 함수를 만들어 설정했습니다. $('.summernote').summernote({ height : 400, lang: "ko-KR", minHeight : null, maxHeight : null, focus : true.. 2021. 6. 20.
반응형