본문 바로가기

분류 전체보기

Vue PWA 빌드 에러 : Cannot find module 'chalk' 에러 : Vue PWA 빌드 에러 : Cannot find module 'chalk' 해결방법 : npm install chalknpm install each-asyncnpm install indent-string
Optional 사용하여 null 해결하기 Optional 사용하여 null 해결하기
[Boot] @WebMvcTest @WebMvcTest MVC를 위한 테스트. 웹에서 테스트하기 힘든 컨트롤러를 테스트하는데 적합함 웹상에서 요청과 응답에 대해 테스트할 수 있음 시큐리티 혹은 필터까지 자동으로 테스트하며 수동으로 추가/삭제까지 가능함 MVC관련 설정인 @Controller, @ControllerAdvice, @JsonComponent와 Filter, WebMvcConfigurer, HandlerMethodArgumentResolver만 로드됨 테스트 import com.soon.domain.Book; import com.soon.service.BookService; import org.hamcrest.Matchers; import org.junit.Test; import org.junit.runner.RunWith; i..
[Boot] @SpringBootTest @SpringBootTest 통합 테스트를 제공하는 기본적인 스프링 부트 테스트 어노테이션 애플리케이션이 실행될 때의 설정을 임의로 바꾸어 테스트를 진행할 수 있으며 여러 단위 테스트를 하나의 통합된 테스트로 수행할 때 적합함 스프링 부트 1.4버전부터 제공되며, 스프링 부트 프로젝트를 만들면 메인 클래스와 함계 기본 제공됨 실제 구동되는 애플리케이션과 똑같이 애플리케이션 컨텍스트를 로드하여 테스트함 (주의) 애플리케이션에 설정된 빈을 모두 로드하기 때문에 애플리케이션 규모가 클수록 느려짐 기본 제공 클래스명은 프로젝트명에 'Tests'를 붙인 형태로 자동 생성됨 @RunWith 어노테이션을 사용하면 JUit에 내장된 러너를 사용하는 대신 어노테이션에 정의된 러너 클래스를 사용함 @SpringBootTe..
04. 엔티티 매핑 4. 엔티티 매핑 JPA를 사용하는 데 가장 중용한 일은 엔티티와 테이블을 정확히 매핑하는 것 객체와 테이블 매핑 : @Entity, @Table 기본 키 매핑 : @Id 필드와 컬럼 매핑 : @Column 연관관계 매핑 : @ManyToOne, @JoinColumn 1. @Entity JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션을 필수로 붙여야함 @Entity가 붙는 클래스는 JPA가 관리하는 것으로, 엔티티라 부름 속성 정리 속성 기능 기본값 name JPA 에서 사용할 엔티티 이름을 지정함 설정하지 않으면 클래스 이름을 그대로 사용함 주의사항 기본 생성자는 필수 final 클래스, enum, interface, inner 클래스에는 사용할 수 없음 저장할 필드에 final을 ..
03. 영속성 관리 영속성 관리 2. 영속성 컨텍스트 영속성 컨텍스트(persistence context) : 엔티티를 영구 저장하는 환경 엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리함 em.persist(member); // 단순히 회원 엔티티를 저장한다고 표현했지만, 정확히는 엔티티 매니저를 사용해서 회원 엔티티를 영속성 컨텍스트에 저장함 영속성 컨텍스트는 엔티티 매니저를 생성할 때 하나 만들어지고, 엔티티 매니저를 통해서 영속성 컨텍스트에 접근할 수 있고, 관리 되어짐 3. 엔티티의 생명주기 엔티티는 4가지 상태가 존재함 비영속(new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 상태 영속(managed) : 영속성 컨텍스트에 저장된 상태 준영속(..
01. Jpa 란? JPA 학습 JPA 란? JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준 자바 애플리케이션 JPA JDBC API DB ORM 이란 ? ORM(Object-Relational Mapping) : 객체와 관계형 데이터베이스를 매핑한다는 뜻 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 개발자 대신 해결해줌 종류 : 하이버네이트 etc.. TIP 수정 기능 JPA는 별도의 수정 메소드를 제공하지 않음 객체를 조회해서 값을 변경만 하면 트랜잭션을 커밋할 때 데이터베이스에 적정한 UPDATE SQL이 전달됨
NIO ?? NIO 소개 NIO : 새로운 입출력 1. IO와 NIO의 차이점 방식의 차이가 있음 NIO 입출력 방식 : 채널 방식 버퍼 방식 : 버퍼 비동시 방식 : 지원 블로킹 / 넌블로킹 방식 : 모두 지원 IO 입출력 방식 : 스트림 방식 버퍼 방식 : 넌버퍼 비동시 방식 : 지원 안 함 블로킹 / 넌블로킹 방식 : 블로킹 방식만 지원 스트림 vs 채널 NIO는 채널 기반 : 스트림과 달리 양방향으로 입력과 출력이 가능하다. 그렇기 때문에 입력과 출력을 위한 별도의 채널을 만들 필요가 없음 ex) 하나의 파일에서 데이터를 읽고 저장하는 작업을 모두 해야 한다면 FileChannel 하나만 생성하면 됨(스트림은 FileInputStream, FileOutputStream 필요) NIO는 버퍼 사용 IO에서는 출..