본문 바로가기

분류 전체보기

JAVA 언어로 배우는 디자인 패턴 입문(3판) 리뷰 ※ 이 글은 OKKY 에서 진행한 [영진닷컴] JAVA 언어로 배우는 디자인 패턴 입문(3판) 리뷰 이벤트 에 당첨이 되어 작성된 글임을 밝힙니다. 햇수로는 15년 넘게 개발자 인생을 살아온 나 이지만 프로젝트를 하면서 답답함이 점점 커져오는 부분이 있었다. 그것은 내가 이렇게 코딩하는게 맞는것일까..하는 점이었다. ASP, JSP 를 거쳐서 이제 Spring 에 안착하기까지 여러 종류의 코드를 봐왔지만 머랄까 늘 인터넷에서 검색해서 거기에 있는 코드를 흉내내서 하다보니 창조적으로 한다기 보단 늘 그때그때 내가 겪었던 경험을 근거로 하며 만들고 있었다. 프로젝트 템플릿을 만드는거 조차도 예전에 사용했던 것을 가지고 아무 생각없이 재탕 삼탕 해가며 사용하고 있었다. 템플릿을 만들때 이 사람이 어떤 사고방식..
Log4j CVE-2021-44228 취약점을 프로젝트에서 직접 점검하고 보완하는 방법 2021년 12월 13일 한 주를 시작하는 월요일에 가뜩이나 급작스런 상황이 벌어졌다. 그것은 Apache 재단에서 배포하는 log4j2(log4j 2.X 버전)에 제로데이 취약점이 발견되었기 때문이다. 제로데이 취약점이란 라이브러리를 개발한 개발자보다 해당 라이브러리를 사용하는 사용자가 먼저 발견한 취약점을 얘기한다. 라이브러리를 개발한 개발자가 발견한 취약점이면 대응방안을 발표하고 이를 수정 보완한 업데이트 버전이 올라오기 때문에 큰 문제가 발생하지는 않겠지만 개발자가 아닌 사용자가 먼저 취약점을 발견했을 경우 개발자 입장에서는 취약점의 존재 자체를 모르기 때문에 취약점을 발견한 사용자가 이를 악용할 소지가 있기 때문이다. 다행히도 이번 취약점은 log4j 를 개발한 Apache 재단 및 이를 사용하..
고충3 차량용 핸드폰 거치대 간단 리뷰 물건 리뷰하는 글을 정말 오랜만에 쓰게 되었다. 중간에 몇몇 리뷰글을 작성할 가치가 있는 물건들을 산게 있지만(ex: 갤럭시탭S6 라이트 등) 리뷰글 작성시기를 놓쳐서 리뷰글 작성이 의미가 없게 되버렸다. 그러나 이번 고충3는 신상인데다가 구매한지 얼마 되지 않은 시점이어서 글을 작성하게 되었다. 이 제품도 늘 그렇듯 네이버 쇼핑을 통해서 내돈주고 내가 산 물건임을 밝힌다. 이 제품을 사게 된 계기는 차량에 있는 내비가 더는 업데이트가 안되어서 내비를 새로 사서 장착하는것도 그렇고 그리고 내비 데이터를 한달에 한번 업데이트 받아 갱신하는것도 번거롭다는 생각이 들어서 그냥 T Map 같은 핸드폰 내비를 사용해야 겠다는 생각이 들었다. 실제 차량용 거치대를 별도로 설치해서 운전하지를 않다보니 그냥 고속충전 ..
@DataJpaTest 와 P6Spy 를 같이 사용하기 이 글에서 사용된 Source는 Github에 올려두었습니다. 사용된 DB는 H2 Database이며 관련 Database 스키마는 src/main/resources/sql 에 있는 schema.sql 파일을 보시면 됩니다. src/main/resources 에 있는 application.yaml 파일에서 spring.datasource 부분을 독자분들의 Database 환경에 맞춰서 적용하세요. SpringFramework를 이용하는 개발을 진행하면서 SQL 문을 보기 위해 사용했던 라이브러리로 log4jdbc-log4j2 라이브러리를 주로 사용했었다. 그러나 okky를 통해 p6spy를 알게 되면서 한번 이 라이브러리를 적용해볼려고 기존에 공부용으로 만들어놓은 프로젝트에 이 라이브러리를 적용하게 되었..
CKAD 관련 잡다한 정리 (1) CKAD는 CKA와는 겹치는 범위가 한 70% 정도 되기 때문에 CKAD 관련 잡다한 정리 시리즈 글은 많지는 않을듯 하다. 다만 CKA 잡다한 정리에서 놓친것들은 좀 챙길려고 한다.. Docker Image와 Kubernetes Pod의 Command와 Argument의 관계 정리 Docker Image를 만들때 CMD 를 설정했으면 Kubernetes에서의 command는 Docker의 CMD를 덮어 씌운다. Docker Image를 만들때 CMD ["sleep", "5"] 로 했을 경우 Kubernetes에서 Pod을 만들때 Docker의 이 이미지를 사용하면서 command: ["sleep", "10"] 으로 했으면 sleep 10을 실행한다. 그러나 위와 동일한 결과를 낸다 하더라도 이에 대한 ..
ETCD Backup과 Restore 정리(CKA 시험 대비용) CKA 시험에 대비해서 내가 작성한 글들에 보면 ETCD Backup과 Restore에 대해 정리해놓은게 있는데 그게 서로 제각각인 부분이 있어서 이 부분만 아예 따로 하나의 글로 정리했다(혹시나 기존에 내가 작성한 글을 보고 실습한대로 했다가 안되었을 경우엔 죄송합니다..ETCD Backup에 대해서는 실제 연습문제로 Backup이 나온게 있어서 그걸 푸는 과정에서 정리를 했지만 Restore의 경우 연습문제로 출제가 되질 않아서 강좌 동영상에서 보여준 내용으로 설명하다보니 검증이 안된 점이 있었습니다..) 이 과정의 모든 진행은 Master Node에서 진행한다. (지금 이 글로 소개하는 방법은 ETCD가 Kubernetes의 kube-system namespace 에서 Pod으로 동작하는 경우에 대..
Kubernetes Mock Exam 정리(Mock Exam 3) 누군가 이 동영상 강좌의 후기를 CKA 후기에 같이 써놓은게 있어서 본적이 있었다. 그때 Mock Exam에 대한 내용도 언급했었는데 난이도가 1,2,3 순으로 어렵다고 하더니만 진짜 그러했다. 솔까말(이게 솔직히 까놓고 말해서..의 줄임말란걸 얼마전에 알았음..얼마나 쉰세대가 되어가고 있는지..) 이 시험을 전혀 우습게 보지 않고 대비한건데..그래도 1달 빡씨게 준비하고 시험에 응하면 될꺼라 생각했다. 근데 Mock Exam 3를 보고 아직도 나는 갈길이 멀었음을 깨달았다. 프리 일 끝나고 다른 일 구하는 동안 1달만 투자해서 따야지 하는 마인드였는데..공부하며 정리하다보니 시간도 벌써 3주차에 들어섰다. 원래 이거 강좌 한번 정리해놓고 다시 한번 첨부터 동영상 복습하면서 정리한 내용보고 문제 다시 풀..
Kubernetes Mock Exam 정리(Mock Exam 2) 여기서는 총 8문제가 주어졌는데 2개를 몰라서 풀지를 못했다. 하나는 아예 모르겠고, 남은 하나는 문제의 내용을 잘못 파악해서 틀렸다. 아예 몰랐던 문제는 이런 문제였다. Create a new user called john. Grant him access to the cluster. John should have permission to create, list, get, update and delete pods in the development namespace. The private key exists in the location: /root/CKA/john.key and csr at /root/CKA/john.csr Important Note: As of kubernetes 1.19, the Cer..