본문 바로가기

분류 전체보기290

2024.09.25(수) { IP 어드레스, 서브넷 마스크, 대칭 암호화, MAC 어드레스 } IP 어드레스  IP 주소는 크게 프라이빗(Private) IP 주소와 퍼블릭(Public) IP 주소 두 가지로 나눌 수 있습니다. 각각의 용도와 특징을 아래에서 설명하겠습니다.1. 프라이빗 IP 주소 (Private IP Address)정의: 프라이빗 IP 주소는 내부 네트워크(예: 가정, 사무실 등)에서만 사용되는 IP 주소입니다. 외부 인터넷에서는 이 주소를 사용할 수 없습니다.사용 범위: 주로 내부 네트워크에서 장치 간 통신에 사용되며, 인터넷에 접속하려면 퍼블릭 IP를 통해 외부 네트워크와 연결됩니다.범위: IANA(인터넷 할당 번호 관리기관)에서 지정한 프라이빗 IP 주소 대역은 다음과 같습니다:10.0.0.0 ~ 10.255.255.255172.16.0.0 ~ 172.31.255.25519.. 2024. 9. 25.
브로드캐스팅(Broadcasting), 멀티캐스팅(Multicasting), 유니캐스팅(Unicasting) 1. 브로드캐스팅 (Broadcasting)정의: 브로드캐스팅은 하나의 송신자가 네트워크 내 모든 장치에게 데이터를 전송하는 방식입니다.특징:네트워크에 연결된 모든 수신자에게 동일한 데이터를 전송합니다.각 장치는 브로드캐스트된 데이터를 수신할지 결정할 수 있습니다.네트워크에 있는 모든 장치가 동일한 데이터를 받기 때문에, 네트워크 트래픽이 증가할 수 있습니다.사용 사례: LAN(Local Area Network) 내에서 DHCP 서버가 IP 주소를 할당할 때, 브로드캐스팅을 통해 네트워크 내의 모든 장치에 IP 주소 요청을 보내는 방식.예시:라디오나 TV 방송처럼, 특정 방송국에서 신호를 송출하면 신호 범위 내의 모든 라디오나 TV가 신호를 수신할 수 있습니다.네트워크 브로드캐스트 주소(예: 192.16.. 2024. 9. 25.
N+1 문제 해결방법 N+1 문제를 해결하는 두 가지 대표적인 방법, 페치 조인(Fetch Join)과 배치 처리 1. 페치 조인(Fetch Join)페치 조인은 JPQL이나 Hibernate에서 사용하는 기법으로, 연관된 엔티티를 함께 조회하여 N+1 문제를 해결하는 방법입니다. 기본적으로 JPA는 연관된 엔티티를 조회할 때 지연 로딩(Lazy Loading)을 사용하여 필요할 때마다 쿼리를 추가로 발생시키는데, 이때 N+1 문제가 발생할 수 있습니다.페치 조인의 원리페치 조인을 사용하면 연관된 엔티티를 한 번에 조인하여 한 번의 쿼리로 조회할 수 있습니다. 즉, 지연 로딩 대신 즉시 로딩(Eager Loading)을 사용하여 연관된 데이터를 한 번에 가져오는 방식입니다.페치 조인 예시예를 들어, 회원과 팀(1:N 관계)이.. 2024. 9. 25.
2024.09.24(화) { 오프셋 기반 페이징의 문제점 } 오프셋 기반 페이징의 문제점오프셋 기반 페이징은 주로 다음과 같은 방식으로 이루어집니다:SELECT * FROM table_nameORDER BY column_nameLIMIT 20 OFFSET 100;이 방식은 조회할 데이터의 시작점을 OFFSET으로 지정하고, 한 페이지에 가져올 데이터 개수를 LIMIT으로 설정합니다. 하지만 오프셋 기반 페이징은 데이터 양이 많아질수록 비효율적입니다. 그 이유는 다음과 같습니다:많은 양의 데이터 스캔:오프셋 값이 클수록 데이터베이스는 불필요하게 많은 데이터를 읽어야 합니다. 예를 들어, OFFSET 1000인 경우, 데이터베이스는 처음 1000개의 데이터를 건너뛰기 위해 그만큼의 데이터를 읽고 버린 후에, 필요한 20개의 데이터를 가져옵니다. 이는 쿼리 성능에 부담.. 2024. 9. 24.
JPQL과 QueryDSL 1. JPQL (Java Persistence Query Language)JPQL은 JPA(Java Persistence API)에서 제공하는 객체 지향 쿼리 언어입니다. SQL과 유사하게 데이터베이스에서 데이터를 조회하고 조작할 수 있지만, JPQL은 데이터베이스 테이블이 아닌 엔티티 객체를 대상으로 작업합니다. 따라서 JPQL은 JPA 엔티티 객체의 속성이나 관계를 사용하여 쿼리를 작성하게 됩니다.JPQL의 특징:SQL과 유사: SQL처럼 SELECT, INSERT, UPDATE, DELETE 쿼리를 작성하지만, 데이터베이스 테이블 대신 JPA 엔티티 객체에 대해 쿼리를 실행합니다.데이터베이스 독립적: JPQL은 특정 데이터베이스에 종속되지 않으며, JPA 구현체가 데이터베이스에 맞는 SQL로 변환해.. 2024. 9. 24.
더티 체킹(Dirty Checking) ( 변경 감지 ) 더티 체킹(Dirty Checking)은 JPA(Java Persistence API)에서 사용되는 중요한 개념 중 하나로, 엔티티의 상태 변화를 자동으로 감지하여 데이터베이스와 동기화하는 기능을 의미합니다.더티 체킹 동작 방식:엔티티 조회: JPA를 통해 데이터베이스에서 엔티티를 조회하면, 해당 엔티티는 영속성 컨텍스트(Persistence Context)에 의해 관리됩니다.엔티티 수정: 애플리케이션 코드에서 조회한 엔티티의 필드를 변경하면, JPA는 특별한 명시적 업데이트 요청 없이도 자동으로 이 변화를 감지합니다.변경 감지: 트랜잭션이 끝나기 전에, JPA는 더티 체킹을 통해 관리 중인 엔티티들의 상태를 검사하고, 초기 상태와 비교하여 변경된 부분이 있는지 확인합니다.자동 업데이트: 만약 변경 사항.. 2024. 9. 23.