본문 바로가기

JAVA SPRING5

API 부하테스트 툴 ngrinder 성능테스트, 부하테스트 말을 많이 들어봤지만 제대로 해본 적이 없었습니다.그래서 이번에 한번 해보자! 하고 이것저것 찾아보면서 해봤던 기록을 남깁니다. 우선 성능테스트 툴은 다양한데요. ngrinder, Artillery, JMeter 등등 많습니다. 제일 처음해본건 JMeter 인데 한번에 잘 안되더라구요 ㅎ 그때 몇시간 해보다가 다음에 해보자 하고 아직 못해봤고.. 이번에 다시 해보자! 했을 때 선택한 툴은 바로 ngrinder 입니다.  ngrinder 는 네이버에서 오픈소스로 공개한 부하테스트 툴 입니다. 이 녀석도 세팅에만 한참이 걸렸습니다.... 오류가 어찌나 다양하게 나는지 ㅋㅋ 세팅 및 사용법 정리해보겠습니다. 우선 저는 intel mac 환경입니다.  간단히 개념 정리!Controller.. 2024. 7. 8.
Spring Batch 5 ItemProcessor 에서 return list 스프링 배치를 사용하면서 processor 에서 1개의 값을 리턴하는 것이 아닌 list 를 리턴해야 하는 상황이 생겼다.여기저기 검색해보면서 하는데 그대로 따라하면 타입 때문에 오류가 났다. 보니까 spring batch 5 를 사용하고 있어서 조금 달라진 것 같았다. 어떻게 처리했는지 정리해보겠다. spring boot 3 와 spring batch 5 를 사용했다. ItemProcessor @Component@RequiredArgsConstructorpublic class ReportProcessor implements ItemProcessor> { @Override public List process(Target item) throws Exception { /* 최종 write .. 2024. 6. 2.
커넥션, 트랜잭션 간단 정리 김영한 선생님의 강의로DB 커넥션, 커넥션 풀, DataSource, Transaction, Transaction Manager 에 대해 공부한 내용을 정리해본다. DB 커넥션과 세션애플리케이션(스프링부트) 에서 데이터베이스 에 접근할 때 데이터베이스 서버와 커넥션을 가지게 된다.커넥션이 생기면 데이터베이스 서버에는 세션을 만든다. 이 세션은 커넥션과 1:1 이고 커넥션을 통한 요청을 맺어진 세션에서 처리한다.세션은 DB 에서의 트랜젝션을 시작하고 sql 을 실행하고 커밋, 롤백을 해서 트랜젝션을 종료한다. 커넥션 풀커넥션을 만들 때 비용이 드는데, 모든 sql 에 대해 커넥션을 만들면 성능이 떨어진다. 그래서 커넥션 풀 이라는 것을 사용한다.커넥션 풀은 커넥션을 얻는 방법 중 하나이다.애플리케이션이 시.. 2024. 6. 2.
Java 예외 처리 자바 기본 문법에서 예외에 대해 내가 아는 지식과 두잇 자바 완전 정복 책과 김영한 선생님의 강의를 종합해서 간단히 정리해본다.오류 중 개발자가 해결할 수 있는 오류를 '예외(exception)' 라고 한다. 이 예외를 처리하는 것을 '예외 처리' 라고 한다.1. 예외 와 에러 평소에 예외와 에러를 크게 구분하지 않고 사용했다. 하지만 두가지는 구분이 필요하다.예외: 개발자가 오류가 발생했을 때 어떻게 할 지 정할 수 있다. 처리 가능하다.에러: 메모리가 꽉 찼을 때, 쓰레드가 죽었을 때 등의 상황처럼 개발자가 처리할 수 없는 오류이다.  2. Checked Exception 과 Unchecked ExceptionException 클래스는 일반 예외 클래스와 실행 예외 클래스로 나뉜다. 일반 예외, 체크.. 2024. 5. 27.
Spring Boot CORS 설정 cors 때문에 고생했어서 기록을 남기기 위해 적습니다.. 현재 상황 React 프런트 Spring Boot 백엔드 처음에는 서버 사이드 랜더링으로 시작했기 때문에 로그인 방식이 세션이었다가 나중에 Spring Security 로 변경했다. Spring Security 사용 전 WebMvcConfigurer - addCorsMapping 으로 바로 해결이 됐었다. allowedOrigins 에 프런트 주소 넣으면 된다. Spring Security 사용 후 아니 갑자기 프런트에서 또 cors 오류가 난다고 한다.. 이거 때문에 몇시간을 고생했다. 우선 해결 방법부터 말하자면 WebSecurityConfig - SecurityFilterChain 을 만들 때 cors() 를 추가해줬다. Spring Sec.. 2023. 9. 3.