개발중624 [Spring] JSch 를 활용해 특정 서버에서 파일 가져오기 특정 서버에서 파일 가져오기 이 코드는 JSch 라이브러리를 사용하여 SFTP 프로토콜로 원격 서버에 접속하여 파일을 다운로드하는 기능을 구현한 것입니다. JSch는 Java에서 SFTP, SCP, SSH 등을 지원하는 라이브러리로, 이를 사용하여 원격 서버로 접속하고 파일을 다운로드합니다. JSch 객체를 생성하고 SFTP로 접속할 세션을 설정합니다. JSch jsch = new JSch(); Session session = jsch.getSession("root", "111.111.111.111", 22); session.setConfig("StrictHostKeyChecking", "no"); session.setPassword("1234"); session.connect(); SFTP 채널을 열어.. 개발중/Spring 2023. 7. 26. [JPA] Entity 가 Update 되는 과정에 대해서 아니 JPA 에서 UPDATE 되는 과정 JPA(Java Persistence API)에서 업데이트 과정은 다음과 같이 이루어집니다: 1. 엔티티 조회 먼저 업데이트할 엔티티를 데이터베이스에서 조회합니다. 이는 주로 `EntityManager`를 사용하여 해당 엔티티를 조회하는 쿼리를 실행하는 방식으로 이루어집니다. 2. 엔티티 수정 조회한 엔티티를 수정합니다. 이때 JPA는 영속성 컨텍스트(Persistence Context)에서 관리하는 엔티티를 수정합니다. 수정은 엔티티의 필드를 변경하거나 메소드를 호출하여 이루어질 수 있습니다. 3. 트랜잭션 커밋 업데이트된 엔티티를 데이터베이스에 반영하기 위해 트랜잭션을 커밋합니다. 이때 JPA는 변경된 엔티티를 감지하고 해당 엔티티에 대한 UPDATE SQL 문을 .. 개발중/Java Persistence API (JPA) 2023. 6. 27. Swagger 2 와 Swagger 3의 차이점 알아보기 Swagger 2 와 Swagger 3의 차이점 알아보기 Swagger는 API 문서를 자동화하고 시각화하기 위한 도구입니다. Swagger 2와 Swagger 3 (OpenAPI 3)는 주로 스펙 및 기능 차이에 대한 업데이트가 있습니다. 이 차이점을 간략하게 살펴보겠습니다. 스펙 버전 Swagger 2는 Swagger 스펙 2.0을 따릅니다. Swagger 3 (OpenAPI 3)는 OpenAPI 스펙 3.0.x를 따릅니다. 구조 변경 Swagger 3에서 구조와 속성 이름이 변경되어 더 명확하고 간결해졌습니다. 새로운 데이터 유형 및 스키마 Swagger 3에서는 oneOf, anyOf, not 등의 추가 스키마 키워드를 사용할 수 있습니다. 이를 통해 API에서 다양한 유형의 데이터를 더 잘 정의.. 개발중/Spring 2023. 4. 4. Try to run Maven import with -U flag (force update snapshots) 에러 아래와 같은 에러 발생 ! Cannot resolve plugin org.apache.maven.plugins:maven-site-plugin:3.3 Try to run Maven import with -U flag (force update snapshots) 이 에러는 Maven이 org.apache.maven.plugins:maven-site-plugin:3.3 플러그인을 찾을 수 없다는 것을 나타낸다. 이 문제는 일반적으로 다음과 같은 이유로 발생한다. 인터넷 연결 문제 Maven은 원격 저장소에서 플러그인을 다운로드하려고 시도하며, 연결 문제가 있으면 실패합니다. 저장소 구성 문제 설정된 원격 저장소에 플러그인이 없거나 저장소 설정에 문제가 있을 수 있습니다. 캐시 실패 이전에 실패한 다운로드가 .. 개발중/Troubleshooting 2023. 4. 4. RepackageMojo 이란 ? RepackageMojo RepackageMojo는 Spring Boot Maven 플러그인의 일부로, Spring Boot 애플리케이션을 실행 가능한 "fat" JAR 또는 WAR 파일로 패키징하는 작업을 수행한다. 이 "fat" JAR 또는 WAR 파일에는 애플리케이션 코드와 함께 모든 필요한 의존성이 포함되어 있어, 애플리케이션을 배포하거나 실행하기 쉽게 만든다. RepackageMojo가하는 작업 프로젝트의 모든 의존성을 포함하는 실행 가능한 JAR 또는 WAR 파일을 생성한다. 애플리케이션의 메인 클래스를 자동으로 검색하거나 사용자가 지정한 메인 클래스를 사용하여 실행 가능한 JAR 또는 WAR 파일의 메인 클래스를 설정한다. 결과물을 생성할 때 필요한 리소스 및 메타데이터를 포함한다. 이러한 .. 개발중/Spring 2023. 4. 4. org.apache.maven.plugins 빨간줄 뜨며 에러가 난다면 ? 😈👿 Maven 에러 아래 두 개의 라이브러리에서 에러가 자꾸 난다면 ? org.apache.maven.plugins:maven-deploy-plugin:2.8.2 org.apache.maven.plugins:maven-site-plugin:3.3 방법1 ) Maven 레포지토리 캐시를 정리하십시오. Maven은 다운로드한 종속성을 로컬 레포지토리에 캐싱한다. 때로는 이 캐시가 손상되거나 누락된 파일을 포함할 수 있으며, 이로 인해 에러가 발생할 수 있다. 로컬 레포지토리를 삭제하거나 특정 플러그인에 대한 캐시를 제거하여 문제를 해결할 수 있다. 일반적으로 로컬 레포지토리는 사용자 홈 디렉토리의 .m2/repository 폴더에 위치해 있다. 방법2 ) Maven 설정을 확인하십시오. 프로젝트 또는 전역 설정.. 개발중/Spring 2023. 4. 4. 웹 애플리케이션 서버와 인가 서버를 분리하여 관리할 경우 장단점 ( OpenID Connect, OAuth 2.0) 웹 애플리케이션 서버와 인가 서버를 분리하여 관리할 경우 장단점 최근에 웹 애플리케이션 서버와 인가 서버를 분리하여 관리하는 방식에 대해 알아보았습니다. 이전에는 스프링 시큐리티를 사용하여 하나의 웹 애플리케이션에서 인증과 인가를 처리했습니다. 하지만, OpenID Connect와 OAuth 2.0과 같은 최신 인증 프로토콜을 공부하면서 인증 사용자 통합과 인증 서버 분리의 장단점을 알아보았습니다. 장점 보안 강화 인가 서버를 별도로 관리하면 웹 애플리케이션 서버와 인증 데이터를 격리할 수 있어 보안을 향상시킬 수 있습니다. 인가 서버가 다른 시스템과 분리되어 있으면, 공격자가 웹 애플리케이션 서버에 침투해도 인증 데이터에 액세스하기 어렵습니다. 중앙 집중식 인증 관리 인가 서버를 중앙에서 관리하면 여러.. 개발중/Spring Security 2023. 4. 4. [Java] 객체 매핑 라이브러리 ModelMapper ModelMapper ModelMapper는 Java 객체 간 속성 값을 자동으로 매핑해주는 라이브러리이다. 주로 데이터 전송 객체(DTO)와 도메인 객체 간의 변환 작업에 사용된다. 이 라이브러리를 사용하면 수동으로 속성 값을 복사하는 작업을 줄이고 코드를 간결하게 유지할 수 있다. ModelMapper의 주요 특징 - 자동 매핑: 소스 객체와 대상 객체의 동일한 이름의 프로퍼티를 자동으로 매핑해줍니다. 이를 통해 수동으로 데이터를 복사할 필요가 없다. - 유연한 매핑 전략: 속성 이름이 다르거나 매핑 전략이 다른 경우, ModelMapper를 확장하여 사용자 정의 매핑 전략을 구현할 수 있다. - 높은 성능: ModelMapper는 매핑 과정을 최적화하기 위해 동적 코드 생성 및 캐싱을 사용하여 높은.. 개발중/Java 2023. 3. 22. [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 서버가 방화벽에 의해 차단되어 있다면 외부 접속이.. 개발중/MYSQL 2023. 3. 21. [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.. 개발중/MYSQL 2023. 3. 21. [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.. 개발중/Spring 2023. 3. 21. [@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와 같은 작업 시도해서 에러 발생 해결 방법 데이터베이스 연결 설정을 검토하여 읽기 전용 모드가 아닌 읽기-쓰기 모드로 설정되어 있는지 확인 읽기 전용 모드를 사용해.. 개발중/Troubleshooting 2023. 3. 20. 이전 1 ··· 4 5 6 7 8 9 10 ··· 52 다음