Web

    검증 - 직접구현부터 Spring Validation 까지

    오류 발생시 기본적으로 : 오류처리해야 하는 필드의 태그에는 class="field-error"를 붙인다 controller에서 폼에 빈 객체를 넘긴다.(Member) 이유는 여러가지가 있겠지만, 검증 실패시 이것을 재사용 할 수 있기 때문 검증에 실패하면 다시 입력 폼으로 보낸다. 1. 직접 처리 오류메시지가 하나라도 있으면 model에 Map(errors)를 담고 입력폼으로 보냄 StringUtils를 사용해서 if문으로 하나하나 조건을 달고 에러메시지를 담아줌. 필드에러: errors에 오류가 발생한 필드명(key), 오류(value) 저장 th:classappend="${errors?.containsKey('필드명')}?'field-error' : _" field-error라는 클래스 정보를 더해..

    spring-boot-devtools

    spring-boot-devtools

    공식문서: https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.devtools 제공하는 기능: Hot Swapping (정적 리소스가 변경되어도 서버 재시작 없이 반영) H2 Console 자동 활성화 등등... Gradle 사용 시 build.gradle 설정 : developmentOnly("org.springframework.boot:spring-boot-devtools") applicatoin.propeties 설정 : spring.thymeleaf.cache=false spring.devtools.remote.restart.enabled=true 타임리프 사용 중이므로 윗 줄도 들어갔습니다. Intelli..

    Controller와 Service 계층 간의 데이터 전달

    학부때 했던 프로젝트를 리팩토링 하던 중에 의문이 생겼다. Spring MVC 패턴에서 계층 간 데이터 전달은 DTO로 한다고 배웠다. Controller-(DTO)-Service-(DTO)-Repository(DAO)-(Entity)-DB 그런데 강의에서 배웠던 코드에서 Service 로직은 Entity를 반환한다. 문제는 이 Entity를 DTO로 변환하여 Controller에 전달해야 하는건지, 아니면 같은 DTO로 주고 받아야 하는 게 더 편한 것 같은데 위험할 것 같기도 하다(찾아보니 실제로 위험하다). 그렇다면 전달용 DTO를 각각 따로 만들어야하나? 도대체 해결책이 뭘까 싶어서 구글링을 했더니 이미 훌륭하신 분들이 열심히 포스팅한 글이 있었다! 그것들을 참고하여 정리해보았다. 1. DTO를 ..

    DAO, DTO, VO, Repository, 뭐가 다른걸까?

    DAO, DTO, VO, Repository, 뭐가 다른걸까?

    Entity doamin 패키지 DB 테이블과 1:1로 매핑되는 객체 데이터베이스 테이블내에 존재하는 컬럼만을 속성으로 가진다 도메인 로직(속성 변경)만을 가지고 있어야 하고 서비스 로직은 가지고 있으면 안된다. DAO(Data Access Object) repository 패키지 DB의 데이터에 접근하기 위한 객체. 삽입, 삭제, 조회 등의 기능 수행 JPA에서의 Repository의 기능과 동일한 역할 DTO(Data Transfer Object) dto 패키지 각 계층간(Controller, View, Business Layer(Model)) 데이터 교환을 위한 객체 로직을 가지지 않는 데이터 객체. Getter와 Setter 메서드만 가진 클래스 유효성 체크 애노테이션 사용하면 편리 https:/..

    [Inflearn] JPA - 값 타입(작성전)

    김영한 강사님의 '자바 ORM 표준 JPA 프로그래밍-기본편' 강의 정리 2022.03.17~03.31 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요.

    [Inflearn] JPA - 객체지향 쿼리 언어

    [Inflearn] JPA - 객체지향 쿼리 언어

    김영한 강사님의 '자바 ORM 표준 JPA 프로그래밍-기본편' 강의 정리 2022.03.17~03.31 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. JPA는 다양한 쿼리 방법을 지원한다. 대부분은 JPQL로 해결이 되나, 안될 때 다른 것들을 쓰면 된다. 1. JPQL (표준문법)★ JPA는 엔티티 객체를 대상으로 검색(DB에서 전부 끌어온 다음 검색한다는 뜻) → 생산성↓, DB종속적 필요한 데이터만 DB에서 불러오려면 검색 조건이 포함된 SQL이 필요 : JPQL (DB종속적X) 특징 JPQL은 엔티티 객체를 대상으로 작동하는 객체지향 쿼리언어 SQL과 문법 유사, SELECT, FROM, WHERE, GROUP BY, HAV..