전체 글
[네트워크] 유니캐스트 / 브로드캐스트 / 멀티캐스트 / 애니캐스
맥주소(MAC address) 네트워크 상에서 서로를 구분하기 위하여 Device마다 할당된 물리적 주소를 말한다. 인터넷이 가능한 장비(PC, 휴대폰 등)들이 가지고 있는 물리적인 주소라고 생각하면 된다. MAC주소는 12자리 숫자로 구성되어 있으며 숫자중 앞의 6자리(24bit)는 벤더(제품제조사)에 할당되며 나머지 6자리(24bit)는 각 벤더의 제품에 할당한다. 컴퓨터에 장착되 랜(LAN)카드를 구별하기 위해 만들어진 식별 번호이다.(소프트웨어 대신 하드웨어에 연결되어 있기 때문에 실제 주소라고도 한다.) 통신을 위해서는 MAC주소를 알아야 한다. IP주소로 MAC주소를 알기 위해서는 IP주소를 MAC으로 바꾸는 ARP(Address Resolution Protocol)과정이 필요하다. 유니캐스트..
0. 프로젝트 환경설정 & 예제 도메인 모델
프로젝트 생성 InetelliJ-Ultimate Ver 이라면 new Project로 SpringBoot start를 해주면 되고, 그게 아니라면 아래 링크를 통해 프로젝트를 생성 다운로드해준다. → https://start.spring.io/ 사용 기능: Spring Web, JPA, h2, lombok SpringBootVersion: 2.7.16 groupId: study artifactId: querydsl Querydsl 스프링 부트 3.0 설정은 다음을 참고 QueryDsl SpringBoot 3.0의 gradle 설정을 공유합니다. - 인프런 | 고민있어요 최근 스프링부트 3.0이 나옴에 따라 QueryDSL 설정 내용을 공유합니다.아래 설정 내용중 Querydsl 추가 라고 나온 부분만 추..
6. 나머지 기능들
나머지 기능들이라고 한 이유는 복잡도에 비해 실무에서 사용되기 애매하기 때문이다. 그리고 Specifications, Query By Example은 실무에서 거의 사용되지 않고 QueryDSL로 대체되기 때문에 가볍게 읽고 넘어가자. Specifications (명세) 책 도메인 주도 설계(Domain Driven Design)는 SPECIFICATION(명세)라는 개념을 소개 스프링 데이터 JPA는 JPA Criteria를 활용해서 이 개념을 사용할 수 있도록 지원 그러나 JPA Criteria는 가독성 및 사용법에 있어서 너무 극악이기 때문에 가볍게 읽고 넘어가자. 술어(predicate) 참 또는 거짓으로 평가 AND OR 같은 연산자로 조합해서 다양한 검색조건을 쉽게 생성(컴포지트 패턴) 예) ..
5. 스프링 데이터 JPA 구현체 분석
스프링 데이터 JPA 구현체 분석 스프링 데이터 JPA가 제공하는 공통 인터페이스의 구현체 org.springframework.data.jpa.repository.support.SimpleJpaRepository SimpleJpaRepository @Repository @Transactional(readOnly = true) public class SimpleJpaRepository ...{ @Transactional public S save(S entity) { if (entityInformation.isNew(entity)) { em.persist(entity); return entity; } else { return em.merge(entity); } } ... } @Repository 적용 Spr..
4. 확장 기능
사용자 정의 리포지토리 구현 스프링 데이터 JPA 리포지토리는 인터페이스만 정의하고 구현체는 스프링이 자동 생성해준다. 그렇다고 스프링 데이터 JPA가 제공하는 인터페이스를 모두 구현하는 것은 불가능에 가깝다. 다양한 이유로 인터페이스의 메서드를 직접 구현하고 싶다면 어떻게 해야할까? JPA 직접 사용( EntityManager ) 스프링 JDBC Template 사용 MyBatis 사용 데이터베이스 커넥션 직접 사용 등등... Querydsl 사용 사용자 정의 인터페이스 public interface MemberRepositoryCustom { List findMemberCustom(); } 사용자 정의 인터페이스 구현 클래스 @RequiredArgsConstructor public class Memb..