목록2023/10 (24)
나의 개발일지
10 유효성 검사와 예외처리 유효성 검사 / 데이터 검증 : 비즈니스 로직이 올바르게 동작하기 위해 데이터를 사전 검증하는 작업 10.1 일반적인 애플리케이션 유효성 검사의 문제점 일반적으로 사용되는 데이터 검증 로직의 문제점 : 1. 계층별로 진행하는 유효성 검사는 검증 로직이 각 클래스 별로 분산되어 있어 관리가 어려움. 2. 검증로직에 중복이 많아 여러 곳에 유사한 기능의 코드가 존재할 수 있음. 3. 검증해야 할 값이 많으면 검증하는 코드가 길어져 가독성이 떨어짐. => Bean Validation이라는 데이터 유효성 검사 프레임워크로 위의 문제들을 해결. Bean Validation은 어노테이션을 통해 다양한 데이터를 검증하는 기능을 제공. - 유효성 검사를 위한 로직을 DTO같은 도메인 모델과..
클라이언트로부터 예약시간을 받을 ReserveDTO를 만들었다. package com.soni.reservation.dto; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.*; import org.springframework.data.annotation.CreatedDate; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import java.time.LocalDateTime; @Getter @Setter @Builder @AllArgsConstructor @NoArgsConstruc..
관리자 회원가입을 위해 UserDetailSevice를 상속한 ManageService와 UserDetails를 상속한 Manager엔티티를 구현했다. 그리고 일반회원 회원가입을 위해 똑같이 MemberService와 Member를 구현했는데 엄청 긴 에러 중에 이런 것이 있었다. factory method 'authenticationmanagerbean' threw exception 왜 이럴까 아니면 그냥 따로 서비스 파일을 만들지 않고 한 번에 몰아서 해야하나 고민을 하다가 UserDetailService가 두 개 일 때 발생하는 에러에 대해서 찾아보았다. 그리고 해결책을 찾았다. ➡️원인 UserDetailService를 두 개 구현할 경우 securityConfig에도 각각의 서비스를 등록해줘야한..
회원가입, 로그인 인증 구현 후 프로젝트 실행시켰더니 오류가 발생했다. *************************** APPLICATION FAILED TO START *************************** Description: The dependencies of some of the beans in the application context form a cycle: jwtAuthenticationFilter defined in file [C:\spring_prac\Mission\reservation\out\production\classes\com\soni\reservation\security\JwtAuthenticationFilter.class] ┌─────┐ | tokenProvide..
09 연관관계 매핑 9.1 연관관계 매핑 종류와 방향 - One to One - One to Many - Many to One - Many To Many 어떤 엔티티를 중심으로 연관 엔티티를 보느냐에 따라 연관관게의 상태가 달라짐. DB에서는 두 테이블의 연관관계를 설정하면 외래키를 통해 서로 조인해서 참조하는 구조로 생성, JPA를 사용하는 객체지향 모델링에서는 엔티티간 참조 방향 설정 가능. - 단방향/양방향으로 설정할 수 있다. 연관관계가 설정되면 한 테이블에서 다른 테이블의 기본키 값을 외래키로 갖는다. 외래키를 가진 테이블이 '주인'이 된다. 주인은 외래키를 사용(등록, 편집, 수정)할 수 있고 상대엔티티는 읽기만 가능. 9.3 일대일 매핑 9.3.1 일대일 단방향 매핑 하나의 상품에 하나의 상..
내가 보려고 정리하이버네이트 : ORM 중의 하나로 JPA가 표준 인터페이스고 구현체가 Hibernatespring.jpa.hibernate.ddl-auto : Hibernate가 실행될 때 ddl 옵션 설정ddl-auto 옵션 종류create: 기존테이블 삭제 후 다시 생성 (DROP + CREATE) 꼭 ! 로컬환경에서만 사용 !!!!create-drop: create와 같으나 종료시점에 테이블 DROPupdate: 변경분만 반영(운영DB에서는 사용하면 안됨)validate: 엔티티와 테이블이 정상 매핑되었는지만 확인none: 사용하지 않음(사실상 없는 값이지만 관례상 none이라고 한다.)*운영환경에서는 create, create-drop, update 사용금지*테스트 서버는 update, vali..
consumer로 접속시 밀리초 단위로 마구 나오는 오류 bash-5.1# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic loan_request 이렇게 접속하면 이것들이 마구 나옴 [2023-10-16 10:01:46,818] WARN [Consumer clientId=consumer-console-consumer-53651-1, groupId=console-consumer-53651] 1 partitions have leader brokers without a matching listener, including [loan_request-0] (org.apache.kafka.clients.NetworkClient) [2023-10..
docker-compose.yml 파일 생성 version: '2' services: zookeeper: image: wurstmeister/zookeeper container_name: zookeeper ports: - "2181:2181" networks: - fintech kafka: image: wurstmeister/kafka:2.12-2.5.0 container_name: kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: kafka KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes: - /var/run/docker.sock:/var/run/docker.sock networks: - fin..