전체 글 357

23.05.12 - 운동일지

어깨 밀리터리 프레스 6set : 20-12, 30-12, 40-12, 40-12, 50-6, 50-6 덤벨 밀리터리 프레스 4set : 20-8, 20-8, 20-8, 25-4 리어델트 4set : 40-12, 40-12, 46-12, 46-10 리어델트 아이솔레이트 4set : 22-12, 22-12, 26-12, 26-12 사이드 레터럴 레이즈 6set : 5-15, 5-15, 5-15, 7-12, 7-12, 7-12 삼두 케이블 프레스 다운 3set : 25-12, 25-12, 25-12 케이블 오버헤드 익스텐션 4set : 25-12, 25-12, 25-10, 25-10 원암 덤벨 오버헤드 익스텐션 3set : 6-12, 6-12, 6-12

@SpringBootTest vs @WebMvcTest

Junit 테스트 시 @SpringBootTest와 @WebMvcTest를 대표적으로 사용 두가지의 차이점을 알아보자! @SpringBootTest 프로젝트의 내부에 있는 모든 스프링 빈을 등록 => 속도가 느리고, 통합 테스트를 할 때 많이 사용 수많은 스프링 빈을 등록하여 테스트에 필요한 의존성을 주입 @WebMvcTest MVC 부분 슬라이드 테스트로, 보통 컨트롤러 하나만 테스트를 하고자 할 때 사용 WebMvcTest()의 프로퍼티로 테스트를 원하는 컨트롤러의 클래스를 넣어주어야 함 Ex) @WebMvcTest(ExampleController.class) @WebMvcTest 어노테이션 사용 시에 가끔 NoSuchBeanDefinitionException 오류가 발생 원인 : @WebMvcTes..

카테고리 없음 2023.05.12

Rest Client [Spring]

Rest Client란? Spring에서 제공하는 HTTP 통신에 사용할 수 있는 템플릿 HTTP 통신을 할 수 있는 Rest한 Client Spring boot에서 쉽게 사용할 수 있도록 자동설정을 제공 ※주의 : RestTemplate / WebClient 는 자체를 빈으로 등록 X => RestTemplateBuilder / WebClient.Builder 를 빈으로 등록 O 1. RestTemplate Blocking I/O 기반의 Synchronous API RestRunner에서 특정 API를 호출한 뒤, Blocking 되므로 해당 메서드가 끝나기 전까지 다음 라인이 실행되지 않음 RestTemplateAutoConfiguration 프로젝트에 spring-web 모듈이 있다면 RestTem..

Spring Container

Spring Container란? - 자바 객체의 생명 주기를 관리하고, 생성된 자바 객체들에 추가적인 기능을 제공하는 역할 - 여기서 자바 객체는 스프링에서 Bean(빈)이라고 명칭 - 개발자가 new연산자, 인터페이스 호출, 팩토리 호출 방식으로 객체를 생성하고 소멸시킬 수 있는데, 이를 스프링 컨테이너가 대신해줌. 즉, 제어 흐름을 외부에서 관리하는 것 - 객체간의 의존관계를 스프링 컨테이너가 런타임 과정에서 알아서 만들어 줌 - 흔히 Application Context를 스프링 컨테이너 라고 말함 - 파라미터로 넘어온 설정 클래스 정보 (Config에 @Bean 등등)를 Spring Bean에 등록 Spring Container 종류 1. BeanFactory 스프링 컨테이너의 최상위 인터페이스 ..

List, Set, Map, Hash Map

1. List - 저장공간이 필요에 의해 자동으로 늘어나는 자료구조 (순서가 있음) 특징 : 순서가 있고, 중복을 허용 (배열과 유사) 장점 : 가변적인 배열 (배열이 자동으로 늘어남) 단점 : 원하는 데이터의 위치가 뒤쪽에 위치할 시 속도 문제 발생 방식 : equals()를 이용한 데이터 검색 2. Set - 집합이다! 순서가 없고 집합이므로 중복된 데이터가 들어갈 수 없다. 중복되지 않는 숫자(데이터)를 구할 때 사용하면 유용 특징 : 순서가 없고, 중복을 허용하지 않음 장점 : 빠른 속도 단점 : 단순 집합의 개념으로 정렬하려면 별도의 처리가 필요 3. Map - 키와 데이터를 같이 저장 특징 : Key(키)와 Value(값)으로 나눠서 데이터를 관리하고 순서가 없으며 키에 대한 중복을 허용하지 ..

제네릭 (generic)

제네릭(generic)이란? 데이터 타입을 일반화한다는 것을 의미 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법 컴파일 시 미리 타입 검사를 수행하면 다음과 같은 장점이 있음 제네릭 사용 시 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환할 필요가 없음 즉! 관리하기가 편함 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아짐

JPA 영속성 컨텍스트

영속성 컨텍스트란? 엔티티를 영구 저장하는 환경 이라는 뜻 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 DB 역할 엔티티 매니저를 통해 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 저장 em.persist(member); 엔티티 매니저를 사용해 member 엔티티를 영속성 컨텍스트에 저장한다는 의미 특징 엔티티 매니저를 생성할 때 만들어짐 엔티티 매니저를 통해 영속성 컨텍스트에 접근하고 관리할 수 있음 생명주기 비영속성 : 영속성 컨텍스트와 전혀 관계가 없는 상태 영속 : 영속성 컨텍스트에 저장된 상태 준영속 : 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제 : 삭제된 상태 비영속 - 엔티티 객체를 생성했지만, 아직 영속성 컨텍스트에 저장하지 않은 상태..

Index

Index란? 데이터베이스(DB) 테이블에 대한 검색 속도를 향상시켜주는 자료구조 인덱스를 생성하고자 하는 컬럼의 데이터를 정렬한 후 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장 장점 테이블을 검색하는 속도와 성능이 향상 (정렬된 형태의 데이터를 가지고 있음) 시스템의 전반적인 부하를 줄일 수 있음 단점 인덱스를 관리하기 위한 추가 작업이 필요 추가 저장 공간 필요 잘못 사용하거나 무분별하게 사용할 경우에는 오히려 검색 성능이 저하 인덱스를 사용하면 좋은 경우 규모가 큰 테이블 INSERT, UPDATE, DELETE 작업이 자주 발생하지 않는 컬럼 WHERE나 ORDER BY, JOIN등이 자주 사용되는 컬럼 데이터의 중복도가 낮은 컬럼

728x90