본문 바로가기

Back-end28

[리눅스 마스터2] 리눅스 배포판에 따른 패키지 관리 툴(dpkg, apt, rpm, yum 등) 리눅스에서는 배포판에 따라 서로 다른 패키지 관리자를 제공한다. 우분투로 대표되는 데비안 계열의 리눅스 배포판의 경우에는 dpkg와 apt-get이라는 패키지 관리자를 제공하며 Centos로 대표되는 레드햇 계열의 리눅스 배포판의 경우에는 rpm과 yum을 제공한다. 또한 자주 사용되지 않는 리눅스 배포인 Suse의 경우에는 YaST와 zypper를 제공한다. 공부를 하며 왜 두 개씩 제공을 할까 하는 의문이 있었고 이를 찾아보다가 정답을 얻어 포스팅을 한다. 일단 패키지 관리자는 오프라인 패키지 관리자와 온라인 패키지 관리자로 나뉜다. 구분 데비안 레드햇 수세 오프라인 dpkg rpm YaST 온라인 apt-get yum zypper 오프라인 패키지 관리자는 패키지 설치 명령이 들어오면 로컬 저장소에서.. 2023. 3. 8.
[리눅스마스터 2급] LVM(Logical Volume Manger) LVM (Logical Volume Manager)은 리눅스에서 많이 사용되는 스토리지 관리 도구입니다. LVM을 사용하면 물리적인 디스크를 논리적인 디스크로 나누어 사용할 수 있고, 필요에 따라 유연하게 관리할 수 있습니다. LVM을 사용하는 것은 간단합니다. 먼저, 물리적인 디스크를 Physical Volume (PV)로 설정하고, 이를 Volume Group (VG)로 묶은 후에, 이 VG 안에서 Logical Volume (LV)를 생성하여 파일 시스템을 생성합니다. LVM에서 사용하는 용어는 다음과 같습니다. PE (Physical Extent) : 물리적인 디스크를 일정한 크기의 블록으로 나누어 분할한 공간입니다. 보통 4MB로 설정되어 있습니다. 이 PE를 이용하여 물리적인 디스크 공간을 논.. 2023. 3. 7.
[SpringBoot-JPA활용] 최적화된 조회를 위한 전략 엔티티 조회 방식으로 우선 접근 (jpql from절에 엔티티 작성) 페치조인으로 쿼리 수를 최적화 컬렉션 최적화 페이징 필요하면 @BatchSize로 최적화 페이징 필요하지 않다면 fetch join으로 한방쿼리 사용 엔티티 조회 방식으로 해결이 안되면 DTO 조회 방식을 사용 (jpql select절에 가져올 데이터들의 프로퍼티를 가진 DTO 작성) DTO 조회 방식으로도 안되면 Native SQL 또는 스프링 JdbcTemplate 활용 2023. 3. 6.
[SpringBoot-JPA활용] 변경 감지와 병합(merge) JPA에서 영속성 컨텍스트에서 관리하는 엔티티의 경우 EntityManger의 flush 메소드가 발생하는 시점에 변경감지(dirty checking)를 통해 엔티티의 값에 변화가 있는 경우 update 쿼리를 날려 DB에 적용해준다. 하지만 준영속 엔티티의 경우 영속성 컨텍스트 안에 위치한 것이 아니기 때문에 변경감지 대상에서 빠진다. 준영속 엔티티 - EntityManager의 persist를 통해 한번 JPA를 탔던 엔티티로 식별값을 가진 엔티티이지만 실제 영속성 컨텍스트에는 들어가 있는 않은 엔티티 ex ) 상품 수정을 위해 프론트 단에서 넘어온 데이터로 만들어진 객체(상품 수정을 위해 식별 값을 가지고 있음) 그렇다면 준영속 엔티티를 수정하는 방법에는 뭐가 있을까? 첫번째로 병합(merge) 기.. 2023. 3. 3.