특정날짜와 format을 파라미터로 설정하여 해당 format에 맞게 어제 일자 조회 public static String getYesterday(String paramDate, String format) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); LocalDate currentDate = LocalDate.parse(paramDate, formatter); return currentDate.minusDays(1).format(formatter); }
현재날짜(LocalDate.now())가 올해의 몇번째 주차인지 조회 public static String getWeekOfYear() { LocalDate currentDate = LocalDate.now(); int weekOfYear = currentDate.get(WeekFields.ISO.weekOfYear()); return Integer.toString(weekOfYear); }
1) pom.xml 추가 org.modelmapper modelmapper 2.3.8 2) ModelMapper 사용 UserEntity.java @Setter @Getter @Entity @Table(name = "users") public class UserEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long idx; @Column(nullable = false, length = 50) private String userId; @Column(nullable = false, length = 50) private String userName; } UserDto.java @Data public class UserDto {..
Docker 이미지 설치 1) Kafka 설치 docker pull wurstmeister/kafka 2) zookeeper 설치 docker pull wurstmeister/zookeeper docker-compose 파일 생성 1) docker-compose.yml 파일 생성 (local PC에 경로는 자유롭게 파일 생성) version: '2' services: zookeeper: image: wurstmeister/zookeeper container_name: zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka container_name: kafka ports: - "9092:9092" environment: KAFKA_ADVERTIS..
설정 1) build.gradle 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' 2) @Valid 어노테이션 추가 /** * 회원 등록 * @param memberDto * @return */ @PostMapping("") public ResponseEntity addMember(@ModelAttribute @Valid MemberDto memberDto) { /* 패스워드 암호화 */ memberDto.setMemberPwd(passwordEncoding.encode(memberDto.getMemberPwd())); Member member = memberService.addMember(memberDto);..
구현 1) build.gradle 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-security:2.4.2' 2) CommonEncoder.java 생성 @Component public class CommonEncoder implements PasswordEncoder { private final PasswordEncoder passwordEncoder; public CommonEncoder() { this.passwordEncoder = new BCryptPasswordEncoder(); } public CommonEncoder(PasswordEncoder passwordEncoder) { this.passwordEncoder ..
기본제공 findById(PK) 메소드 public Optional getMember(Long idx) { return memberRepository.findById(idx); } JPA에서 ID값을 파라미터로 SELECT 할 수 있는 기본 findById 메소드를 제공한다. 하지만 ID 필드가 아닌 다른 여러 필드들로도 데이터를 조회할 경우가 생기게된다. 상황 로그인 API를 구현하면서 파라미터로 받아온 아이디와 패스워드에 맞는 회원 정보가 있는지 조회해야하는 상황이 생겼다. 1) AuthController.java @PostMapping("/login") public ResponseEntity login(@ModelAttribute LoginDto loginDto, @ApiParam(hidden = ..
상황 SpringBoot 프로젝트를 진행하면서 로그인/로그아웃 API를 개발할 단계가 되었다. SpringBoot 프레임워크 프로젝트에 세션 관리를 Redis로 진행해보자. Redis 설치 우선 프로젝트가 Redis를 연동할 수 있도록 Redis를 설치해야한다. docker에 redis를 간단하게 설치하였다. docker redis 설치 포스팅 : devfunny.tistory.com/424?category=820624 docker로 redis 설치 (with docker-compose) Redis 이미지 설치 docker pull redis docker-compose 파일 생성 version: '3.0' services: redis1: image: redis command: redis-server --..
Redis 이미지 설치 docker pull redis docker-compose 파일 생성 version: '3.0' services: redis1: image: redis command: redis-server --requirepass root --port 6379 restart: always ports: - 6379:6379 1) requirepass redis 접속시 패스워드(password)를 설정하는 방법이다. docker-compose 파일 실행 1) 로컬PC에 이전에 생성한 docker-compose 파일의 위치로 이동 cd 경로 2) docker-compose 실행 docker-compose -f docker-compose.yml up Redis-cli 접속하여 명령어 실행 1) redi..
들어가기 전 Lombok을 사용하여 구현하기 전, 라이브러리를 사용하지 않고도 구현할 줄 알아야한다. 아래 포스팅을 참고하자. devfunny.tistory.com/409 [SpringBoot + JPA] DTO, Entity의 빌더패턴 적용기 도입 스프링부트 프로젝트에서 JPA를 사용하여 API를 만드는 상황에 놓였다. 나는 API의 파라미터로 받아올 Dto 파일을 생성하였고, JPA Repository로 보낼 Entity 파일을 생성하였다. com.api.seohae - dto U devfunny.tistory.com 도입 스프링부트 프로젝트에서 JPA를 사용하여 API를 만드는 상황에 놓였다. 나는 API의 파라미터로 받아올 DTO 파일을 생성하였고, JPA Repository로 보낼 Entity ..
JPA JPA : Java Persistence API 자바 진영의 ORM 기술 표준이다. JPA를 알아보기전에 ORM과 ORM 프레임워크에 대해 알아보자. ORM ORM : Object Relational Mapping 객체와 관계형 데이터베이스를 매핑한다는 뜻이다. ORM 프레임워크 ORM 프레임워크를 사용함으로써 그동안 개발해왔던 INSERT/UPDATE/SELECT 쿼리 등을 직접 작성하지 않고도 데이터를 저장할 수 있게되었고 우리는 객체를 자바 컬렉션에 저장하듯이 ORM 프레임워크에 저장하면 쿼리 작성 시의 일들을 수행할 수 있게 되었다. ORM 프레임워크에 저장된 객체들은 ORM 프레임워크가 적절한 SQL을 생성해서 데이터베이스에 저장된다. ORM 프레임워크는 단순히 SQL을 생성해서 데이터베..
Mysql 이미지 설치 docker pull mysql docker-compose 파일 생성 version: "3" services: db: # 서비스 명 image: mysql:latest # 사용할 이미지 container_name: test-mysql # 컨테이너명 설정 ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: "root" # roor 계정 패스워드 설정 command: # 명령어 - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci volumes: # 다렉토리 마운트 설정 - /데이터 저장할 local 폴더 경로:/var/lib/mysql docker-compose..