일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AWS EKS
- CloudWatch
- 기록으로 실력을 쌓자
- CKA 기출문제
- Pinpoint
- skaffold
- minikube dashboard
- Elasticsearch
- kubectl 설치
- aws
- MySQL
- kubernetes tool
- 쿠버네티스
- Redis 모니터링
- Linux
- 정보처리기사실기 기출문제
- APM
- 정보처리기사 실기 기출문제
- mysql 튜닝
- Spring
- Kubernetes 자격증
- minikube
- CKA
- Kubernetes
- IntelliJ
- PETERICA
- AWS EBS
- Java
- 공부
- k9s
- Today
- Total
목록Programming/JAVA (23)
피터의 개발이야기
ㅁ 들어가며ㅇ JDK21에 정식으로 채택된 기술인 Virtyal Thread에 대해서 공부하였다.ㅇ Reative Streams 방식보다 더 쉽게 적용이 가능하였다.ㅇ [4월 우아한테크세미나] ‘Java의 미래, Virtual Thread를 시청하고 작성한 글이다. 작성 중... ㅁ 함께 보면 좋은 사이트ㅇ [4월 우아한테크세미나] ‘Java의 미래, Virtual 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) 코딩 컨벤션은 읽고, 관리하기 쉬운 코드를 작성하기 위한 일종의 코딩 스타일 규약이다. 개발은 대부분 혼자가 아닌 협업으로 개발하기 때문에 본인이 작성한 코드가 다른 사람들이 이해하기 어렵다면 협업에 문제가 발생하게 된다. 같은 프로젝트 안에서 다른 개발자의 코드를 이해하는데 시간이 소요된 만큼 작업의 능률은 떨어지고, 기능에 대한 오해로 인해 오류가 쉽게 발생할 수 있다. 그래서 코드의 스타일(코딩 규칙)을 통일하기 위한 협약, 약속을 코드 컨벤션이라고 한다. 코드 컨벤션의 궁극적인 목표는 누구나 쉽게 코드를 이해하고 사용할 수 있게 하기위함이다. ㅁ 코드컨벤션의 필요성 소프트웨어를 개발하는 일련의 모든 과정에 들어가는 비용 중 8..
소스가 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는 영어..
개발자는 데이터를 다루는 사람들입니다. 데이터는 다양한 형태와 속성으로 존재하고 있고 또 어디론가 전달됩니다. 이런 데이터의 흐름과 관련된 용어를 공부하였습니다. 아래의 내용은 여기 블러그를 공부한 내용을 복붙하였습니다. 직렬화, 역직렬화란? 직렬화 - 객체에 저장된 데이터를 I/O 스트림에 쓰기(출력) 위해 연속적인(serial) 데이터로 변환하는 것 역직렬화 - I/O 스트림에서 데이터를 읽어서(입력) 객체를 만드는 것 자바에서 직렬화와 역직렬화는 객체를 파일로 저장하거나 네트워크를 통해 전송하기 위해 제공되는 기능이다. 객체는 '인스턴스 변수의 집합'이므로 객체를 저장/전송하는 것은 객체의 인스턴스 변수의 값을 저장/전송하는 것과 동일하다. ObjectInputStream과 ObjectOutputS..
파일을 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(..