본문 바로가기

전체 글58

[리눅스마스터 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.
[SpringBoot-JPA 활용] 도메인 모델 패턴 vs 트랜잭션 스크립트 패턴 지금까지 보통 웹개발을 하면서 서비스 레이어에서 대부분의 비즈니스 로직을 처리 했던 기억 밖에 없었는데, 이번에 JPA 강의를 들으면서 한가지 새로 배운 개념이 있어서 정리해보려 한다. 바로 도메인 모델 패턴이라는 것인데 해당 패턴에서는 복잡한 비즈니스 로직을 서비스에서 처리하는 것이 아닌 도메인 즉, 엔티티에 작성을 하고 서비스는 로직 수행을 엔티티에 위임하는 방식으로 설계하는 방법이다. JPA 등의 ORM을 사용할 때 유지보수 측면에서 더욱 유용한 패턴이라고 하는데, 처음 접했을 때는 상당히 낯설어서 적응하려면 시간이 조금 걸릴 것 같다. 강의에서는 주문을 수행하는 엔티티에 비즈니스 로직과 조회 로직 등이 들어갔는데, 이러한 복잡한 로직을 엔티티에 작성하는 이유는 엔티티가 각 데이터를 가지고 있는 엔.. 2023. 3. 2.
[리눅스마스터 2급] RAID RAID는 Redundant Array of Independent Disks의 약자로, 여러 개의 하드디스크를 묶어서 하나의 논리적인 저장장치로 사용하는 기술이다. RAID를 사용하면 데이터를 안전하게 보관할 수 있고, 더 나은 성능을 얻을 수 있다. RAID는 크게 소프트웨어 RAID와 하드웨어 RAID로 나눌 수 있다. 소프트웨어 RAID는 운영체제에서 제공하는 소프트웨어를 이용해서 RAID를 구성하는 방식이고 하드웨어 RAID는 별도의 RAID 컨트롤러를 이용해서 RAID를 구성하는 방식이다. RAID는 다양한 방식으로 구성될 수 있다. 그 중에서도 가장 대표적인 방식은 다음과 같다. (시험에 자주 나오는 방식) RAID 0 (Stripe) RAID 0은 두 개 이상의 디스크에 데이터를 나누어 저장.. 2023. 2. 28.
[리눅스마스터2] ip와 서브넷마스크 리눅스 마스터2 문제를 풀다보면 네트워크 관련 지식을 많이 요하는 것 같다. 그 중 기본이라 할 수 있는 ip와 서브넷마스크에 대해서 정리하려 한다. 우리가 인터넷에 접속하여 사용하는 ip는 보통 isp(인터넷 서비스 공급자) 업체에서 공인ip를 받아 사용하는 사설ip이다. isp -> 공유기(라우터) -> 내 pc 이런 형태로 ip주소가 뿌려진다고 보면 될 것 같다. 그래서 서로 다른 네트워크상에 있다면 ip주소가 같은 경우도 발생할 수 있다. 사용중인 pc의 ip 주소를 보면 대부분 아래 3개의 주소대역에 속해 있을 것이다. (지금 글을 쓰고 있는 필자의 ip 주소는 클래스 B 내에 속해 있다.) 기본적으로 클래스별 IP 대역은 다음과 같다. 클래스 A: 10.0.0.0 ~ 10.255.255.255.. 2023. 2. 27.