전체 글

전체 글

    DTO, DAO에 대해서

    DTO란? Data Transfer Object 데이터 전송 객체 프로세스 간 데이터를 전달하는 객체 비즈니스 로직을 포함하지 않는다. 순수하게 전달하고 싶은 데이터만 포함된다. getter/setter 메소드만 가진다 DB에서 데이터를 받아 Service나 Controller로 보낸다. Entity를 DTO 형태로 변환하여 사용한다. Resopnse와 Request 모두 적용할 수 있다. 일종의 Wrapper라고 볼 수 있다. 가변적이다. DAO란? Data Access Object 실제로 DB에 접근하기 위한 객체 CRUD 기능을 수행한다. Service와 DB 사이의 연결 역할을 한다. 일반적으로 Repository package로 표현한다. 사실 거의 같다고 봐도 된다. Repository는 En..

    [토비의 스프링 3.1 Vol1] "2장 테스트" 정리

    2.1 UserDaoTest 다시보기 2.1.1 테스트의 유용성 내가 예상하고 의도했던 대로 코드가 정확히 동작하는지 확인하는 과정 테스트가 성공하면 모든 결함이 제거되었다는 의미 2.1.2 UserDaoTest의 특징 웹을 통한 DAO 테스트 방법의 문제점 웹 화면을 통해 값을 입력하고 기능을 수행하고 결과를 확인하는 방법이 가장 흔하다. 위 방법은 DAO에 대한 테스트로서는 단점이 너무 많다. DAO뿐만 아니라 서비스, 컨트롤러, 뷰 등 모든 레이어 기능을 만들고 나서 테스트가 가능하기 때문이다. 또한 테스트 중 문제가 생기더라도 범위가 광범위하여 원인을 알아내기 힘들다. 작은 단위의 테스트 테스트는 가능한 작은 단위로 쪼개어 집중해서 실행해야 한다. → “관심사의 분리”라는 원리가 여기에도 적용된다..

    [토비의 스프링 3.1 Vol1] 1장

    보호되어 있는 글입니다.

    [스프링부트와 JPA 활용 1] Section7. 웹 계층 개발

    홈 화면과 레이아웃 jpashop/src/main/java/jpabook/jpashop/controller/HomeController.java 생성 package jpabook.jpashop.controller; import lombok.extern.slf4j.Slf4j; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @Slf4j public class HomeController { @RequestMapping("/") public String home(){ log.info..

    [스프링부트와 JPA 활용 1] Section6. 주문 도메인 개발

    주문, 주문상품 엔티티 개발 구현 기능 상품 주문 주문 내역 조회 주문 취소 순서 주문 엔티티, 주문 상품 엔티티 개발 주문 리포지토리 개발 주문 서비스 개발 주문 검색 기능 개발 주문 기능 테스트 Order.java 수정 package jpabook.jpashop.domain; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @Entity @Table(name="orders") @Getter @Setter public class Order { @Id @GeneratedVal..

    [스프링부트와 JPA 활용 1] Section5 중 "상품 기능 테스트"

    김영한 강사님의 "스프링부트와 JPA 활용1"을 듣다 보면 Section 5에서 "상품 기능 테스트"를 생략하신 것을 볼 수 있다. 이 테스트가 이전에 강의에서 다룬 테스트와 유사하여 생략하였다고 하셨는데 복습겸 궁금하여 테스트 코드를 직접 작성하여 보였다. MemberServiceTest.java를 참고하여 작성하였고 //given, //when, //then 으로 나누어 작성하니 도움이 많이 되었다. 테스트한 기능은 상품 등록, 상품 목록 조회, 상품 조회이다. 파일 위치는 jpashop/src/test/java/jpabook/jpashop/service/ItemServiceTest.java 으로 지정하였다. package jpabook.jpashop.service; import jpabook.jpa..

    JPQL과 QueryDSL에 대해 끄적

    Intro JPA는 객체 중심적으로 코드를 작성할 수 있게 해주는데 그렇게 되면 JPA만으로는 모든 쿼리를 커버할 수 없다. 따라서 JPA는 객체를 검색(조회,select)할 수 있는 다양한 query 방법을 지원한다. JPQL JPA Criteria QueryDSL Native SQL 등등.. 이 포스팅에서는 주로 사용되는 JPQL과 QueryDSL에 대해 다루고자 한다. JPQL의 개념 Java Persistence Query Language JPQL은 엔티티 객체를 조회하는 객체지향 쿼리이다. JPQL은 가장 중요한 객체지향 쿼리 언어이다. JPA는 JPQL을 기반으로 하는 다양한 쿼리 서비스를 지원한다. JPA Criteria, QueryDSL, Natice SQL 등.. JPQL의 특징 SQL과..

    [Spring(Java)] 스프링으로 프로젝트 하는 방법 AtoZ

    보호되어 있는 글입니다.

    [CS][컴퓨터 네트워킹 하향식 접근] Chapter2.7 socket programming with UDP and TCP

    Chapter02. Application Layer Socket Programming Application과 Transport 사이에 있는 socket application process와 end-end-transport protocol 사이의 문 app 간의 통신이 가능하게 함 UDP unreliable datagram UDP에서 segment 생성 → IP로 보냄 Query 하는 애들은 씀 순서 변경은 안하지만 순서대로 도착 안할 수도 client와 server 사이에 미리 link 설정 X 데이터 보내기 전에 no handshaking 보내는 packet마다 도착지 주소가 적혀 있어야 함 (IP주소&Port번호) explicitly하게 = 서버만 data의 lost/receive 된 게 out of..

    [CS][컴퓨터 네트워킹 하향식 접근] Chapter2.6 video streaming and content distribution networks

    Chapter02. Application Layer Video Streaming and CDNs: context video streaming 앞으로 play하는 동안 뒤를 download하여 바로바로 보자는 취지 CDN content가 user 가까이에 있을수록 delay가 적어서 좋다 여기저기 cluster을 만들어 저장 문제점 scale → distributed 방식 쓰자 heterogeneity → 사용자 환경이 달라서 같은 content를 주기 어려우니 service option이 필요 해결책 : distributed 환경, application-level infrastructure Multimedia : video video : 접지 이미지를 빠르게 지나가게 하여 움직인다고 인식 digital ..