분류 전체보기56 [Cipher] AES(Advanced Encryption Standard), Block Cipher Mode 평소에 AES128, AES192, AES256을 구별해서 사용하지 않고 Java Private Key를 활용해서 자주 암호화 로직에 사용하고 있었다. AES에서 ECB를 사용하는 것은 권장되지 않고 initialization vector 즉 IV를 활용한 CBC를 활용해야 한다 정도만 알고 있었고 보통 CBC Mode에서 AES를 활용해 왔던 것 같다. 하지만 Block Cipher 모드가 많고 각각 모드별로 취약점과 장단점이 존재하기 때문에 정리를 하게 되었고 그 과정에서 고려사항들을 다시 한번 잘 확인하는 계기가 된 것 같다. AES 란? AES (Advanced Encryption Standard)는 대칭 키 암호화 알고리즘으로, 데이터를 안전하게 암호화하고 복호화하는 데 사용됨. AES는 ISO.. 2023. 12. 2. [Book] 육각형 개발자 최근 트위터에서 많은 개발자 분들이 보시기도 하고 리디 북스 내에서 책 순위도 높았던 육각형 개발자라는 책을 보게 되었다.해당 책을 보면서 느꼈던 점들에 대해서 글로 남겨보려고 한다. 10가지 역량시니어 개발자로 성장하기 위한 10가지 핵심 역량 위 책은 훌륭한 시니어가 되기 위해서 10가지 핵심 역량을 갖춰야 한다는 것으로 시작한다. 그중에서 공감이 됐고 좋았던 챕터들만 간단 요약하며 해당 책에 대한 마지막 리뷰 문장을 작성하면서 끝맺음하려고 한다. 유지 비용 낮추기개발자라면 유지보수를 피해 갈 수는 없다. 유지보수 비용이 아에 발생하지 않을 수는 없으며 해당 비용을 최대한 줄이는 방식으로 개발을 진행해야 한다. 결국 유지보수 비용이 적게 들려면 코어는 두가지라고 생각한다. 1. 변경으로 인한 영향에.. 2023. 8. 27. [Minikube] Minikube Stop And Start 시 helm 배포 Pod 유지 않되는 현상 Minikube 재시작 시 자원 삭제 문제가 있었고 그에 따른 해결 방법을 혹시나 같은 이슈로 방안을 못 찾는 분들을 위해서 글을 짤막하게나마 남겨두려고 합니다. 상황 M1 Mac 환경에서 Minikube와 helm 을 이용해서 개인 프로젝트 용으로 postgresql, mongodb, redis를 배포하여 Local Cluster를 구축하고 있었습니다. k9s를 통해서 보면 위와 같이 정상 배포된 것들을 확인할 수 있습니다. 문제점 helm 차트도 잘 관리되고 배포도 잘되고 실제로 떠있는것도 잘 떠있는데 문제는 Minikube Stop 후 Start를 하면 Pod들이 유지가 되지를 않았습니다. Minikube를 Stop 하고 Start 만 하면 K9s에서 helm 으로 배포된 Pod들을 확인할 수가 없.. 2023. 8. 24. [Java] Jstack 을 활용한 스레드(Thread) 덤프, 리소스 모니터링 Spring boot 기반 프로젝트 내에서 Java Thread를 활용한 로직을 활용 도중 특정 스레드 에서의 병목현상이 발생하였고 해당 병목 현상을 해결하는 과정에서의 스레드 덤프를 활용하였고 많은 도움이 되었습니다. 스레드 덤프를 뜨기 위한 Jstack에 대한 기본 사용법과 활용법을 공유하고자 합니다. Jstack?? Jstack이란 JDK와 함께 제공되는 유틸리티로 Java Thread Dump를 생성하는 데 사용됩니다. Windows와 Linux에서 jstack.exe로 Thread Dump 생성하기 ${jdk설치경로}\bin target 경로에서 jstack.exe를 활용해서 전체 Thread Dump를 추출합니다. 사전 시나리오 EndPoint @RestController public clas.. 2023. 7. 9. [Java] ImmutableList vs Collections.unmodifiableList 무엇이 다를까? Java로 개발을 하다 보면 Immutable 한 Collection을 다뤄야 하는 상황이 종종 발생한다. 그렇다면 Google Guava의 ImmutableList와 java.util.Collections의 unmodifiableList()를 각각 비교하며 각각 사용 시나리오와 장단점에 대해서 알아보자. 1. 각각의 자료구조를 사용하는 차이점 ImmutableList Guava 라이브러리의 일부로 제공되며, 불변 리스트를 생성하고자 할 때 사용합니다. ImmutableList 객체는 생성 시점부터 불변이며, 원본 리스트로부터 변경되지 않습니다. ImmutableList는 다양한 정적 팩토리 메서드를 제공하여 객체 생성을 용이하게 합니다. (of(), copyOf() 등) @Test public void.. 2023. 4. 30. [PostgreSQL] PostgreSQL 데이터 추출 - CSV, JSON 및 스키마 덤프 뜨는법. PostgreSQL를 사용하다 보면 데이터를 특정 형식에 맞춰서 파일로 추출해야 하는 경우가 생기기도 하고, 데이터 덤프가 아닌 스키마를 덤프 떠야 하는 상황도 생깁니다. PostgreSQL 데이터베이스에서 테이블 데이터를 CSV와 JSON 형식으로 추출하고, 테이블 스키마를 덤프 하는 방법을 알아보도록 하겠습니다. 테이블 데이터를 CSV 형식으로 추출하기 PostgreSQL에서 테이블 데이터를 CSV 형식으로 추출하려면 COPY 명령어를 사용할 수 있습니다. 예를 들어, 테이블 이름이 your_table이고, 조건, 정렬 값, 파일 경로를 지정하여 데이터를 추출하려면 다음과 같이 작성합니다. COPY (select * from your_table where your_condition = your_con.. 2023. 4. 30. 이전 1 2 3 4 5 ··· 10 다음