728x90 분류 전체보기502 [Kotlin][SpringBoot Excel] 엑셀 업로드 공통 서비스 가이드 엑셀 업로드 공통 서비스 클래스 파일 경로: com.project.component.excel.service ExcelReader 엑셀 파일로 부터 데이터를 읽어 들여 요청한 객체 타입에 맞게 데이터를 맵핑 한다음 요청 객체 리스트로 리턴 해준다 필수 셋팅 엑셀 업로드용 객체를 생성할때 엑셀 업로드용 임을 알 수 있도록 반드시 suffix로 ExcelUpload 를 붙여서 생성한다 ex) SampleExcelUpload Sample 객체 소스코드 from 메서드 엑셀 업로드 처리를 위해 ExcelUtils 의 from 메서드를 사용하면 된다 class ExcelUtils { companion object { /** * 엑셀 업로드 처리를 위한 객체 * Generic 타입의 객채를 생성하여 업로드된 엑셀 .. 프로젝트 2021. 8. 3. [Kotlin][SpringBoot Excel] 엑셀 다운로드 공통 서비스 가이드 필수 셋팅 엑셀 다운로드시 추가 설정 사항을 적용하여 엑셀 다운로드를 할 수 있다 옵션 설정 옵션설정을 하지 않으면 모두 default 값으로 설정 된다 header, fileName 은 설정을 해주는 것이 좋다 설정가능한 옵션 title: 엑셀 제목 (default: 제목없음) header: 엑셀 헤더 (default: 조회된 컬럼명으로 헤더를 자동 생성함) fileName: 엑셀 파일명 (default: export.xlsx) columnWidth: 엑셀 컬럼 기본간격 설정값 엑셀 간격 폭을 넓힐때 설정 (default: 3000) style: 기본적인 테두리 설정과 font 설정이 추가된다 다운로드시 속도가 저하된다 (default: false) autoSize: 자동으로 컬럼을 리사이징 한다 (d.. 프로젝트 2021. 8. 3. [Kotlin] 리플렉션(Reflection) 으로 제네릭(Generic) 객체 생성하기 Excel 다운로드 기능을 개발했는데 아래와 같이 객체 내부에 companion object 형태로 단지 객채만 다른 from 메서드를 일일히 생성해주어야 되서 이부분의 중복을 제거하기 위해 Reflection 공통 유틸을 만들기로 했다 @Schema(title = "Sample 엑셀 다운로드 객체", hidden = true) class SampleExcelReader( @field:Schema(title = "이름") var name: String? = null, @field:Schema(title = "이메일") var email: String? = null, @field:Schema(title = "전화번호") var phone: String? = null, @field:Schema(title =.. Kotlin 2021. 8. 2. [Spring Cloud로 개발하는 마이크로서비스 애플리케이션] 2. Spring Cloud란? Spring Cloud란? https://spring.io/projects/spring-cloud Spring Cloud 란 Microservices 의 개발, 빌드, 배포, 운영에 필요한 아키텍처를 쉽게 구성할 수 있게 도와주는 Spring Boot 기반 프레임워크 이다 Spring Cloud 현제 최신 버전 (2020.0.x aka Ilford) 2020.0.x aka Ilford 에서 지원되는 서비스 Spring Cloud Cloudfoundry Spring Cloud Config 분산 시스템에서 외부화된 구성을 위한 서버 및 클라이언트 측 지원을 제공 Spring Cloud Contract 사용자가 소비자 주도 계약 접근 방식을 성공적으로 구현하는 데 도움이 되는 솔루션을 보유한 포괄적인 프로젝트.. SpringCloud 2021. 8. 1. [Spring Cloud로 개발하는 마이크로서비스 애플리케이션] 1. Microservice 소개 Microservice 소개 0. Software Architecture Antifragile Auto scaling 리소스 사용량이나 조건에 따라 인스턴스나 리소스를 자동으로 확장/축소할 수 있는 개념 Microservices 전체 서비스를 구축하고 있는 개별적인 모듈이나 기능을 독립적으로 개발하고 배포하고 운영할 수 있도록 세분화된 서비스 Chaos engineering 변동, 예견된 불확실성, 예견되지 않는 불확실성, 카오스 불확실성에서도 안정적인 서비스를 유지 Continuous deployments 지속적인 통합과 지속적인 배포환경 구성 1. Cloud Native Architecture 확장 가능한 아키텍처 시스템의 수평적 확정에 유연 확장된 서버로 시스템의 부하 분산, 가용성 보장 시스템 또.. SpringCloud 2021. 8. 1. [Kotlin] Java 코드(Function, static, IntStream, mapToObj) -> Kotlin 코드 변환 기존에 Java 에서 작업한 코드를 Kotlin 으로 변환하면서 기록한다 공통 엑셀 다운로드 기능 코드인데 Java 코드를 Kotlin 으로 변환하는 부분이 약간 햇갈려서 삽질을 조금 했다 1. 엑셀 업로드 Sample 객체 변환 Java 버전 @Getter @Setter @NoArgsConstructor @AllArgsConstructor @ToString @ApiModel("Sample 엑셀 업로드 객체") public class SampleExcel { @NotEmpty//(message = "이름은 필수 입력값 입니다") @ApiModelProperty(value = "이름", position = 1) private String name; @ApiModelProperty(value = "이메일",.. Kotlin 2021. 8. 1. [Kotlin] Spring 리소스(Resource) to File 파일변환 https://freedeveloper.tistory.com/465?category=956624 Spring, Kotlin 리소스(Resource) 파일 읽어오기, 다운로드 https://freedeveloper.tistory.com/193?category=808728 Spring, Java 리소스(Resource) 파일 읽어오기, 다운로드 Spring, Java 리소스(Resource) 파일 읽어오기, 다운로드 Maven 또는 Gradle 기반 프로젝트는 /s.. freedeveloper.tistory.com Spring 리소스(Resource) 파일을 읽어와서 다운로드 하는 방법은 이전에 다루었었다 이번에는 읽어온 리소스(Resource) 파일을 File 로 변환하는 방법에 대해 기록해본다 변환하는 .. Kotlin 2021. 8. 1. [Kotlin] Spring 리소스(Resource) 파일 읽어오기, 다운로드 https://freedeveloper.tistory.com/193?category=808728 Spring, Java 리소스(Resource) 파일 읽어오기, 다운로드 Spring, Java 리소스(Resource) 파일 읽어오기, 다운로드 Maven 또는 Gradle 기반 프로젝트는 /src/main/resources 디렉토리에 리소스 파일을 저장하도록 되어 있다 이 디렉토리에 위치한 파일들은 .jar 파일로 freedeveloper.tistory.com 일전에 Java 버전으로 개발했던 부분을 Kotlin 으로 컨버팅 하면서 기록 한다 리소스 파일 읽어오기 Java 버전과 거의 동일하다 javaClass.getResourceAsStream(PATH): resource 디렉토리 안에 있는 파일을 In.. Kotlin 2021. 8. 1. Jenkins Generic Webhook Trigger를 이용한 GitHub branch별 push event WebHook 설정 GitLab 에서 WebHook 을 설정해서 사용하다가 GitHub로 이전할 일이 생겼는데 GitHub에는 branch 별로 push를 하면 branch 명으로 판단해서 WebHook 을 동작시키는 기능이 없었다 그래서 검색을 하다가 알게 된 것이 조금 복잡하긴 하지만 Generic Webhook Trigger Jenkins Plugin 을 사용하는 것이다 GitHub에서는 해당 Repository에서 Push Event 가 발생하면 등록된 WebHook URL을 Jenkins로 전송하고 Jenkins에서는 Generic Webhook Trigger에 설정된 branch에 대해서만 Jenkins Item을 수행한다 설정이 GitLab 보다 조금 복잡하긴 하지만 아래와 같이 설정하면 GitLab의 bran.. DevOps 2021. 7. 28. AWS 기반 Spring Cloud Config + Cloud Bus Kafka + Config Monitor 구성 Spring Cloud Config Monitor 와 Spring Cloud Bus, Kafka 를 이용한 설정 변경내용 적용 아키텍쳐 Git Repository 에 별도로 구성되어있는 설정파일을 변경하면 Hook을 통해 Spring Cloud Config 의 /monitor EndPoint 를 호출 Spring Cloud Bus Kafka 가 Kafka 를 통해 Spring Cloud Config Client 들에게 refresh 메세지를 전송하여 변경된 설정사항이 적용되게 한다 Spring Cloud Config Architecher 1) Config Server 도메인 생성 및 ALB 호스트 헤더 기반 규칙 추가 ALB 호스트 헤더 기반 규칙 추가하는 방법은 링크 참조 https://freedeve.. SpringCloud 2021. 7. 23. [AWS] ALB 호스트 헤더 기반 규칙 추가하는 방법 1. 도메인 생성 ALB 리스너 규칙에 등록하기 위해 Route53 도메인 생성 ALB 규칙 정의에서 호스트 헤더 규칙으로 처리할 것이기 때문에 규칙을 정의할 도메인에 다른 용도로 생성한 ALB Endpoint로 단순 레코드 정의 2. AWS Certificate Manager 인증서 생성 ALB 추가 인증서 등록을 위해 인증서 생성 3. Config Server 인바운드 규칙 추가 ALB에서 Server 접속을 위해 필요한 포트를 인바운드 규칙으로 추가 4. 로드밸런서 대상그룹 생성 config 대상그룹 생성 포트는 서버에서 블루/그린으로 배포되므로 8888/8889 두개를 등록 상태검사 /actuator/health 로 상태 검사 5. 인증서 추가 리스너 탭에서 인증서 보기/편집 클릭 생성한 서버 인.. AWS 2021. 7. 22. Docker 기반의 GitLab 설치 및 Letsencrypt 인증서 설정 회사에서 Jenkins 서버가 필요한데 AWS LightSail 에 가볍게 띄우기 위해서 Docker 기반으로 Gitlab 서버를 띄우고 인증서 설정을 위해 Letsencrypt 인증서 설정까지 한 내용에 대해 기록해본다 크게 1번 인증서 발급 과정과 2번 GitLab 설치후 인증서 셋팅 두 과정으로 나누어 진다 먼저 1. 인증서 발급 부분부터 순서대로 진행해야 한다 참고로 GitLab 은 Gitlab community Edition 으로 진행 했다 https://about.gitlab.com/community/ 우선 인스턴스 발급후 gitlab-ce 디렉토리 생성 후 작업을 진행한다 1. 인증서 발급 https://hibuz.com/https-ghost-blog-3 에서 git을 pull 받아서 설정내.. DevOps 2021. 7. 12. 이전 1 2 3 4 5 6 7 8 ··· 42 다음 💲 추천 글 728x90