본문 바로가기

분류 전체보기42

[JPA] JPA 프록시 JPA 프록시 다음과 같이 Team 엔티티와 Member엔티티가 1:N 연관관계에 있다고 생각해보자. 위와 같이 Member 엔티티에는 Team이라는 타입의 필드 값이 존재하게 된다면, Member 엔티티를 조회할 때마다 매핑된 Team에 대한 정보도 같이 조회될 것이다. 즉, 관계된 모든 테이블에 쿼리가 발생하고 연관관계가 많아지면 상상할 수 도 없을 만큼의 select 쿼리가 발생하게 될 것이다. 추가로 Member 객체를 조회했지만 당장 Team에 대한 정보를 필요로 하지 않는 경우도 있을 것이다. 이때도 Team에 대한 쿼리가 발생하는데, JPA는 프록시 개념을 이용해 쿼리가 발생하지 않도록 처리한다. EntityManager의 getReference(class, Object)라는 메소드를 호출하.. 2021. 3. 22.
[JPA] 양방향 연관관계에서의 주의할 점( N:1 ) JPA의 연관관계 문제점 JPA의 영속성 컨텍스트는 데이터베이스를 객체 관점으로 관리하기 위해 만들어졌지만, 태생적인 차이로 문제점이 생기곤 하는데, 이번에는 연관관계 설정시 주의할 점을 알아보자 [데이터베이스 관점] [객체 관점] JPA를 사용하게되면 객체와 DB의 연관관계 방식의 불일치로 문제점이 생기게 된다. // ----------테스트 코드 ------------// Team team1 = new Team(); Team team2 = new Team(); team1.setName("team1"); team2.setName("team2"); teamRepository.save(team1); teamRepository.save(team2); Member member1 = new Member(); M.. 2021. 3. 19.
[JPA] JPA의 영속성 관리 (JPA 영속성 컨텍스트) 이번에는 JPA 영속성 컨텍스트, 엔티티의 라이프 사이클, 영속성 컨텍스트가 엔티티 매니저에 의해 어떻게 관리되는지 알아봅시다! 1. 엔티티 매니저 팩토리 & 엔티티 매니저 //JpaMain.java 중 일부 //엔티티 매니저 팩토리 생성 EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook"); EntityManager em = emf.createEntityManager(); //엔티티 매니저 생성 EntityTransaction tx = em.getTransaction(); //트랜잭션 기능 획득 엔티티 매니저 팩토리는 하나를 공용으로 쓰고 엔티티 매니저를 생성한다. 엔티티 매니저는 DB와 상호작용 하는 역할을 한다. 엔.. 2021. 3. 16.
[MSA] MSA 학습하면서.. MSA 학습배경 2020년 하반기 이곳저곳 서류를 쓰면서 우대사항에 MSA에 대한 이해가 있으신 분 혹은 MSA기반 수행 프로젝트 경험이라는 문구를 보고 MSA가 어떤 구조인지 궁금해졌고, 면접 준비 겸 cs공부를 하면서 서비스를 작은단위로 나누어 관리하는 것이라고는 알고있었지만, 어떤 기술들이 사용되고, 어떤 구조로 되어있는지는 잘 알지 못했다. 그렇게 하반기 공채시즌이 끝나고 새로 프로젝트를 시작하려는데 뚜렷한 목표를 잡아야 그것을 성취하기위해 더 열심히 진행할 것만 같았고, 무작정 서점으로가 MSA 관련한 서적을 보던중 Spring을 이용해서 MSA를 구축하는 내용의 서적이 눈에 들어왔고, 그 책은 Spring cloud와 Nexfilx 오픈소스를 이용해서 MSA를 구축하는 내용을 담고 있었기에 지.. 2021. 3. 5.
IT 인프라 란?( 인프라 구성요소, IT인프라 유형 ) 인프라란 ? - 기반 시설/설계 - IT 인프라는 시스템 구조 및 시스템 체계 IT 인프라의 구성요소 하드웨어 운영체제 네트워크 미들웨어 하드웨어 ( HW ) 데이터 저장을 위한 스토리지, 전원장치이다. 하드웨어라고 하면 CPU가 가장 먼저 떠오르는데 CPU 성능은 코어와 캐시에 영향을 받는다. 코어는 일하는 사람의 수, 캐시는 이전에 연산한 내용을 기억할 수 있는 양이라고 생각하면 이해가 쉬울 것 같다. 운영체제 ( OS ) 컴퓨터의 HW, SW를 제어하여, 컴퓨터를 사용할 수 있게 해주는 프로그램. ( Ex) 리눅스, 윈도우 ) OS는 시스템 리소스 관리, 하드웨어와 어플리케이션 사이의 모든 소프트웨어와 작업을 수행하는 리소스를 연결한다.쉽게 말해 컴퓨터 매니저같은 역할이다. 네트워크 ( Networ.. 2021. 3. 5.
[MSA] Micro Service Architecture(MSA) 란 ? 마이크로 서비스란? 마이크로서비스는 애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스 지향 아키텍처 스타일의 일종인 소프트웨어 개발 기법이다. 위키백과에 마이크로 서비스를 검색하면 위와 같이 설명한다. (무슨소리인지 잘 모르겠다..) 마이크로 서비스가 발전하기 전 대부분의 웹 어플리케이션들은 모놀리식 아키텍처 형태로 개발되었는데, 이는 단 하나의 산출물로 패키징하여 배포하는 방식이었다. 어플리케이션이 크고 복잡해지면 각 팀의 의사소통과 조정비용이 크게 증가하고, 각 팀에서 변경이 있을 때 마다 어플리케이션 전체를 빌드/테스트해서 배포해야하는 문제점이 발생하게 된다. (배포가 얼마나 번거로운 일인지 느꼈었다. Jenkins연동 전 까지는...) 이러한 문제점을 해결하기위해 착안된 것이 마이.. 2021. 2. 25.
728x90