본문 바로가기

Spring9

AWS S3 연동방식 S3를 버전 업그레이드 작업을 하면서 연동 모듈을 수정할 일이 생겨 여기에 간단하게 정리합니다. 보안상 좋은지는 잘 모르겠지만 키 관리의 이슈로 인하여 저는 "Assum Role" 방식을 선택하여 진행 하였습니다. 1. DefaultCredentialsProvider (추천: 로컬/운영 공통) 환경 변수, 시스템 속성, AWS 프로필 파일(~/.aws/credentials), IAM 인스턴스 프로필 순으로 자격 증명을 자동으로 찾습니다. 코드를 수정하지 않고 환경에 맞춰 인증할 수 있어 가장 권장됩니다. Region region = Region.AP_NORTHEAST_2; S3Client s3Client = S3Client.builder() .region(region) .credentia.. 2026. 1. 29.
Swagger 적용 API 기반의 서비스를 개발하면 API 명세서를 별도로 만들어야 하는 경우가 많이 있는데, 나중에 만들다 보면 많이 귀찬은 부분이 생겨 프로젝트 초반에 정의하고 진행한다면 프로젝트 매뉴얼 작성할 때 편한 라이브러리 입니다.개인적으로는 모든 프로젝트에 강제로 적용하고 있으며, 보안 문제가 있는 사이트에서만 서비스 페이지를 삭제하는 형태로 많이 진행합니다. 개발 코드는 다음과 같습니다. 1. 먼저 Dependency 를 추가해 주시면 됩니다.implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.8.9' 현재 3.x 버전도 나오기는 하였는데 아직 미완성으로 보이고 가장 많이 사용하는 버전이 2.. 2025. 9. 12.
Git-Gradle 설치 및 배포 환경 구축 부분만을 보여 드렸지만 개인적으로 간단한 프로젝트를 하였습니다.이제 빌드를 통해 서비스를 올리려고 해서 git 설치 및 Gradle를 이용한 배포 파일 만드는 것을 설명 하려고 합니다. 1. Git 설치[root@blue ~]# dnf list git* ... git.x86_64 2.47.3-1.el10 appstream git-all.noarch 2.47.3-1.el10 appstream git-annex.x86_64 10.20250320-1.el10_0 epel ...[root@blue ~]# dnf install -y git[root@blue ~]# git -v git version 2.47.3 2. Gradle를 이용한 배포 환경 구축지금 개발은 gradle 기반으로 프로젝트를 구성하여 gradl.. 2025. 9. 9.
Slack을 이용하여 메세지 전송 슬랙을 통하여 메세지를 전송하기 위해서는 슬랙에 앱(봇)을 등록해야 되서 바로 전 글에서 슬랙 앱 등록 관래서 글을 올렸습니다.오늘은 등록된 앱을 호출(API 전송)하는 것을 설명하려고 합니다. API 규격서를 확인해 보니 Bearer를 이용한 인증(OAuth 2.0)을 사용하였고 데이터 전송은 Post 방식을 사용하였습니다.먼저 이전 글에서는 GET 방식의 유틸만 공객 하였는데 조금 보강하여 POST 방식의 모듈을 추가 하였습니다. public ResponseEntity postEntity(String url, MultiValueMap headers, Object body, Class responseDtoClass) { return restCli.. 2025. 9. 8.
Database 연결 설정 배치 프로그램에서 사용할 DB 연결 코드 입니다.수집된 데이터를 DB에 삽입하기 위해서 사용되며, MyBatis를 사용했습니다. 수집이라 JPA가 편할 수 있으나 최종적으로 사용하는 용도가 데이터의 연관 관계가 클 수 있어 Mybatis로 결정을 했습니다. 아래 코드는 개인 프로젝트 특성상 제가 현재 편한 스타일로 구성하였습니다. 실제 프로젝트에서는 조금 다르게 사용합니다. 예를 들면 MapperScan을 잘 사용하지 않습니다. 이렇게 하다보면 수정에 대한 요구가 많아 다른 방식으로 처리를 하게 됩니다.@MapperScan( basePackages = "com.demo.data.batch.**.dao" , sqlSessionTempl.. 2025. 9. 3.
Spring boot 외부 API 호출(수집) 기능 개발 배치 프로그램의 목적이 외부 데이터를 수집 하는 내용이라 API 호출 부분에 대한 내용을 먼저 합니다. 일반적으로 사이트 호출 하는 방법은 Java의 URL을 이용하여 순수하게 개발하는 것이 아니라면 RestClient, WebClient, RestTemplate 등을 사용을 하셨을 것입니다. 어느 것이 좋다는 없습니다. 다만 RestTemplate는 사라 지는 것으로 알고 있어 가능하면 최신 기술을 사용하거나 기본 기능을 사용하는 것을 권합니다. 나머지는 상황에 따른 취향과 편의성이라고 보여집니다. 저는 이번에 RestClient를 사용해 보지 않아 정리하면서 사용해 보려고 하는 것입니다. 1. Apache HttpClient는 성능 강화를 위하여 추가해서 사용을 하려고 합니다. 간단하게 쓸거라면 굳이.. 2025. 8. 28.
Spring boot Batch 프로그램 개발 1 개인적으로 프로그램 할일이 있어 간단한 스프링 배치 프로그램 개발하는 방법을 소개 하려고 합니다.개념에 관한 부분은 나중에 설명 하겠습니다. 급하게 찾아야 하는 분들은 인터넷에 잘 나와 있습니다. 검색하시면 됩니다. 1. 신규 프로젝트 생성후 "Spring Batch"를 선택해 주면 됩니다. 2. 세팅 후에 DB 설정을 먼저 하셔야 합니다. 아시는 분은 아시겠지만 DB 스키마는 라이브러리("spring-batch-core-...jar")에 있습니다. 여신 후 DB에 생성해 주시면 됩니다. 3. 저는 간략 버전을 만들거라서 "h2" DB를 사용하려고 합니다.build.gradle에 아래 디펜던시를 추가 하시면 됩니다.dependencies {... runtimeOnly 'com.h2database:.. 2025. 8. 26.
프로젝트 생성 및 Hello World 출력하기 Spring Initialize( https://start.spring.io/ )사이트에서 프로젝트를 생성하여 진행하는 것으로 앞에서 기술하였는데, 일반적으로는 개발 툴에서 진행을 합니다. 다만 IntelliJ 무료 버전에서는 지원을 하지 않아 사이트에서 생성을 하여 진행해야 합니다. 오늘은 개발툴에서 생성하고 "Hello World"까지 출력하는 것까지 하려고 합니다. 1. "File > New > Spring Starter Project"를 클릭합니다. 2. 앞에서 설명 했던 내역을기반으로 생성하시면 됩니다. AA는 생성시 Package 를 어떻게 할지 고민으로 생각보다 오래 걸리는 부분입니다. 일반적으로는 "{조직구분}.{조직명}.{프로젝트명}.{모듈명].."으로 많이 합니다. 다만 조금 큰 프로젝.. 2025. 8. 19.
Spring Boot 개발 하기... AA 입장에서 Spring boot 개발하다 보니 개발자와 약간의 차이가 있는 듯 하여 정답은 아니겠지만 개발에 대한 내용을 공유하려고 합니다. 아래는 AI를 이용하여 개발환경 세팅하는 방법을 질의 하고 나온 답변입니다. 틀린 부분은 없는데, 뭔가 부족해 보이는데 질문을 잘못해서 그런 것 같고...하나씩 진행하면서 AI에게도 동일하게 질의하고 결과를 알려 드리겠습니다. 내용은 주단위로 해서 순차적으로 올리겠습니다. 1. 필수 개발 도구 설치① Java Development Kit (JDK) 설치최소: JDK 17 (Spring Boot 3.x 이상 사용 시 필수)설치:Windows: https://adoptium.net/macOS: brew install openjdk@17설치 확인:bash복사편집ja.. 2025. 6. 20.