본문 바로가기

전체 글10

[JAVA] 리플렉션(Reflection)이란? java.lang.reflect (Java Platform SE 8 )Interface Summary  Interface Description AnnotatedArrayType AnnotatedArrayType represents the potentially annotated use of an array type, whose component type may itself represent the annotated use of a type. AnnotatedElement Represents an annotated elemedocs.oracle.com 리플렉션이란?- 구체적인 클래스 타입을 알지 못하더라도 그 클래스의 메서드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API를 말한다.- 힙 영역에 로드.. 2024. 6. 26.
CORS Preflight 에러 문제 상황JWT를 이용한 로그인 기능을 구현하고 나서 프런트 쪽에서 CORS 에러가 발생하고 서버에서는 JwtInterceptor에서 오류가 발생했다고 나오는 상황이었다. 구현한 JwtAuthenticationInterceptor 코드@Slf4j@RequiredArgsConstructorpublic class JwtAuthenticationInterceptor implements HandlerInterceptor { private final JwtProvider jwtProvider; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws.. 2024. 6. 22.
읽기 전용 쿼리의 성능 최적화 저상버스 예약 서비스를 구현하던 도중 시간표 테이블에 데이터가 많이 들어가니 지연이 발생했다!해당 문제를 해결하기 위해 읽기 전용 쿼리의 성능 최적화에 대해 공부하고 적용해 보았다. 읽기 전용 쿼리의 성능 최적화에 대해 알아보기 전에 JPA 영속성 컨텍스트의 특징에 대해 잘 모른다면 영속성 컨텍스트에 대해 공부한 후에 읽기 전용 쿼리의 성능 최적화에 대해 공부하자! JPA 영속성 컨텍스트의 특징JPA를 이해하는데 가장 중요한 용어는 영속성 컨텍스트(persistence context)이다.영속성 컨텍스트란 '엔티티를 연구 저장하는 환경' 이라는 뜻이다.엔티티 매니저로 엔티티를 저장하거나 조회하면 엔soeundid.tistory.com  1. 읽기 전용 쿼리 힌트 사용하이버네이트 전용 힌트인 org.hib.. 2024. 6. 20.
JPA 영속성 컨텍스트의 특징 JPA를 이해하는데 가장 중요한 용어는 영속성 컨텍스트(persistence context)이다.영속성 컨텍스트란 '엔티티를 연구 저장하는 환경' 이라는 뜻이다.엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다.em.persist(member); //persist 메서드는 엔티티 매니저를 사용해서 회원 엔티티를 영속성 컨텍스트에 저장한다  영속성 컨텍스트의 특징JPA는 보통 트랜잭션을 커밋하는 순간 영속성 컨텍스트에 새로 저장된 엔티티를 데이터베이스에 반영하는데 이것을 플러시라 한다. 자세한 내용은 조금 뒤에 알아보자 영속성 컨텍스트가 엔티티를 관리하면 장점이 있다.1차 캐시동일성 보장트랜잭션을 지원하는 쓰기 지연변경 감지지연 로딩1차 캐시 & 동일.. 2024. 6. 20.
JDBC 이해 JDBC 등장 이유애플리케이션 서버와 DB의 일반적인 사용법1. 커넥션 연결: 주로 TCP/IP를 사용해서 커넥션을 연결한다.2. SQL 전달: 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달한다.3. 결과 응답: DB는 전달된 SQL을 수행하고 그 결과를 응답한다. 애플리케이션 서버는 응답 결과를 활용한다. 이러한 방식에는 2가지의 문제점이 있다.1. 데이터베이스를 다른 종류의 데이터베이스로 변경하면 애플리케이션 서버에 개발된 데이터베이스 사용 코드도 함께 변경해야 한다.2. 개발자가 각각의 데이터베이스마다 커넥션 연결, SQL 전달, 그리고 그 결과를 응답받는 방법을 새로 학습해야 한다. 이러한 문제를 해결하기 위해 JDBC 라는 자바 표준이 등장 JDBC란? J.. 2024. 6. 18.
Junit을 이용한 단위 테스트 목차 1. 테스트 코드를 작성해야 하는 이유 2. JUnit5 란? 3. Assertj 4. 수동테스트 VS 자동화된 케이스 5. 테스트 케이스 세분화 하기 테스트 코드란? 테스트 코드는 소프트웨어의 기능과 동작을 테스트하는데 사용되는 코드이다. 테스트 코드는 개발자가 작성한 코드를 실행하고 예상된 결과가 나오는지 확인하는데 사용된다. 1. 테스트 코드를 작성해야 하는 이유 코드의 품질 향상 테스트 코드를 통해 발생 가능성 있는 버그를 사전에 찾아내고 방지할 수 있으며, 이는 개발자가 신뢰할 수 있는 코드를 작성할 수 있게 도와준다. 문서화 테스트 코드는 개발자가 기능의 동작 방식을 이해하는데 도움이 되는 문서로 작용할 수 있다. 테스트 코드를 통해 코드의 예상 동작을 명확하게 확인할 수 있으며, 개발자.. 2023. 8. 13.