본문 바로가기

전체 글85

[SPRING] @WebMvcTest의 Controller테스트 @WebMvcTest는 오로지 Controller계층에 대한 테스트를 할 때 사용하는 Controller를 위한 테스트 어노테이션으로 Scan의 대상이 제한되어 통합 테스트보다 가볍고 빠르게 Controller계층의 테스트가 가능하다. @WebMvcTest Scan의 대상 @Controller @ControllerAdvice @JsonComponent Converter GenericConverter Filter WebMvcConfigurer, HandlerMethodArgumentResolver WebSecurityConfigurerAdapter MockMvc의 주입을 지원하여 MockMvc를 활용한 HTTP 요청을 바로 사용할 수 있다. // 테스트 대상 Controller @WebMvcTest(con.. 2022. 9. 18.
[Lombok] 자주 사용하는 어노테이션과 주의점 반복적인 getter, setter 혹은 여러 개의 생성자를 어노테이션만으로 생성해주는 소중한 라이브러리가 바로 Lombok입니다. 평소 제공되는 기능을 단순히 기억하고 사용하다가 최근에 큰 혼란을 경험하여 제공되는 기능과 유의점에 대해 학습하고 정리한 내용입니다. @Getter, @Setter private로 선언된 필드에 접근하기 위해 사용하는 getter, setter는 특정 조건을 넣는 상황이 아니라면 단순 반복적인 코드가 작성돼야 하지만 @Getter, @Setter 어노테이션으로 대신할 수 있습니다. @Getter @Setter public class Movie { private Long id; private int attendance; private String movieName; //@Ge.. 2022. 9. 18.
[JPA] 일반필드와 컬럼 매핑 JPA에서는 엔티티의 필드와 DB의 컬럼을 매핑하여 사용하는데 주로 애노테이션 기반으로 매핑이 가능하다. DDL 생성 기능을 사용할때도 옵션 추가가 가능한데 DDL 생성 기능은 제외하고 기본적인 필드와 컬럼의 매핑 방법에 알아보자 @Column 필드와 매핑할 테이블의 컬럼이름을 직접 입력해야 할 때 사용한다. 등록, 변경에 가능 여부를 옵션으로 부여 가능하다. @Entity public class Member { @Column(name = "name", insertable = false, updatable = false) private String userName; } name : 매핑 대상의 컬럼명을 직접 입력한다. insertable : default는 true로 insert쿼리의 대상이 됐을 때 입.. 2022. 8. 20.
[RDBMS] INDEX란? 인덱스(INDEX)란? 주로 검색(SELECT) 쿼리의 수행 속도를 높이기 위해 데이터베이스의 데이터 위치를 색인하여 기억하고 있는 기술로 테이블 단위로 생성하며 오라클의 경우 PK, FK 컬럼에는 자동으로 인덱스(색인)이 생성되고 옵티마이저의 판단에 따라 사용됩니다. 책으로 생각하면 목차가 있어 어느 페이지에 어떤 내용이 있는지 확인할 수 있다면 곧바로 찾는 내용이 있는 페이지로 갈 수 있는 장점이 있다고 생각하면 됩니다. 인덱스의 사용 이유 1. 조건 검색 속도 향상 제일 큰 이유가 아닐까 싶은데 select문의 속도 이슈는 주로 조건문으로 인해 발생하고 이때 인덱스가 대안이 될 수도 있기 때문입니다. where 조건문이 있을 때 index를 타지 않으면 조건에 부합하는 데이터를 찾기 위해 테이블 전.. 2022. 8. 19.
[WEB] HTTP API, REST API, RESTful API HTTP API, REST API, RESTful API 무언가 비슷해 보이는 이 세 개의 API의 차이점에 대해 어렴풋이 인지 하고 있지만 개념적으로 정리가 필요하여 정리 글을 작성합니다. API(Application Programming Interface) 지도 API, 날씨정보 API, 카카오 API 등등 여러 API에서 제공하는 기능을 자주 사용하는데 API란 뭘까? 애플리케이션(응용프로그램)에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다 - 위키백과- 즉 사용하는 쪽과 제공하는 쪽 사이에서 상호작용을 도와주는 매개체라고 생각된다. 마치 손님과 주방장 사이의 웨이터와 같다고 생각하면 된다. HTTP API HTTP 프로토콜을 통신방식으.. 2022. 8. 17.
[JPA] 영속성 컨텍스트 영속성 컨텍스트는 Entity를 저장하고 관리하는 논리적인 환경으로 엔티티 매니저를 통해 영속성 컨텍스트에 접근한다. 영속성 컨텍스트의 특징과 이점을 알아보자! 엔티티의 생명주기 비영속(new/transient) - 객체를 생성은 했으나 영속성컨텍스트에서 관리되지 않는 새로운 상태 User user = new User(); user.setName("jang"); user.setAge(29); 영속(managed) - 영속성 컨텍스트에 관리되고 있는 상태로 객체가 생성되어 영속성컨텍스트에 포함되어 있다. User user = new User(); user.setName("jang"); user.setAge(29); EntityManager em = createEntity....(); em.getTransa.. 2022. 8. 9.