일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java
- CKA 기출문제
- AI
- 기록으로 실력을 쌓자
- CKA
- kotlin coroutine
- minikube
- MySQL
- kotlin spring
- Kubernetes
- APM
- 정보처리기사실기 기출문제
- 오블완
- Pinpoint
- 정보처리기사 실기 기출문제
- CloudWatch
- kotlin
- PETERICA
- Elasticsearch
- Linux
- Spring
- 정보처리기사 실기
- AWS EKS
- 공부
- 티스토리챌린지
- kotlin querydsl
- 코틀린 코루틴의 정석
- IntelliJ
- aws
- mysql 튜닝
- Today
- Total
목록분류 전체보기 (792)
피터의 개발이야기
S3에 파일이 쌓이고 이것을 일괄적으로 다운받아야하는 경우가 있습니다. 그럴 때 한번에 받을 수 있는 방법을 정리하였습니다. sync 로컬의 디렉토리와 S3의 경로를 동기화 할 수 있다. # 다운로드 aws s3 sync s3://bucket-name/ ./ # 업로드 aws s3 sync ./ s3://bucket-name/ 버켓의 내용을 로컬 폴더로 동기화 시킨다. 그래서 버켓폴더의 파일들이 로컬로 복사가 됩습니다. 그리고 로컬의 것을 버켓에 업로드를 할 수가 있습니다. ls s3의 목록을 조회한다. 이 때 awk를 사용하여 목록을 조건으로 검색할 수 있습니다. aws s3 ls s3://bucat-name/ |sort | awk '$4 >"" && $1 > "2021-01-20"' 여기서 $4 >"..
Spring에서 환경변수를 배열로 불러올 경우가 있습니다. 다중환변 변수를 리스트로 불러오는 방법을 정리하였습니다. application.properties # get the element as an array base.module.elementToSearch=1,2,3,4,5,6 base.module.elementToSearch2=a;b;c;d;e;f DemoController.java @Value("${base.module.elementToSearch}") private String[] elementToSearch; @Value("#{'${base.module.elementToSearch2}'.split(';')}") private String[] elementToSearch2; @GetMapping..
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 ㅇ ..