일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 공부
- kotlin
- SRE
- 정보처리기사실기 기출문제
- minikube
- AWS EKS
- golang
- MySQL
- 티스토리챌린지
- kotlin querydsl
- AI
- Linux
- CloudWatch
- CKA 기출문제
- Pinpoint
- aws
- kotlin coroutine
- Spring
- APM
- Elasticsearch
- PETERICA
- 오블완
- go
- CKA
- tucker의 go 언어 프로그래밍
- 정보처리기사 실기 기출문제
- Kubernetes
- 코틀린 코루틴의 정석
- Java
- 기록으로 실력을 쌓자
- Today
- Total
목록Programming (214)
피터의 개발이야기

백업데이터를 생성할 때에 CSV파일을 생성할 일이 많이 있습니다. CSV 파일 생성 방법에 대해 정리를 하였습니다. gradle compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.11.4' compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.11.4' compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.11.4' compile group: 'com.fasterxml.jackson.dataformat', name: 'ja..

서론 종종 Util, Interceptor, client를 만들 때에 @Component를 선언하였습니다. 그래저 저는 Component가 사전적 의미인 "구성 요소"처럼 보다 작은 단위 혹은 @Controller와 @Service처럼 특화된 중요 구성요소보단 덜 중요한 객체를 선언하는 용도라고 생각하고 있습니다. 그리고 @Componet와 @Controller, @Service 등등이 별개의 것이라고 생각했었습니다. 하지만 제가 잘못 이해하고 있었고 그 부분에 대해서 공부를 하였습니다. 실질적으로 @Controller와 @Service, @Repository는 같은 소스이다. @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Docume..

서론 개발 프로젝트에서 Apple로그인을 적용하였습니다. 프론트 개발자와 협업하여 Apple로그인을 구현하였고, 이 포스팅은 백엔드의 입장에서 정리를 해 보았습니다. 앱에서 APPLE로그인 성공 후 인증된 appleToken을 가지고 서버에서 처리하는 과정입니다. 인증과정 APP에서 인증하고 API Server에서 또 인증? 상식적으로 이해가 되지 않았다. 앱에서 apple Token이 생성되었다면, 이미 로그인 성공인데, API 서버에서 그 인증 토큰을 다시 검증해야하는 과정이 이해가 되지 않았다. 하지만 앱으로부터 appleToken을 받을 때에 이 요청이 탈취될 수 있는 것이다. 그래서 요청을 탈취한 사용자가 정보를 도용할 수 없도록 서버에서 인증과정을 한번 더 거쳐야 한다. Gradle 세팅 //..

컨트롤에서 리다이렉션을 시키는 방법을 포스팅해 보았습니다. package com.peterica.swagger.controller; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.spri..

오늘은 Slack과 연동하는 방법에 대해서 포스팅해보도록 하겠습니다. 고객에게 푸시를 통해 알람을 보낼 수 있지만, 어드민을 사용하는 영업팀에서는 자체 어플이 있지 않는한 Slack의 알림을 통해 상황을 빠르게 확인 할 수 있다. 슬랙연동에는 여러 방법이 있다. 크게 프론트앤드에서 연동하는 방법이 있다. 프론트 개발자 분이 설명해 주시는 참조할만한 블러그가 있다. [API] 슬랙(Slack) API 완벽 정리하기 백엔드에서 연동하는 방법에는 별다른 SDK없이 프론트와 마찬가지로 RestTemplate로 통신하는 방법과 slack에서 제공되는 SDK를 이용하는 방법이 있다. 자세한 내용은 slack의 개발자 가이드를 참조하면 좋다. Slack SDK for Java 우선 RestTemplate로 구현한 소..

백엔드 개발과 프론트 개발을 위해 꼭 필요한 요소는 상호 소통일 것 입니다. 예전에 일했던 프로젝트에서는 프로세스를 관리하는 프로그램을 가지고 있었다. 기획단계에서 어플리케이션의 프로세스를 정의하고 그 프로세스에 코드를 부여하여, 그 프로세스에 대한 전문양식을 프로세스 관리 시스템에서 확인 할 수 있었다. 그래서 백엔드 개발자와 프론트 개발자들은 그 프로세스 전문 코드 양식과 설명에 따라 프로그램을 개발하였고, 오류나 기획단계에서 데이터 설계에도 큰 도움의 되었다. 이와 비슷한 swagger는 RestController 어노테이션을 기준으로 내부의 API를 자동 분석하여 HTML 문서로 제공하는 오픈소스이다. swagger는 백엔드가 개발한 API들의 논리적 설명과 전문들의 정의를 볼 수 있다. 또한 바..

오늘은 Mybatis연동을 정리합니다. gradle 설정 //DataBase Mybatis mysql implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.0' compile group: 'org.mybatis', name: 'mybatis', version: '3.4.6' compile group: 'org.mybatis', name: 'mybatis-typehandlers-jsr310', version: '1.0.2' compile group: 'org.mybatis', name: 'mybatis-spring', version: '1.3.2' compile group: 'mysql', name: 'mysql-connector-..

데이터의 암호화를 위해 개발하였던 것을 정리하도록 하겠습니다. CryptUtil package com.peterica.swagger.util; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import java.io.UnsupportedEncodingException; import java.math.BigInteger; import java.security.MessageDigest; import org.apache.commons.codec.binary.Hex; @Component @S..

스프링 부트를 종료하기 위해서는 ProcessID를 찾아야 한다. grep + ps > ps -ef | grep app_key | grep -v grep process id를 kill의 인자로 대입하여 실행 > kill $(ps -ef | grep java | grep otr_auth | awk '{print $2}') 쉡 스크립트에서 backtick(`)를 이용해서 kill을 실행할 수 있다. > kill `ps -ef | grep java | grep otr_auth | awk '{print $2}'` pgrep grep과 ps의 결합형태이다. >kill `pgrep java` Boot 실행 시 pid 생성방법 Spring pid 옵션 #applicaion.properties에 추가 spring.pi..

회사 프로젝트 중에 PDF의 섬네일을 만드는 과정을 정리하였습니다. 어제는 PDF를 이미지로 만드는데 성공하였고, 오늘은 이미지를 100X100 사이즈의 Thumbnail로 만드는 작업을 진행하였습니다. gradle 추가 //thumbnail compile group: 'org.imgscalr', name: 'imgscalr-lib', version: '4.2' compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.8.1' compile group: 'commons-io', name: 'commons-io', version: '2.6' 이미지를 섬네일 이미지로 변경 public File thumbnailS3Upload(File f..