본문 바로가기

개발중/Spring

(88)
Spring Project 의 MyBatis 쿼리를 Console 에 찍는 설정 (log4j2) 의존성 추가 - 로그 관련 라이브러리를 추가합니다. org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1 1.16 log4j2 파일 - resource 하위에 log4j2.xml 파일을 생성합니다. - 파일 안에 아래와 같이 코드를 작합니다. DataBase 접속 정보에 대한 수정 변경 전 spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.hikari.jdbc-url=jdbc:mysql://localhost:3306/binsoo_db?serverTimezone=UTC&characterEncoding=UTF-8 spring.datasource.hikari.username..
Spring 환경에서 프로파일 별 효율적 코드 관리 전략 안녕하세요, 여러분! 오늘은 Spring 환경에서 프로파일(Profile)을 활용하여 코드를 효율적으로 관리하는 전략에 대해 이야기하려 합니다. 특히, 코드 유틸리티 클래스를 활용하여 다양한 환경(로컬, 프로덕션 등)에 맞게 유연하게 설정을 관리하는 방법을 중점적으로 다룰 것입니다. 공통적인 내용의 중앙화 개발 과정에서 중복되는 코드 관리는 큰 골칫거리가 될 수 있습니다. 이를 해결하기 위해 CodeUtils라는 추상 클래스를 정의했습니다. 이 클래스는 공통적으로 사용되는 코드 목록(initCodeList)을 정의하고, 실제 코드를 조회하는 getCode 메소드를 추상 메소드로 선언함으로써, 구체적인 구현을 상속받는 클래스에 위임합니다. @Component public abstract class Code..
SocketException의 수수께끼: 첫 번째 API 호출에서만 왜 실패할까? ( retrofit java.net.socketexception connection reset ) 우리 프로젝트에 내가 Retrofit 설정을 했는데, 이상한 현상 (?) 이 나타났다. 프론트 개발자분께서 이슈를 전달해주기를 아래와 같이 ... 컴퓨터를 껏다가 키고 최초로 웹 프로젝트를 기동시 아래와 같은 에러가 나요. 근데 2, 3, 4 ... 번째는 이런 에러가 안나요. !!!!!!!!! 😡 참고로 java.net.SocketException: Connection reset by peer 이라는 예외는 네트워크 연결 중에 원격 피어(peer)가 연결을 강제로 닫았음을 나타냅니다. 의심할 수 있는 상황은 아래의 상황들이었습니다. 의심해볼 만한 사항 테스트 결과 원격 서버가 과부하 상태거나 다운되어 있음 개발 서버이고 부하 상태가 전혀 없었기 때문에 제외 네트워크 이슈가 발생하여 데이터 전송이 중단됨..
@RequiredArgsConstructor 와 @Autowired 의 차이점 @RequiredArgsConstructor와 @Autowired는 둘 다 Spring Framework와 관련된 주석(annotations)이지만, 주로 Lombok과 Spring Framework에서 사용되며, 각각의 목적과 작동 방식이 다릅니다. RequiredArgsConstructor (Lombok) 이 주석은 Lombok 라이브러리에서 제공합니다. 클래스 내에 final 또는 @NonNull로 선언된 필드에 대한 생성자를 자동으로 생성해 줍니다. 이렇게 생성된 생성자는 필요한 의존성을 주입 받는 데 사용될 수 있습니다. Spring에서 이 생성자를 사용하여 생성자 기반의 의존성 주입을 할 수 있습니다. @RequiredArgsConstructor public class MyService { p..
에러 - Plugin 'org.springframework.boot:spring-boot-maven-plugin:' not found Plugin 'org.springframework.boot:spring-boot-maven-plugin:' not found Inspection info: Reports resolution problems in a Maven model org.springframework.boot maven 버전을 확인하고 https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin 버전을 찾아서 추가한다. 2.7.13 인식하지 못하는 에러가 해결되었다
[Spring] JSch 를 활용해 특정 서버에 파일 업로드하기 특정 서버에 파일 업로드하기 이 코드는 JSch 라이브러리를 사용하여 SFTP 프로토콜로 원격 서버에 접속하여 파일을 다운로드하는 기능을 구현한 것입니다. JSch는 Java에서 SFTP, SCP, SSH 등을 지원하는 라이브러리로, 이를 사용하여 원격 서버로 접속하고 파일을 다운로드합니다. JSch 객체를 생성합니다. JSch jsch = new JSch(); SFTP 서버에 접속하기 위한 Session 객체를 생성합니다. Session session = jsch.getSession("root", "210.118.213.148", 22); 호스트 키 체크를 하지 않도록 설정합니다. (보안상 권장하지 않습니다) session.setConfig("StrictHostKeyChecking", "no"); SF..
[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 채널을 열어..
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에서 다양한 유형의 데이터를 더 잘 정의..