프로젝트 환경이 내부망이라 직접 캡쳐하진 못했고, 이 부분은 기록해놓고 싶어서 기억을 더듬어 올려보려고 한다.프로젝트 서버가 WebLogic이고 서버실행을 startWebLogic.cmd(예시)같은 파일을 돌려서 서버를 구동시켰다.서버는 잘 켜지고, 문제없지만 개발자는 로그를 봐야되는게 생명인데 복잡한 프로세스나 많은 쿼리가 돌아가는 화면을 실행시키면 로그가 모두 올라가서 짤리게 된다.(로그가 안 보임)진짜 너무너무 불편해서 이클립스 개발환경에서 직접 서버를 띄우고 로그도 볼 수 있게 하는 방법을 적어보려고 한다. 서버 실행1. External Tools Configurations... 2. Program > New Configuration 3. 경로/이름 입력Name: 사용자가 설정하면 됨Locat..
원래 테이블 수도 많아서 DBA 쪽에서 일괄적으로 해주는 작업이라고 들었는데, 기존에 시스템에서 이행된 쿼리라 작업이 되지 않아 쿼리 PLAN이 최적화되지 않았다고 들었다.업무 중 3개의 테이블을 조인하여 조회쿼리를 만들어서 조회해보니 조회시간이 20s 이상 걸리는 상황이 생겼는데, 해당 쿼리를 5s 이하로 줄인 방법에 대해 적어보려고 한다. 사용 명령어 ANALYZE TABLE [테이블명] COMPUTE STATISTICS;DB 성능 튜닝에서 ANALYZE TABLE [테이블] COMPUTE STATISTICS를 사용하면 쿼리 최적화에 필요한 최신 통계 정보를 수집하여 옵티마이저가 효율적인 실행 계획을 수립할 수 있게 도와준다고 한다. 여기서 통계 정보는 테이블의 데이터 분포, 인덱스 사용 빈도, 행의..
테스트 코드를 작성하고 테스트하는 중, 갑자기 JPA관련 오류가 나왔다. 처음 보는 부분이고 테스트 코드에 능숙하지 않아서 당황... 에러 로그java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@33bdd01 testClass = dev.backend.wakuwaku.domain.oauth.controller.OauthControllerTest, locations = [], classes = [dev.backend.wakuwaku.WakuWakuApplication], contextInitializerClasses = [], activeProfiles = [], propert..
REST Docs 관련 테스트 코드 에러 에러 로그java.lang.IllegalArgumentException: urlTemplate not found. If you are using MockMvc did you use RestDocumentationRequestBuilders to build the request? at org.springframework.util.Assert.notNull(Assert.java:172) at org.springframework.restdocs.request.PathParametersSnippet.extractUrlTemplate(PathParametersSnippet.java:126) at org.springframework.restdocs.request.PathPa..
에러 로그required: no arguments found: java.lang.String,java.lang.Long reason: actual and formal argument lists differ in length 에러 내용delete() 메서드가 기대하는 매개변수의 개수와 실제 전달된 매개변수의 개수가 일치하지 않아 발생delete() 메서드는 매개변수 없이 호출되어야 하는데 두 개의 매개변수인 String과 Long을 전달하고 있다. 기존 코드@Test@DisplayName("회원 삭제 테스트")void delete() throws Exception { // Given Long memberId = 1L; // When/Then mockMvc.perform(del..
자바 스프링 오류 해결 오류 로그 java.lang.IllegalArgumentException: Name for argument of type [java.lang.Long] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag. 오류 내용 스프링이 매개변수 이름을 알 수 없어서 발생하고, 대부분 컴파일러가 메서드의 매개변수 이름을 기본적으로 포함하지 않을 때 발생한다. 해결방법 1. gradle 스크립트에 컴파일 시에 '-parameters' 플래그를 추가하여 매개변수 이름을 포함하도록 설정 build.gradle tasks.w..
생성시간/수정시간 관리와 자동화하기 스프링 웹 프로젝트 중 생성/수정시간(날짜)에 대해 관리를 하기 위해서는 어떻게 해야될까? 아래와 같이 ERD 설계를 했을 때모든 테이블엔 createDateTime과 lastModifiedDateTime 컬럼이 존재특정 테이블에만 status 컬럼이 존재한다. 위 테이블들에서 모두 해당되는 reateDateTime과 lastModifiedDateTime 컬럼을 모두 추가해줘도 상관은 없지만, 테이블이 많아질수록 관리도 어렵고 길어질 것이다. 그래서 아래와 같이 MemberEntity(Member테이블)로 예를 들어보자면, Entity와 DTO에서 항상 선언해서 사용하는 것보다, 생성시간/수정시간만 따로 관리하는 BaseEntity를 만들어 MemberEntity가 상..
MySQL 설정 오류 해당 오류 Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [org.hibernate.dialect.MySQL5InnoDBDialect] 오류 이유 Hibernate가 MySQL 데이터베이스와 상호 작용할 때 발생하는 것으로, org.hibernate.dialect.MySQL5InnoDBDialect 클래스를 로드할 수 없음. 1. Hibernate 버전 호환성: 사용 중인 Hibernate 버전과 MySQL 버전 사이에 호환성 문제가 있을 수 있음. Hibernate 버전이 MySQL 버전을 지원하지 않는 경우 이러한 오류가 발생할 수 있음. 2. 의존..