일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring
- PETERICA
- CloudWatch
- aws
- kotlin coroutine
- Kubernetes
- AWS EKS
- AI
- docker
- Pinpoint
- kotlin querydsl
- 기록으로 실력을 쌓자
- 정보처리기사실기 기출문제
- 오블완
- golang
- 공부
- 코틀린 코루틴의 정석
- 정보처리기사 실기 기출문제
- Linux
- 티스토리챌린지
- go
- APM
- Java
- mysql 튜닝
- CKA 기출문제
- minikube
- tucker의 go 언어 프로그래밍
- kotlin
- CKA
- Elasticsearch
- Today
- Total
목록분류 전체보기 (860)
피터의 개발이야기

shell 배열을 loop 돌리는 방법은 늘 잘 까먹게 됩니다. 그래서 짧게 나마 정리 합니다. #!/bin/bash for f in $(aws s3 ls s3://bucket-name/ | sort | awk '$1 > "2021-01-20" && $4 > "" {print $4}'); do aws s3 cp s3://bucket-name/"$f" ./ done;

5. 배포 과정 5.1.1 무중단/중단 배포 무중단배포는 기존 A,B서비스에 영향이 없는 C를 배포할 때에는 가능하다. 하지만 B서비스가 사용하는 테이블이 변경되는 경우, B와 C가 양립할 수 없는 경우에는 무중단 배포를 할 수 없다. 중단배포는 전체 서비스를 중단하여 배포할 수 밖에 없다. 5.1.2 현재 위치 배포(로드밸런스 이용) 로드밸런스를 이용한 배포 방법이다. 배포하는 서버는 로드밸런스의 대상그룹에서 제외시키고 배포 후에 다시 대상그룹을 지정해 주는 방식이다. 이 경우 서버는 2대 이상이어야 한다. 추가 인스턴스를 생성하지 않고 기존의 인스턴스로 배포하는 무중단 배포방법이다. 5.1.3 서버 단위의 블루/그린 배포 두개 이상의 Auto Scaling 그룹을 나누어 AMI- 시작 템플릿을 지정하..

개발하면서 발생한 에러에 대한 정리입니다. JPA에서 데이터를 불러오는 쪽에서 에러가 발생하였습니다. 에러내용 2021-01-18 16:08:05.931 [http-nio-8080-exec-9] ERROR com.xxxxx.util.LoggerAspect [LoggerAspect.java:32] - err=org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet at org.springframework.orm.j..

개발자는 데이터를 다루는 사람들입니다. 데이터는 다양한 형태와 속성으로 존재하고 있고 또 어디론가 전달됩니다. 이런 데이터의 흐름과 관련된 용어를 공부하였습니다. 아래의 내용은 여기 블러그를 공부한 내용을 복붙하였습니다. 직렬화, 역직렬화란? 직렬화 - 객체에 저장된 데이터를 I/O 스트림에 쓰기(출력) 위해 연속적인(serial) 데이터로 변환하는 것 역직렬화 - I/O 스트림에서 데이터를 읽어서(입력) 객체를 만드는 것 자바에서 직렬화와 역직렬화는 객체를 파일로 저장하거나 네트워크를 통해 전송하기 위해 제공되는 기능이다. 객체는 '인스턴스 변수의 집합'이므로 객체를 저장/전송하는 것은 객체의 인스턴스 변수의 값을 저장/전송하는 것과 동일하다. ObjectInputStream과 ObjectOutputS..

앱을 출시 하였습니다. 하지만 운영환경에서 안드로이드 앱이 구글로그인이 안되는 문제점이 있었습니다. 운영배포 직전에 빌드한 APK를 깔아 테스트 할 때에는 문제가 없었지만 같은 APK를 앱스토에 등록한 후에는 작동이 되지 않았습니다. 그래서 간접적으로 디버깅 할 수 있는 방법으로 SquidMan를 활용해 보았습니다. SquidMan이란? 컴퓨터에 프록시 서버를 구성하여 /etc/hosts 파일의 설정에 따라 가상머신으로 접속할 수 있도록 만들어주는 프로그램이다. 설정을 보면 기본으로 8080포트가 정해져 있다. 허용가능한 클라이언트 아이피 대역을 설정한다. 전체 허용은 all을 입력한다. /etc/hosts 파일을 수정한 경우 SquidMan을 재시작해야 한다. 스마트폰 프록시 설정 설정 > 연결 > W..

시스템 운영 중에 고객에게 임의의 푸쉬를 보내야하는 상황이 발생하였습니다. 간단하게 Postman으로 push를 보내는 법을 정리하였습니다. URL 및 Header 세팅 POST https://fcm.googleapis.com/fcm/send Authorization : key={fcmKey} Content-Type : application/json Body 작성 { "to": "pushKey", "priority": "high", "notification": { "body": "푸시테스트입니다. \r\n 다양한 컨텐츠를 적을 수 있습니다.\r\n 다양한 컨텐츠를 적을 수 있습니다.\r\n 다양한 컨텐츠를 적을 수 있습니다.\r\n 다양한 컨텐츠를 적을 수 있습니다.\r\n 다양한 컨텐츠를 적을 수 있습..

오늘은 웹개발에 대한 부분을 이야기 해 보도록 하겠습니다. 저는 참고로 리엑트 개발자가 아닙니다. 하지만 업무상 리엑트 웹어드민을 종종 수정 개발을 하기도 합니다. 개발 사항은 어드민 웹페이지 중에 이미지를 보여주는 부분에 PDF도 볼 수 있도록 수정하는 것이었습니다. 1. PDF.js PDF.js를 이용해 Javascript으로 구현하는 방법입니다. 무엇보다 예제 정리가 잘 되어 있습니다. 'Hello, world!' example JavaScript code: base64 encoded PDF 뷰어 무엇보다 좋은 점은 base64로 인코딩된 PDF를 보여줄 수 있다는 점입니다. 보안상 파일을 암호화가 필요한 경우 base64+ 암호화 토큰을 붙여 전송 시에 유용한 방법입니다. 아래는 예제로 제공되는 ..

ㅁ 개요 ㅇ 젠킨스를 플러그인 적용 및 기타 재시작이 필요한 경우가 있을 때 젠킨스 재기동 방법을 정리하였습니다. ㅁ 재기동을 위한 사전 준비작업 ㅇ Jenkins 관리 > Update shutdown preparation 메뉴로 이동한다. ㅇ 안전한 재기동을 위해 신규 빌드나 파이프라인 작업들의 실행을 방지한다. ㅇ Reason에 "재기동 이유를 남기면 다른 페이지에 경고표시가 됩니다."라고 입력하였다. ㅇ 빌드 대기 목록에는 Jenkins가 종료 중임을 표시 하고 배치 파이프라인은 작동이 되지 않았다. ㅇ 상단에 재기동 이유가 경고로 표시되었다. ㅁ Restart ㅇ http://localhost:8080/restart을 직접 호출하여 Restart페이지로 접근한다. ㅁ Safe Restart ㅇ ..

4장 운영서버의 외부 환경 구성 이번 장에서는 도메인과 HTTPS의 원리를 알아보고 서비스에 적용하는 방법을 설명하고 있다. 도메인과 인증서를 통해 안전한 통신을 하는 방법을 아는 것이 이번 장의 목표라고 생각한다. 4.1.1 도메인, DNS Route53을 통해 도메인을 구입하고 관리할 수 있다. DNS를 모르는 사람을 위해 개념 설명을 하고 있다. 실질적인 서버에 요청을 하기 위해서는 IP가 필요하다. 사람의 인식에 유리한 도메인은 IP로 변환해야한다. DNS는 도메인을 IP로 변환하여 준다. 4.1.2 AWS Route 53을 이용한 도메인 등록 도메인을 직접 구매할 수도 있다. 구입 후 등록된 도메인에서 확인 할 수 있다. 4.1.3 로드 밸런서 도메인 등록 4.2.1 SSL/TLS, HTTPS ..

파일을 S3에 업로드 하는 로직 개발 중 파일명을 고객이 입력한 값으로 해달라는 요청이 있었습니다. 근데 그 고객이 "1054_20210113_ 👍.JPEG" 이름을 지정해 주셨습니다. 긴급 패치... 이럴 줄이야... 그면 우선 긴급 패치한 내용부터 정리합니다. replaceAll @Test public void fileNameFilterTest(){ String fileName = "이상한 파일 이름_1234_20210120 ㅎㅎㅎ 👍 !!#&.jpeg"; fileName = fileName .replaceAll("[^a-zA-Z0-9가-힣_.]", "") // 알파벳과 한글, 숫자, 언더바와 점만 허용한다. .replaceAll(" ",""); // 빈칸제거한다. System.out.println(..