728x90 Tech73 Spring Boot 3.x.x 버전에서 TestContainers 적용하기 보호되어 있는 글 입니다. 2024. 4. 30. Artillery를 사용한 성능 테스트 개요 먼저 Node.js 설치해준다. https://nodejs.org/en/download Node.js — Download Node.js® Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 각자 해당하는 것을 설치하면 된다! npm 으로 artillery 설치! 설치 후 버전 확인해보기 루트 폴더 아래 yaml 파일 생성하기 나는 인텔리제이 터미널에서 실행했다. 이는 성능 테스트를 실행시킴과 동시에 결과를 json 파일에 리포팅하는 것이다. 결과를 살펴보면 p95: 95% 사용자 p99: 99% 사용자 어느정도의 레이턴시를 느끼고 있는지 이를 알 수 있다. html 파일로 변경하는 명령어이다. 브라우저를 파.. Tech/Spring 2024. 4. 1. [백엔드 애플리케이션 성능 테스트하기] 네트워크 보호되어 있는 글 입니다. 2024. 3. 30. [백엔드 애플리케이션 성능 테스트하기] 운영체제와 서버 차원 보호되어 있는 글 입니다. 2024. 3. 29. [백엔드 애플리케이션 성능 테스트하기] 지연시간(Latency)과 처리량(Throughput) 보호되어 있는 글 입니다. 2024. 3. 27. Spring으로 게시판 만들기(2) : 게시글 조회 게시글을 조회할 때는 여러가지 옵션이 있다. 1. 카테고리 (전체, 주인 찾아요, 물건 찾아요) 분실물 찾기용 커뮤니티라서 카테고리가 이렇게 설정된 점 참고 2. 검색어 3. 해결한 글 제외하기 4. 물놀이 장소 선택 총 4가지 옵션을 통해 조회를 수행할 수 있다. 이 기능을 구현할 때에는 Querydsl을 사용해서 구현했다. 다른 부분은 생략하고 Repository 부분만 중점적으로 다루려고 한다. 전체 코드 더보기 public Slice getLostFoundBoardListBySlice(LostFoundBoardListReqDto lostFoundBoardListReqDto, Pageable pageable) { JPAQuery query = queryFactory .select( Projectio.. Tech/Spring 2024. 3. 19. 서블릿(Servlet)이란? 1. Servlet (서블릿) 서블릿은 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술을 말한다. 간단하게 서블릿은 자바를 사용해 웹을 만들기 위해 필요한 기술이다. 클라이언트가 어떤 요청을 하면 그에 대한 결과를 다시 전송해줘야 하는데, 이러한 역할을 하는 자바 프로그램이다. 예를 들어, 어떤 사용자가 로그인하려고 할 때 사용자는 아이디와 비밀번호를 입력하고 로그인 버튼을 누른다. 그때 서버는 클라이언트의 아이디와 비밀번호를 확인하고 다음 페이지를 띄워줘야하는데 이 역할을 수행하느 것이 서블릿(Servlet)이다. Servlet 특징 1. 클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트 2. HTML을 사용해 요청에.. Tech/Java 2024. 3. 17. @EntityGraph와 Fetch Join Fetch Join 실무에서는 부가적으로 가져올 데이터들이 많아서 N+1문제가 많이 발생한다 -> fetch join으로 해결 N+1 문제란? 모든 Member를 가져오기 위한 쿼리(쿼리수 1개) + 각 Member의 Team이 모두 다르다면 Member 1명 당 Team 프록시 객체 초기화를 하기 위한 쿼리(쿼리수 n개) N+1 문제 해결: Fetch Join Member와 관련된 Team 모두 Select절에서 조회해 한방의 쿼리로 가져온다. MemberRepository 예시 @Query("select m from Member m join fetch m.team") List findMemberWithTeam(); 이렇게 되면 select절에 Member 필드 값 뿐만 아니라, Team의 필드 값까지.. Tech/JPA 2024. 3. 12. @Modifying과 벌크 연산 @Modifying 이란? Spring Data JPA에서 사용되는 어노테이션으로, @Query 어노테이션을 통해 작성되어 변경이 일어나는 쿼리(Insert, Update, Delete)를 실행할 때 사용된다. @Modifying을 변경이 일어나는 쿼리와 함께 사용해야 JPA에서 변경 감지와 관련된 처리를 생략하고 더 효율적인 실행이 가능하다. JPA에서 벌크 연산은 단건 데이터를 변경(더티 체킹)하는 것이 아닌, 여러 데이터에 변경 쿼리를 날리는 작업을 말한다. @Modifying 어노테이션을 사용하여 벌크 연산을 수행할 수 있다. 예를 들어 게시글 아이디(lostFoundBoardId)를 통해 해당 게시글의 댓글을 모두 삭제하기 위해 벌크 연산을 수행할 수 있다. @Modifying(clearAuto.. Tech/JPA 2024. 3. 10. 스프링 순환 참조 에러 발생 및 해결 방법 사전 지식 @Bean 특징 @Bean이 붙은 메서드는 싱글톤이므로 여러번 호출되어도 동일한(하나의) 객체만 return된다고 알고있지만, @Configuration 클래스 내부에서 지정된 @Bean 메서드에만 한정되는 이야기이다. @Configuration 메서드 내부에 있지 않은 @Bean 메서드는 싱글톤을 보장받을 수 없다. 싱글톤 보장 원리 CBLIB(바이트 코드 조작 라이브러리)를 이용하여, @Configuration이 붙은 클래스를 상속한 임의의 클래스를 만들고 그 임의의 클래스를 빈으로 등록한다. 그렇게 빈으로 등록된 클래스 내부의 @Bean 메서드들은 Spring Container에 존재한다면 Spring Container에 존재하는 빈을 반환하고, 없다면 새로 생성하여 빈으로 등록 후 반환.. Tech/Spring 2024. 3. 1. 자바의 예외 처리 1. 자바에서 예외 처리 방법 자바에서 예외 처리란, 프로그램 실행 중 발생할 수 있는 예기치 못한 예외 발생에 대비한 코드를 작성하는 것이며, 예외 처리의 목적은 예외의 발생으로 인한 실행 중인 프로그램의 갑작스런 비정상 종료를 막고 실행 상태를 유지할 수 있도록 함 예외 처리(Exception Handling) 정의: 프로그램 실행 시 발생할 수 있는 예외 발생에 대비한 코드를 작성하는 것 목적: 프로그램의 비정상 종료를 막고, 정상적인 실행 상태를 유지하는 것 자바의 예외 처리는 예외가 발생한 메소드 내에서 직접 처리하는 방법 예외가 발생한 메소드를 호출한 곳으로 예외 객체를 넘겨주는 방법 사용자 정의 예외를 생성해서 처리하는 방법 1. 예외가 발생한 메소드 내에서 직접 처리 (try - catch.. Tech/Java 2024. 2. 26. Spring으로 게시판 만들기(1) : 개요 현재 진행하고 있는 프로젝트에서 분실물 찾기 게시판을 담당하여 구현하고 있다. 어떻게 보면 CRUD밖에 없어서 시시하다고 생각할 수 있겠지만 기본은 언제나 중요하다고 하니까. 스스로 기본기가 부족하다고 느꼈고 차근차근 다시 쌓아볼 예정이다. 아직 프로젝트를 완성하진 못했지만 지금까지 구현한 기능에 대해 정리하고, 고민했던 거나 궁금했던 걸 기록해보기 위한 목적으로 작성하게 되었다 ꒰⑅◡̎ ꒱𓈒𓏸 데이터베이스 우선 데이터베이스 설계부터 살펴보면, LostFoundBoard: 분실물 찾기 게시판 LostFoundBoardImage: 분실물 찾기 게시판 이미지 Comment: 분실물 찾기 게시판 댓글 (현재 고민하고 있는 게 초기에는 불필요한 관계라고 판단하여 Comment에서 Member 연관관계를 맺지 않.. Tech/Spring 2024. 2. 22. 이전 1 2 3 4 5 6 7 다음 728x90 반응형