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

프로젝트 진행 중 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..

엑셀다운로드을 하고 있었다. JXLS로 만들면서 템플릿 Excel파일의 경로를 지정하였다. 하지만 로컬에서 실행시키자 에러가 발생하였다. 얼마전 SpringBoot 배포를 War에서 Jar로 변경 하였기 때문이었다. 결론적으로 Jar와 War가 Resource를 참조하는 방식이 달랐다. Jar로 배포된 개발계와 운영계에는 문제가 없었고, local에서는 classpath경로로는 리소스를 참조할 수 없었다. 우선 알아야할 개념은 Path와 Classpath의 차이다. path는 javac와 연관이 있다. 자바환경에서 컴파일 할 때 필요한 것이다. javac가 컴파일하기 위한 모든 라이브러리를 참조하기 위해 윈도우에서는 환경변수로 java홈의 라이브러리 경로를 지정해 준다. javac는 라이브러리 경로에 따..

ㅁ 들어가며코드 작성 중 간단히 자바 테스트를 진행하였습니다.@SpringBootTest를 가동시켰는데, Failed to load ApplicationContext이 발생하면서 테스트를 진행할 수 없었습니다.스프링이 특정 value 빈을 생성하려는데, 설정 파일을 찾지 못하엿습니다.테스트 코드에서 ActiveProfile을 어떻게 지정하는 방법을 찾으면서 그 방법에 대해서 정리해 보았다. 이 원문을 보고 정리하였습니다. @Profile빈을 특정 프로파일에 매핑합니다.@Component@Profile("dev")public class DevDatasourceConfig프로파일 이름을 "!dev"로 하면 dev 프로필이 활성화되지 않은 경우에만 활성화가 됩니다. XML로 프로필 선언Profiles은 X..

json관련하여 jackson 라이브러리를 사용하고 있다. jackson에서 재공하는 유용한 어노테이션을 정리한다. Read+ Write Annotations @JsonIgnore public class TestIgnore { @JsonIgnore public long testId = 0; public String name = null; } 위 코드에서 testId는 JSON에서 읽거나 기록되지 않는다. @JsonIgnoreProperties import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @JsonIgnoreProperties({"firstName", "lastName"}) public class PersonIgnoreProperties {..

Spring Boot 애플리케이션에서 서버 측 사용을 위해 Retrofit 및 OpenFeign 선언적 REST 클라이언트를 비교합니다. 먼저 Retrofit 및 OpenFeign을 소개하겠습니다. Retrofit Android 및 Java를 위한 안전 HTTP 클라이언트입니다. HTTP API를 Java 인터페이스로 바꾸는 선언적 웹 서비스 클라이언트입니다. 자세한 내용은 여기를 참조하세요. Feign Client Feign은 선언적 웹 서비스 클라이언트입니다. 웹 서비스 클라이언트를 더 쉽게 작성할 수 있습니다. Feign를 사용하려면 인터페이스를 만들고 어노테이션을 합니다. https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-..

HashMap은 개발의 편의성을 위해 자주 사용한다. MSA로 구성된 서비스에서 더더욱 그러하다. 사용자 정보를 조회하고 다른 서버와 통신하여 구매정보를 구해온다. 키값으로 구매정보 리스트를 HashMap에 저장하여 사용자정보 기준으로 정보를 쉽게 조합할 수 있다. 1. 객채 선언 HashMap map = new HashMap(); 2. 데이터생성 map.put(10, "apple"); map.put(20, "orange"); map.put(30, "banana"); map.put(40, "watermelon"); map.put(50, "dragonfruit"); 3. 데이터 조회 String carName = (String)map.get(10); 4. 데이터 삭제 map.remove(20); 5. 키의..