본문 바로가기
  • 개발 로그를 기록하며,
    복습하고 깊이를 더해갑니다.
728x90

분류 전체보기289

[JPA] JPA Annotation. 어노테이션 💡 JPA에서 사용되는 어노테이션! 1. @Entity JPA를 사용해 테이블과 매핑할 클래스에 붙여주는 어노테이션이다. JPA가 해당 클래스를 관리하게 된다. 속성 기능 name JPA에서 사용할 엔티티 이름 지정name을 쓰지 않을 경우 (default) 클래스 이름을 entity 이름으로 지정 @Entity의 name = "user2"로 함으로써 user2 테이블이 생성된 것을 볼 수 있다. @Entity(name = "user2") publicclassUser {} 주의 사항 기본 생성자가 꼭 필요 (@NoArgsConstructor) final, enum, interface, innter class에서는 사용 불가 필드(변수)를 final로 선언 불가 2. @Table 엔티티와 매핑할 테이블을 .. 2023. 9. 10.
[JPA] Query Method. 쿼리 메서드 Spring Data JPA에서 제공하는 공동 인터페이스는 기본적인 CRUD를 제공해준다. (JpaRepository) JpaRepository Entity의 클래스명 + Repository 로 인터페이스 생성 JpaRepository 상속 (extends) 속성으로 ‘Entity의 클래스명’, ‘Entity기본키(Id)의 타입’ 지정 💡 QueryMethod 이름 지정 간단한 쿼리일 경우 이와 같은 쿼리 메서드를 이용한다. 같은 분류의 메서드는 이름만 다를 뿐 똑같은 기능을 한다. (조회 : find..By, read..By, get…By 등) spring data JPA - 참조 문서 (spring.io) QueryMethod 필터 조건 쿼리 조건 메서드명 실제 쿼리문 Distinct findDist.. 2023. 9. 10.
[JPA] H2 Database 💡 H2 Database 란? 자바로 작성된 관계형 데이터베이스 관리 시스템이다. 장점 따로 설치가 필요없다 용량이 매우 가볍다 웹용 콘솔(쿼리툴) 제공하여 개발용 로컬DB로 사용 용이 특징 JAVA로 작성된 오픈소스 RDBMS 스프링 부트가 지원하는 인메모리 관계형 데이터베이스 인메모리로 띄우면 애플리케이션 재기동 때마다 초기화 로컬 환경, 테스트 환경에서 많이 쓰임 In-Memory DB 컴퓨터가 꺼지면 모든 내용이 날라감 연속성이 없음 연속성을 주는 방법이 있지만, 그 방법을 쓰려면 그냥 일반 DB모드로 쓰면 된다. 💡 사용하기 Intellij에서 간단하게 사용하는 방법 서버 실행 Run의 Console창에서 “H2 console available at '/h2-console'. Database a.. 2023. 9. 10.
[JPA] JPA란? 💡 JPA (Java Persistence API) 란? 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. 그 말은 즉, 실제적으로 구현된것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다. JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있다. 💡 우선 ORM에 대해 알아야 한다! 애플리케이션 Class와 DataBase테이블을 매핑(연결)해준다. 즉 애플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이다. 장점 SQL문이 아닌 Method를 통해 DB를 조작할 수 있어, 개발자는 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있음.(내부적으로는 쿼리를 생성하여 DB를 조작함. 하지.. 2023. 9. 10.
[jQuery] jQuery 기본 사용법 Query는 HTML 문서의 탐색, 조작, 이벤트 처리 등을 간편하게 수행하기 위한 자바스크립트 라이브러리이다. 크로스 브라우저 호환성을 제공하며, DOM 조작과 애니메이션 등을 간소화하여 개발자들이 웹 애플리케이션을 보다 쉽게 개발할 수 있도록 도와준다. 특징 간결한 문법: 간결하고 직관적인 문법을 제공하여 개발자가 복잡한 DOM 조작을 간단하게 수행할 수 있습니다. CSS 선택자를 사용하여 요소를 선택하고, 메소드 체이닝을 통해 다양한 작업을 연속적으로 수행할 수 있습니다. DOM 조작: HTML 문서의 요소를 선택하고, 속성을 변경하거나 삽입, 삭제, 이동할 수 있는 다양한 DOM 조작 기능을 제공합니다. 이를 통해 웹 페이지의 동적인 변경이 가능하며, UI 요소의 상호작용을 구현할 수 있습니다. .. 2023. 9. 10.
[SpringBatch] Batch Architecture. 배치 아키텍처 💡 Spring Batch의 구조 JobRepositor. 다양한 배치 수행과 관련된 수치 데이터와 잡의 상태를 유지 및 관리한다. 일반적으로 관계형 데이터베이스를 사용하며 스프링 배치 내의 대부분의 주요 컴포넌트가 공유한다. 실행된 Step, 현재 상태, 읽은 아이템 및 처리된 아이템 수 등이 모두 JobRepository에 저장된다. Job Job은 배치 처리 과정을 하나의 단위로 만들어 표현한 객체이고 여러 Step 인스턴스를 포함하는 컨테이너이다. Job이 실행될 때 스프링 배치의 많은 컴포넌트는 탄력성(resiliency)을 제공하기 위해 서로 상호작용을 한다. JobLauncher Job을 실행하는 역할을 담당한다. Job.execute을 호출하는 역할이다. Job의 재실행 가능 여부 검증, .. 2023. 9. 10.
[SpringBatch] 스프링 배치란? 💡 스프링 배치(Spring Batch)란? Spring Batch는 엔터프라이즈 시스템의 운영에 있어 대용량 일괄처리의 편의를 위해 설계된 가볍고 포괄적인 배치 프레임워크이다. Spring의 특성을 그대로 가져왔기 때문에 DI, AOP, 서비스 추상화 등 Spring 프레임워크의 3대 요소를 모두 사용할 수 있다. 사용 이유 대용량의 비즈니스 데이터를 복잡한 작업으로 처리해야하는 경우 특정한 시점에 스케쥴러를 통해 자동화된 작업이 필요한 경우 (ex. 푸시알림, 월 별 리포트) 대용량 데이터의 포맷을 변경, 유효성 검사 등의 작업을 트랜잭션 안에서 처리 후 기록해야하는 경우 Spring Batch는 로깅/추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작, 건너뛰기, 리소스 관리 등 대용량 레코드 처.. 2023. 9. 10.
[MyBatis] Dynamic Query. 동적 쿼리 1. 기본적인 동적 쿼리 map 형식으로 검색 타입과 키워드를 받아와서 처리했다. WHERE 절에서 검색 타입은 ${ } 로 전달하며 키워드는 #{ } 로 전달한다. ${ } 는 파라미터 값이 그대로 들어가며 #{ } 는 파라미터 값이 ' ' 으로 감싸진다. SELECT * FROM KH.EMPLOYEE WHERE ${searchType} = #{keyword} 2. if문을 이용한 동적 쿼리 if문을 이용하는 방법은 EL 처럼 test 속성에 조건을 넣어주면 된다. SELECT * FROM EMPLOYEE WHERE 1=1 모든 if문의 조건이 맞지 않는 다면 위의 쿼리문의 결과만 리턴될 것이다. 만약 gender 값이 있다면 SELECT * FROM EMPLOYEE WHERE 1=1 AND GENDE.. 2023. 9. 10.
[MyBatis] 기본 세팅 및 사용 방법 1. pom.xml 작성 pom.xml에 2개의 dependency를 등록한다. 로컬에 MariaDB로 DB를 구성했기때문에 MariaDB JDBC를 등록했다. JDBC는 Java로 DB에 접근 및 제어를 가능하게 해주는 API다. mybatis는 JDBC를 좀 더 편하게 사용할 수 있도록해주는 라이브러리인데 JDBC의 결과 및 설정 매핑을 대신해주고, 결정적으로 mybatis를 사용하면 Java 코드가 간결해진다. org.mariadb.jdbc mariadb-java-client org.mybatis.spring.boot mybatis-spring-boot-starter 2.0.1 2. DB접속정보 작성 application.yml에 DB접속 정보와 mapper의 경로를 지정해준다. 해당 경로에 있는 .. 2023. 9. 10.
728x90