본문 바로가기

개발중

(617)
[Java] 객체 매핑 라이브러리 ModelMapper ModelMapper ModelMapper는 Java 객체 간 속성 값을 자동으로 매핑해주는 라이브러리이다. 주로 데이터 전송 객체(DTO)와 도메인 객체 간의 변환 작업에 사용된다. 이 라이브러리를 사용하면 수동으로 속성 값을 복사하는 작업을 줄이고 코드를 간결하게 유지할 수 있다. ModelMapper의 주요 특징 - 자동 매핑: 소스 객체와 대상 객체의 동일한 이름의 프로퍼티를 자동으로 매핑해줍니다. 이를 통해 수동으로 데이터를 복사할 필요가 없다. - 유연한 매핑 전략: 속성 이름이 다르거나 매핑 전략이 다른 경우, ModelMapper를 확장하여 사용자 정의 매핑 전략을 구현할 수 있다. - 높은 성능: ModelMapper는 매핑 과정을 최적화하기 위해 동적 코드 생성 및 캐싱을 사용하여 높은..
[CentOS 7] MYSQL 방화벽 설정 해제 mysql> SELECT user, host FROM user; +------------------+-----------+ | user | host | +------------------+-----------+ | root | % | | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 이미 root 계정이 외부에서 접속할 수 있도록 설정되어 있습니다. root 계정의 호스트가 %로 설정되어 있으므로, 모든 호스트에서 접속이 가능합니다. 그러나, MySQL 서버가 방화벽에 의해 차단되어 있다면 외부 접속이..
[MySQL8] Authentication method 'caching_sha2_password' not supported by any of the available plugins.| Authentication method 'caching_sha2_password' not supported by any of the available plugins.| 이 오류는 MySQL 8.0 이상에서 기본 인증 플러그인이 caching_sha2_password로 변경되었기 때문에 발생한다. Toad 또는 사용 중인 클라이언트가 이 인증 메서드를 지원하지 않는 경우 이 오류가 발생할 수 있다. 이 문제를 해결하려면, MySQL 서버에서 사용자를 만들 때 인증 플러그인을 이전 버전의 mysql_native_password로 설정해야 한다. 먼저 MySQL에 로그인한 다음, 다음 명령을 실행하여 사용자를 생성하거나 기존 사용자를 변경해야한다: 생성시 플러그인을 변경 CREATE USER 'your_use..
[Spring] org.springframework.data.domain의 PageImpl 과 Page<T> 에 대해서 org.springframework.data.domain.Page org.springframework.data.domain.PageImpl 두 클래스가 궁굼했다. org.springframework.data.domain.Page Page는 인터페이스로, 분할된 데이터 집합을 나타냅니다. 이 인터페이스는 페이징 및 정렬 기능을 제공하며 일반적인 페이지 처리 작업에 사용됩니다. 장점 추상화된 인터페이스로, 여러 구현체를 제공할 수 있어 유연성이 있습니다. 애플리케이션 전반에 걸쳐 일관된 페이징 처리를 위해 사용할 수 있는 표준 인터페이스입니다. 단점 인터페이스이므로 직접 인스턴스화하거나 사용할 수 없습니다. 대신 구현 클래스를 사용해야 합니다. org.springframework.data.domain.Pag..
[@Transactional] Connection is read-only. Queries leading to data modification are not allowed Connection is read-only. Queries leading to data modification are not allowed 이 에러 메시지는 "Connection is read-only. Queries leading to data modification are not allowed"로, 데이터베이스 연결이 읽기 전용(read-only) 모드로 설정되어 있어 데이터 수정을 허용하지 않는 쿼리가 실행되었음을 나타낸다. 읽기 전용 모드 @Transactional(readOnly = true) INSERT, UPDATE, DELETE와 같은 작업 시도해서 에러 발생 해결 방법 데이터베이스 연결 설정을 검토하여 읽기 전용 모드가 아닌 읽기-쓰기 모드로 설정되어 있는지 확인 읽기 전용 모드를 사용해..
[MySQL] EXPLAIN (실행계획) 에 나오는 Extra 분석하기 EXPLAIN의 Extra ? MySQL의 EXPLAIN은 SQL 쿼리의 실행 계획을 분석하고 최적화하는 데 도움이 되는 도구입니다. EXPLAIN의 결과 중 Extra 열에는 실행 계획에 대한 추가 정보가 표시됩니다. 아래는 일반적으로 Extra 열에 나올 수 있는 값들과 그 의미입니다. Using index 쿼리가 인덱스를 사용하여 필요한 데이터를 가져올 수 있음을 나타냅니다. 테이블의 행을 읽지 않고도 인덱스만으로 결과를 얻을 수 있는 상황입니다. 이는 효율적인 실행 방식입니다. Using where WHERE 절의 조건을 사용하여 행을 필터링하는 작업이 필요함을 나타냅니다. 이는 행을 읽은 후에 추가적으로 필터링 작업이 필요하다는 것을 의미합니다. Using temporary 쿼리 실행을 위해 임..
[스프링] TDD(Test-Driven Development) 필요한 이유와 방법론에 대해 TDD(Test-Driven Development)란, 테스트 주도 개발 방법론으로서, 소프트웨어 개발 과정에서 테스트 케이스를 먼저 작성한 후, 해당 테스트를 통과하는 코드를 작성하는 개발 방식입니다. 이를 통해 높은 품질의 코드를 작성하고, 잠재적인 버그를 줄이며, 리팩토링과 유지보수를 용이하게 할 수 있습니다. TDD가 필요한 이유 코드 품질 향상 TDD를 통해 높은 품질의 코드를 작성할 수 있습니다. 테스트 케이스를 먼저 작성하면 개발자는 코드를 작성하기 전에 요구사항과 기능에 대해 명확하게 이해할 수 있습니다. 버그 감소 TDD는 개발 초기 단계부터 버그를 발견하고 수정할 수 있게 도와줍니다. 이는 장기적으로 시간과 비용을 절약할 수 있습니다. 유지보수 용이 테스트 케이스가 작성되어 있으면, 코..
intellij 에서 maven install 될 때 generate sources and update folders 자동으로 되게 하는 설정 intellij 에서 maven install 될 때 generate sources and update folders 자동으로 되게 하는 설정 IntelliJ IDEA를 실행하세요. 상단 메뉴에서 File > Settings를 선택하거나 (Windows/Linux 사용자의 경우) IntelliJ IDEA > Preferences를 선택하세요 (Mac 사용자의 경우). 왼쪽 패널에서 Build, Execution, Deployment > Build Tools > Maven > Importing을 찾아 선택하세요. 오른쪽 패널에서 다음 설정을 찾아 활성화하거나 비활성화하세요. Automatically download: 이 설정을 활성화하면, 필요한 Maven 플러그인 및 라이브러리가 자동으로 다운로드됩니다...