Backend

· Backend
상황: 스프링 버전 3.0.1로 프로젝트를 빌드할 때 다음과 같은 에러가 났다. No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.1 was found. 원인 : jcenter 인증서 만료때문이였다. 해결 : build.gradle에서 스프링 버전을 2.7.7로 변경한 후 다시 빌드했다.
· Backend/Java
https://help.gooddata.com/cloudconnect/manual/date-and-time-format.html Data and Time Format A formatting string describes how a date/time values should be read and written from(to) string representation (flat files, human readable output, etc.). A format can also specify an engine which CloudConnect will use by specifying a prefix (see below). Th help.gooddata.com 1. @JsonFormat @JsonFormat은 Ja..
· Backend/JPA
여러개의 insert문을 여러번 날릴 때 그 수만큼 쿼리가 발생한다. 한번에 insert문을 날리거나 성능개선을 할 수 있는지 알아보았다. 원래 : save를 이용해서 insert를 사용 해결책 : saveAll 사용 궁금증 : 성능이 왜 빠를까? https://sas-study.tistory.com/388 [Spring Data JPA] save와 saveAll의 성능 차이에 대한 실험과 결과!(스프링 프록시, @Transactional) 안녕하세요. 오늘은 Spring Data JPA를 활용할때 기본 Insert로 사용하는 save 기능과 saveAll 기능에 대한 성능 실험을 해보려고 합니다. Spring Data JPA의 경우 Bulk Insert의 경우 많은 성능 이슈를 발생시켜.. sas-st..
· Backend/JPA
들어가기 전에) JPA는 다양한 매핑 어노테이션을 지원하는데 크게 4가지로 분류 -객체와 테이블 매핑: @Entity, @Table -기본 키 매핑 : @Id -필드와 컬럼 매핑:@Column -연관관계 매핑:@ManyToOne, @JoinColumn 먼저 객체와 테이블 매핑 어노테이션부터 알아보자. 4.1 @Entity @Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라 부른다. -@Entity 속성 정리 속성 기능 기본값 name JPA에서 사용할 엔티티 이름을 지정한다. 보통 기본값인 클래스 이름을 사용한다. 만약 다른 패키지에 이름이 같은 엔티티 클래스가 있다면 이름을 지정해서 충돌하지 않도록 해야 한다. 설정하지 않으면 클래스 이름을 그대로 사용(예: Member) -주의사항 기본..
· Backend/JPA
들어가기 전에 ) JPA가 제공하는 기능 1. 엔티티와 테이블을 매핑하는 설계 부분 2. 매핑한 엔티티를 실제 사용하는 부분 3.1 엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매니저 -엔티티를 저장,수정, 삭제,조회 등 엔티티와 관련된 모든 일을 처리 엔티티 매니저 팩토리 (Entity ManagerFactory) -엔티티 매니저를 만드는 공장 -비용이 많이 들기 때문에 하나만 생성->한 개만 만들어서 애플리케이션 전체에서 공유 -여러 스레드가 동시에 접근해도 안전-> 서로 다른 스레드 간에 공유 엔티티 매니저 (Entity Manager) -공장에서 엔티티 매니저 생성 -비용이 거의 들지 않는다. -여러 스레드가 동시에 접근하면 동시성 문제가 발생->스레드 간에 절대 공유하면 안됨 -데이터베이스 연결..
· Backend/JPA
1. 애플리게이션 개발 객체 매핑을 완료하고 persistence.xml로 JPA설정을 완료했다. 이제 JPA 애플리케이션을 개발하자. package jpabook.start; import javax.persistence.*; import java.util.List; /** * @author holyeye */ public class JpaMain { public static void main(String[] args) { //엔티티 매니저 팩토리 생성 EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook"); EntityManager em = emf.createEntityManager(); //엔티티 매니저 생성 Entit..
· Backend/JPA
1. 프로젝트 만들기 IntelliJ로 Maven 프로젝트를 만들었따. 2. Mysql 테이블 생성 책에서는 H2 데이터베이스를 사용하지만 여기서는 Mysql을 사용할 것이다. create table 'member'( ID VARCHAR(255) NOT NULL, NAME VARCHAR(255), AGE INTEGER NOT NULL, PRIMARY KEY(ID) ); 3. 라이브러리와 프로젝트 구조 JPA 구현체로 하이버네이트를 사용한다. JPA를 구현체로 하이버네이트를 사용하기 위한 핵심 라이브러리는 다음과 같다. hibernate-core : 하이버네이트 라이브러리 hibernate-entitymanager : 하이버네이트가 JPA 구현체로 동작하도록 JPA 표준을 구현한 라이브러리( 이것을 라이브..
· Backend/JPA
JPA란 무엇인가? -JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준이다. JPA는 애플리케이션과 JDBC 사이에서 동작한다. -자바 ORM 기술에 대한 API 표준 명세다.(인터페이스를 모아둔 것) -JPA 사용하기 위해서는 JPA를 구현한 하이버네이트,EclipseLink, DataNucleus인 ORM 프레임워크를 선택한다. -ORM이란 무엇일까? ORM(object-Relational Mapping)은 이름 그대로 객체와 관계형 데이터베이스를 매핑한다는 뜻이다. ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 대신 해결해준다. 예를 들어 ORM 프레임워크를 사용하면 객체를 데이터베이스에 저장할 때 INSERT SQL을 직접 작성하는 것이 아니라 ..
· Backend/Java
HashMap 클래스 HashMap 클래스는 Map 컬렉션 클래스에서 가장 많이 사용되는 클래스 중 하나이다. JDK 1.2부터 제공된 HashMap 클래스는 해시 알고리즘(hash algorithm)을 사용하여 검색 속도가 매우 빠르다. HashMap 클래스는 Map 인터페이스를 구현하므로, 중복된 키로는 값을 저장할 수 없다. 하지만 같은 값을 다른 키로 저장하는 것은 가능하다. HashMap 클래스는 키와 값의 쌍을 저장하는 데 사용되는 "Map" 기반의 컬렉션 클래스로, HashMap 로 표시된다. 이 클래스는 맵의 순서를 보증하지 않는다. 이 클래스는 비동기(unsynchronized)이며 null 키/값을 허용한다는 점을 제외하면 Hashtable 클래스와 유사하다. HashTable 클래스 ..
· Backend
DAO(Data Access Object) : Mapper로, DB와 Spring사이에서 데이터를 주고받는 객체 커넥션 같은 것을 하나만 두고 여러 사용자가 DAO의 인터페이스를 사용하여 필요한 자료에 접근 하도록 하는 것이 DAO의 개념이다. DB에 대한 insert,update,delete,select를 처리한다. DTO(Data Transfer Object) : 입력(Read&Write) 데이터가 포함된 객체를 한 시스템에서 다른 시스템으로 전달하는 작업을 처리하는 개체이다. Data에 접속하는 객체이다. 여기서 Data란 일반적인 Database도 될 수 있고, 파일도 될 수 있으며, 메모리도 될 수 있고, 기타 다른 저장소도 될 수 있다. DTO는 프로세스 사이에서 데이터를 전송하는 객체를 의미..
호_두씨
'Backend' 카테고리의 글 목록 (3 Page)