일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 querydsl
- APM
- 기록으로 실력을 쌓자
- minikube
- 공부
- CKA
- aws
- 정보처리기사실기 기출문제
- Spring
- 정보처리기사 실기 기출문제
- CKA 기출문제
- kotlin coroutine
- 오블완
- kotlin
- kotlin spring
- 티스토리챌린지
- 코틀린 코루틴의 정석
- Java
- AWS EKS
- 정보처리기사 실기
- Elasticsearch
- AI
- Pinpoint
- CloudWatch
- Kubernetes
- PETERICA
- MySQL
- Linux
- mysql 튜닝
- IntelliJ
- Today
- Total
목록Programming/JAVA (20)
피터의 개발이야기
ㅁ 들어가며ㅇ 리플렉션(Reflection)은 자바 프로그래밍 언어에서 실행 중인 프로그램이 자신의 구조를 검사하고 수정할 수 있는 기능이다.ㅇ 이를 통해 클래스, 인터페이스, 필드, 메서드 등의 정보를 런타임에 동적으로 접근하고 조작할 수 있다.ㅇ 리플렉션은 주로 컴파일 시점에 알 수 없는 객체를 다룰 때 유용하게 사용된다. ㅁ 리플렉션의 주요 기능필드 접근하기class Person {var name: String? = null var age: Int? = null constructor() // 기본 생성자 constructor(name: String) { this.name = name } constructor(age: Int) { this.age ..
ㅁ 들어가며ㅇ 멀티 스레드, 병렬처리에 관한 개발 이야기는 parallelStream을 이용한 방식이었다.ㅇ [Spring] parallelStream, Intercom 데이터 백업하기에서 페이징처리로 속도제한이 되어 있는 intercom의 데이터를 병렬처리로 다운로드 속도를 극복했던 과정이다.ㅇ 멀티 스레드에 관한 글, [JAVA] JDK21, Virtual Thread, Continuation에 대한 이해과 [kotlin] 코틀린 코루틴의 정석 - 코루틴의 동작 원리(Coroutine과 Continuation)을 작성하면서 Java Stream의 병렬 처리 장점에 대해서 다시 생각하게 되었다. ㅁ Java Stream의 병렬 처리 장점ㅇ Java 8부터 도입된 Stream API는 함수형 프로그래밍..
ㅁ 들어가며ㅇ JDK21에 정식으로 채택된 기술인 Virtyal Thread에 대해서 공부하였다.ㅇ Reative Streams 방식보다 더 쉽게 적용이 가능하였다.ㅇ [4월 우아한테크세미나] ‘Java의 미래, Virtual Thread를 시청하고 작성한 글이다.ㅇ 목표: Virtyal Thread의 장점을 이해하고, 어떻게 구현되어 있는고, 어떤 상황에 사용 시 이점이 있는지 알 수 있다. ㅁ Virtual Thread 소개ㅇ 스레드 생성 및 스케줄링 속도가 기존 스레드보다 빠르고 저렴하다.ㅇ 스레드 스케줄링을 통해 Nonblocking I/O 지원ㅇ Thread 상속: 기존 스레드를 상속하여 코드 호환성이 높다. ㅁ Thread vs Virtual Thread 생성 리소스 차이ㅇ Thread- 스레..
ㅁ 개요 ㅇ 백기선님의 유튜브 '[리액터] 리액티브 프로그래밍 2부 Flux와 Mono'를 보고 Flux와 Mono를 공부하였다. ㅁ Techio 학습 연습 Techio를 통해 학습 및 코딩 연습을 할 수 있다.
ㅁ 개요 JWT 토큰을 디코딩 하는 과정에서 에러가 발생하였다. 특정 유효한 Base 64 인코딩 문자열에 대해 Java11에서 Base64.decode가 실패가 발생하였다. 특정 사용자에게만 발생하는데, 토큰을 비교해 보면 특정 문자열인 _(언더바)가 들어가는 경우 에러가 발생하였다. 이를 분석한 과정을 정리하였다. ㅁ 에러 내용 [authorization] [http-nio-8082-exec-42] [2023-06-08 15:50:19:1373892465] ^[[1;31mERROR^[[0;39m ^[[36mo.a.c.c.C.[.[.[.[dispatcherServlet]^[[0;39m - Servlet.service() for servlet [dispatcherServlet] in context wit..
ㅁ 들어가며 다음은 조직도 테이블 구조를 트리구조 JSON 형태로 변환하는 Java 코드 샘플입니다. 이 코드는 JDBC 드라이버를 사용하여 데이터베이스에서 데이터를 가져오는 것을 전제로 합니다. import java.sql.*; import java.util.*; public class OrgChart { public static void main(String[] args) { try { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/orgchart", "username", "password"); Statement stmt = conn.creat..
ㅁ 개요 개발을 하면서 정규식을 다양하게 사용하게 된다. 로그분석 시 텍스트에서 특정패턴의 값을 추출할 때도 있고, 로그인 시 비밀번호와 이메일의 정합성을 식별하기 위해서도 정규식을 사용한다. 이 글에서는 그 정규식에 대해서 정리하고 자주 사용하는 패턴들에 대해서 정리하였다. ㅁ 정규식이란? 정규식이란 사전적인 의미로는 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어를 말한다. 주로 문자열의 검색과 치환을 위한 용도로 많이 쓰이고 있다. 입력한 문자열에서 특정한 조건의 문자를 추출하는 경우 일반적인 방법은 다소 복잡하고 반복적인 경우가 발생하지만, 정규식을 이용하면 매우 간단하게 표현하고 식별할 수 있다. 하지만 코드는 간소화 되었지만 정규식 자체의 복잡도로 인해 가독성이 많이 떨어지는..
구글 자바 컨벤션 가이드 ㅁ 코드 컨벤션(Code Convention) 코딩 컨벤션은 읽고, 관리하기 쉬운 코드를 작성하기 위한 일종의 코딩 스타일 규약이다. 개발은 대부분 혼자가 아닌 협업으로 개발하기 때문에 본인이 작성한 코드가 다른 사람들이 이해하기 어렵다면 협업에 문제가 발생하게 된다. 같은 프로젝트 안에서 다른 개발자의 코드를 이해하는데 시간이 소요된 만큼 작업의 능률은 떨어지고, 기능에 대한 오해로 인해 오류가 쉽게 발생할 수 있다. 그래서 코드의 스타일(코딩 규칙)을 통일하기 위한 협약, 약속을 코드 컨벤션이라고 한다. 코드 컨벤션의 궁극적인 목표는 누구나 쉽게 코드를 이해하고 사용할 수 있게 하기위함이다. ㅁ 코드컨벤션의 필요성소프트웨어를 개발하는 일련의 모든 과정에 들어가는 비용 중..
소스가 IO 채널인 Files.lines(Path, Charset) Stream만 닫아야 합니다. 스트림에는 BaseStream.close() 메서드가 있고 AutoCloseable을 구현하지만 거의 모든 스트림 인스턴스는 실제로 사용 후 닫을 필요가 없습니다. 일반적으로 소스가 IO 채널인 Stream(ex: Files.lines(Path, Charset)에서 반환된 스트림)만 닫아야 합니다. 대부분의 스트림은 특별한 리소스 관리가 필요하지 않은 Collections, Arrays, generating functions에 의해 지원됩니다. 스트림을 닫아야 하는 경우 try-with-resources 문에서 리소스로 선언할 수 있습니다. public static void main(String[] args..
ㅁ 개요 Mysql varchar 컬럼의 사이즈에 맞게 문자열을 짤라서 넣어야 되는 상황이었다. JAVA에서 책정한 문자길이와 디비 varchar에서 책정되는 문자길이가 다른점을 발견하였다. 정확히 varchar에 맞게 문자열을 짤라 넣기 위해서는 JAVA와 Mysql의 문자길이 체크 방법을 명확히 알아야만 한다. 그 방법에 대해서 정리하였다. ㅁ 테스트를 위한 TEST 테이블 생성 create table TEST ( TEST varchar(10) charset utf8 not null ); ㅁ Mysql의 length와 char_length 차이 비교 select TEST, CHAR_LENGTH(TEST) charLen, LENGTH(TEST) len from TEST; ㅇ char_length는 영어..