본문 바로가기

java39

DTO/ DAO/ VO의 개념 정리 DTO/DAO/VO는 모두 객체, 즉 클래스이다. MVC와 비슷한 개념이 많아 햇갈려서 이해하는데 시간이 좀 걸렸다. 둘 모두 프로그램 설계와 관련된 개념이나 차이점이 존재한다. 기본개념 1.DTO(Data Transfer Object) 이름을 직역하면 데이터 변환 오브젝트로, 실제로 이름 그대로의 역할을 수행한다. 이에 대해 검색해보면 대부분 "각 계층간 데이터 교환을 위한 객체"라는 설명과 레이어 계층 사진을 넣고 설명을 끝낸다. 그러나 나는 최대한 이해하기 쉽게 정리하려고 한다. 때문에 개념을 완벽하게 이해하는데 있어 약간의 미흡함이 존재할지는 모르나, 무슨 역할을 하는 객체인지는 이해할수 있을 것이다. DTO란 쉽게 이해하자면 DB에서 가져온 데이터 중, 필요한 정보만 빼온 객체를 따로 만든 것이.. 2023. 1. 29.
스프링부트: Junit을 이용해 테스트 하기 Test란? 개인이 간단하게 어떤 서비스를 구현한다고 하면 코드는 길어봐야 수천줄 정도 나오겠지만, 회사의 서비스는 만줄은 우습게 넘어갈 정도로 방대한 양의 코드가 동작한다. 헌데 긴 코드에 무턱대고 새로운 코드를 끼워넣으면, 그 코드가 어떻게 작동하는지 확인하기 위해 재실행하는데 리소스가 많이 들 뿐만 아니라, 오류가 발생할 경우 원인이 무엇인지 찾기도 어려워진다. 이런 일을 방지하기 위해 프로그램을 작은 단위로 쪼개서 옳바르게 동작하는지 미리 확인하는 것이 바로 Test다. 과거에는 개발자들이 직접 테스트 환경을 만들어야 했으나, 테스트를 필요로하는 개발자들이 늘어남에 따라 스프링부트에서는 테스트 환경이 내장되어 있기에 따로 할일은 없다. 방법(인텔리제이에서 만드는 방법) 1. 테스트하고 싶은 클래스.. 2023. 1. 27.
JPA 사용법(2) -- JPQL JPQL이란? SQL을 자바에서 사용할수 있게끔 변환된 SQL. JPA는 테이블이 아닌 엔티티 객체를 중심으로 개발하기 때문에 쿼리문을 사용하지 않는다. 그러나 어찌되었건 특정 데이터를 검색하기 위해서는 쿼리문의 역할을 해줄 것이 필요한데, JPA에서는 이를 위해 JPQL을 제공한다. JPQL은 객체를 대상으로, SQL은 테이블을 대상으로 쿼리한다는 것이 차이점이다. 특징 1. 엔티티와 속성은 대소문자를 구분하지만, 키워드는 구분하지 않는다. 예) select m from Member as m where m.age > 18 SELECT m FROM Member as m WHERE m.age > 18 둘 모두 동일하게 작동한다. 2. 테이블이 아닌 엔티티 객체 이름을 사용하며, 마찬가지로 컬럼이 아닌 필드.. 2023. 1. 26.
JPA 사용법(1) -- JPA 사용법 JPA란? 자바와 관계지향 데이터베이스간의 언어적인 차이를 해소시키기 위한 api. 관계지향적인 DB를 객체지향적으로 해석해주며, 객체지향적인 JAVA를 관계지향적으로 변환해주는 일종의 번역기 역할을 한다고 생각하면 된다. JDBC와의 차이 JDBC는 데이터베이스와 소통하기 위한 api이고, JPA는 소통하는 관계지향적 db를 객체지향적으로 바꾸는 api로 기술적인 개념이라고 봐야한다. 형식(이미 db에 만들어진 테이블이 있다고 가정하겠다) 1. 테이블과 1:1대응될 테이블과 이름이 같은 Entity클래스를 하나 만든다. package com.study.springboot; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lo.. 2023. 1. 26.