[Spring] @Scheduled 스케쥴링 적용 방법
·
SpringBoot
1. 시작하기 전 @Scheduled 지정된 시간에 주기적으로 실행되는 메서드를 만들기 위해 사용함@EnableScheduling스케줄링을 활성화 할 때 사용두 어노테이션 모두 스프링 프레임워크에서 제공하는 어노테이션입니다.  2. 구현 controller 부분@Scheduled(fixedDelay = 1000) // 1초에 1000public void test () { log.info("테스트!");} Application 부분@EnableScheduling 만 추가해주시면 됩니다.@SpringBootApplication@EnableSchedulingpublic class Application { public static void main(String[] args) { SpringAp..
[JPA] SpringBoot 환경에 검색 기능 간단 구현 (+ 페이징 처리)
·
ORM/JPA
1. 시작하기 전 두 메서드 모두 JpaRepository 인터페이스에서 제공하는 메서드입니다.메서드명설명findBy[컬럼명]엔티티의 특정 컬럼 값을 이용하여 조회하는 메서드 findBy[컬럼명]Containing지정한 문자열이 포함된 엔티티를 조회하는 메서드만약 name 컬럼에서 값이 '홍길동' 인 것을 찾을 때는 findByName 을 사용하시면 되고,name 컬럼에서 성이 '홍'인 사람들만 찾을 때는 findByNameContaining 을 사용하시면 됩니다. 2. 구현 (+페이징 처리) 예시 : 검색어(String keyword) 를 컬럼에서 조회하고자 한다. Repository 부분public interface ExRepository extends JpaRepository { Page findB..
[Spring] Hikari 이용하여 데이터베이스 연결 관리하기
·
SpringBoot
0. 시작하기 전JDBC 란?JDBC( Java Database Connectivity ) 란 자바에서 데이터베이스에 접속하기 위한 표준 인터페이스를 뜻함데이터베이스와 연결할 때마다 새로운 커넥션을 생성 & 연결하는 비용을 줄이기 위한 기술JDBC 커넥션 풀 구현체란?커넥션 풀링 기능을 제공하는 라이브러리데이터베이스에 연결할 때 생성된 커넥션 풀에서 사용커넥션 풀 크기, 커넥션 대기 시간, 커넥션 최대 최소 수 등  설정 가능구현체 종류 : Apache Commons DBCP, HikariCP, Tomcat JDBC 등Hikari 란?Spring Framework에서 사용되는 데이터베이스 커넥션 풀 라이브러리HikariCP라고도 불림빠르고 경량화된 JDBC 커넥션 풀 구현체Spring Hikari는 데이..
[JPA] 복합키 적용해서 테이블 생성하기 @EmbeddedId, @IdClass
·
ORM/JPA
테이블에 PK가 하나가 아닌 여러 개 일 경우 설정하고자 한다.1. 시작하기 전 @EmbeddedId : ID 필드로 별도의 객체를 사용할 수 있도록 도와주는 어노테이션@IdClass : 해당 컬럼이 PK임을 알려주는 어노테이션Serializable : 생성한 객체를 파일로 저장하거나, 저장한 객체를 읽을 경우 또는 다른 서버에서 생성한 객체를 받기 위해 구현하는 인터페이스 (직렬화)2. 전체 파일 파일은 두 개로 나누었다. PK 는 따로 한 파일에 (Seq.java) 모아두었고테이블은 Storage.java 에 생성하였다. Seq.java 파일import lombok.Getter;import lombok.Setter;import lombok.ToString;import javax.persistence...
[JPA] JPA For queries with named parameters 오류 해결
·
ORM/JPA
JPA 를 사용하다가 하드코딩으로 쿼리를 작성해주어야 하는 상황이 발생한다.그런데 작동하던 쿼리문이 본문의 제목과 같은 오류를 내뱉으면서 작동하지 않았다..!검색해보니 Param 이 존재하지 않아서였다 @Query(value = "select * from 테이블명 where 테이블 컬럼명 = :코드컬럼명 order by 정렬컬럼명 desc limit 숫자", nativeQuery = true)해당되는엔티티 findByAll(@Param(value = "코드컬럼명")String 코드컬럼명);(@Param(value = "코드컬럼명") 만 추가해주면 끝 !
[ect] 객체지향 설계 SOLID 5 원칙
·
공통
0. 들어가기 전 알고 있으면 좋은 것 클린코드로 유명한 로버트 마틴이 5가지 원칙을 정리 다형성이란? 객체 지향의 4가지 틍성 중 하나로 하나의 타입에 여러 객체를 대입 가능한 것을 의미 구현 방법 : 오버로딩, 오버라이딩, 함수형 인터페이스 클라이언트와 서버? 클라이언트 = 호출, 서버 = 응답 호출되는 코드를 서버코드라고 하면 코드를 호출하는 모든 코드 (객체, 클래스)가 클라이언트 코드 1. SRP 단일 책임 원칙 (single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수 있고, 작을 수 있다. 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 ..
[Spring] Jpa 이용해서 db 에 entity 추가
·
SpringBoot
0. 환경- DB : Postgres- DBeaver 을 사용하여 확인- Spring boot 환경에서 Jpa를 이용하여 테이블 생성1. 연동하기- src > main > resources > application.yml 파일spring: datasource: driver-class-name: org.postgresql.Driver url: jdbc:postgresql://localhost:포트번호/스키마이름 platform: postgres username: 지정한이름 (미설정시 기본) password: 지정한비번 (미설정시 기본) jpa: hibernate: ddl-auto: create # 처음에 create로 작성하시고 이후에는 none show-..
[Postgres] Postgres 새로운 DB 생성
·
데이터베이스/Postgres
1. psql에서 기존 이름, 암호 입력2. 유저 생성create user 사용자이름 with password '비밀번호'; 3. DB 생성create database 데이터베이스이름 with owner 사용자이름; 4. 새로 추가한 유저로 DB 접속하기\c 데이터베이스이름 사용자이름 5. Schema 생성 (선택)create schema 데이터베이스이름 authorization 사용자이름; 6. 권한 부여하기ALTER USER 사용자이름 createdb replication; 7. 확인하기\du\dn+\l+