일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring
- CKA 기출문제
- PETERICA
- 공부
- MySQL
- aws
- 정보처리기사실기 기출문제
- mysql 튜닝
- APM
- Java
- Linux
- IntelliJ
- Pinpoint
- 기록으로 실력을 쌓자
- 코틀린 코루틴의 정석
- kotlin
- kotlin spring
- minikube
- kotlin coroutine
- Elasticsearch
- Kubernetes
- 오블완
- AI
- CKA
- kotlin querydsl
- CloudWatch
- AWS EKS
- 정보처리기사 실기 기출문제
- 정보처리기사 실기
- 티스토리챌린지
- Today
- Total
목록Programming (189)
피터의 개발이야기
백엔드 개발과 프론트 개발을 위해 꼭 필요한 요소는 상호 소통일 것 입니다. 예전에 일했던 프로젝트에서는 프로세스를 관리하는 프로그램을 가지고 있었다. 기획단계에서 어플리케이션의 프로세스를 정의하고 그 프로세스에 코드를 부여하여, 그 프로세스에 대한 전문양식을 프로세스 관리 시스템에서 확인 할 수 있었다. 그래서 백엔드 개발자와 프론트 개발자들은 그 프로세스 전문 코드 양식과 설명에 따라 프로그램을 개발하였고, 오류나 기획단계에서 데이터 설계에도 큰 도움의 되었다. 이와 비슷한 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..
프로젝트 진행 중 PDF를 등록하면 첫장을 섬네일로 보여달라는 요청이 있었습니다. 기술 검토를 해야하는 부분이라 퇴근하고 집에서 공부할 겸 테스트한 내용 글로 남깁니다. Gradle 추가 compile group: ‘org.apache.pdfbox’, name: ‘pdfbox’, version: ‘2.0.13’ compile group: ‘org.apache.pdfbox’, name: ‘pdfbox-tools’, version: ‘2.0.13’ 소스 @Test void contextLoads() { try{ String filePath = "pdf_test.pdf"; File file = new File(filePath); ClassPathResource classPathResource = new Cla..
템플릿 리터럴은 내장된 표현식을 허용하는 문자열 리터럴입니다. 여러 줄로 이뤄진 문자열과 문자 보간기능을 사용할 수 있습니다. 이전 버전의 ES2015사양 명세에서는 "template strings" (템플릿 문자열) 라고 불려 왔습니다. Syntax `string text` `string text line 1 string text line 2` `string text ${expression} string text` tag `string text ${expression} string text` 사용법 템플릿 리터럴은 이중 따옴표 나 작은 따옴표 대신 백틱(` `) 을 이용합니다. 템플릿 리터럴은 또한 플레이스 홀더를 이용하여 표현식을 넣을 수 있는데, 이는 $와 중괄호( $ {expression} ) 로..
자바 공부를 하는 중에 다른 분들의 github를 보다가 JAVA 문제를 풀어보는 분들이 있었다. 문제는 알고리즘을 짜거나 JAVA 문자열 처리 등 다양한 문제들이 있었다. 하나씩 풀면서 굳어있는 나의 머리를 다시 살려야겠다. 지금은 124 나라의 숫자 문제를 풀기 위해 JAVA프로젝트를 하나 만들었다. 공부한 내용은 Github에 있습니다.
서비스 운영 중에 톰켓이 OutOfMemory를 뱉어내며 작동을 하지 않을 때가 있다. APM 시스템이 잘 갖춰진 곳이라면, 시스템의 문제가 발생 시에 바로 알림이 운영자에게 보내져서 바로 대응이 가능하겠지만, 그렇지 않은 경우 문제가 커진 후에나 장애처리가 될 것이다. 예기치 못한 상황에서 자동적으로 시스템을 복구하는 방법이 있다. JVM옵션에서 이것을 제공하고 있다. OnOutOfMemoryError 옵션을 이용하면, OutOfMemroy 발생 이후에 특정 동작을 지정할 수 있다. 톰캣 옵션 추가 방법 setenv.sh에 "-XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError" 옵션 추가 JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx102..