December 20, 2023
최근 스프링 부트로 프로젝트를 진행하면서 의존성 주입(Dependency Injection, DI) 에 대해 깊이 있게 공부하게 됐다. 처음에는 단순히 어노테이션만 사용하면 되는 줄 알았는데, 실제로는 스프링의 핵심 개념 중 하나라는 걸 알게 됐다. 의존성 주입(DI)이란? 의존성 주입은 객체가 필요로 하는 의존성을 외부에서 주입받는 방식이다. 쉽게 말…
December 15, 2023
최근 자바 개발을 하면서 자바8에서 도입된 스트림(Stream) API를 자주 사용하게 되는데, 처음에는 익숙하지 않아서 기존의 for문이나 iterator를 사용하던 습관이 남아있었다. 하지만 스트림을 제대로 이해하고 사용해보니 코드가 훨씬 간결해지고 가독성이 좋아지는 걸 체감하게 됐다. 스트림(Stream)이란? 스트림은 데이터의 흐름을 의미한다. 배…
February 18, 2023
여러가지 개인 토이 프로젝트를 가지고 웹주소를 만들어주고 있었는데 당연히 도메인 한개가지고 서브 도메인으로 만들어주는 중이었다. 뭐 이런식이었다. 그런데 개인 토이 프로젝트라서 굳이 https를 적용할 필요가 없어서 그냥 http로 사용하려고 하는데 브라우저로 접속하면 자꾸 307 리다이렉트가 되는 것이었다. 메세지는 개발자 도구에서 확인하면 아래처럼…
February 14, 2023
ChatGPT 그냥 사용해도 강력하지만 ChatGPT API를 이용해서 자동화된 시스템을 구축하면 더욱 강력할 것 같습니다. Python, Node.js, Java 예제를 만들어보도록 하겠습니다. 개발자가 아니더라도 따라만 하면 기본은 사용할 수 있으니 다른 활용방안이 필요하다면 따라해보시기 바랍니다. 개발자분이시라면 ChatGPT API 사이트를 보고…
January 31, 2023
전부터 웹 개발을 하면서 아주 유용하게 사용했던 프로그램(서비스)가 있어 소개해보려고 합니다. 바로 포스트맨(postman)입니다. 쉽게 말하자면 http(https 포함) 요청을 날리고 응답을 보여주는 서비스인데 사용법도 간단해서 좋습니다. 설치와 다운로드 방법으로 시작해서 사용법을 설명하는 단계로 포스팅해보도록 하겠습니다. 1. 포스트맨(postm…
January 17, 2023
사실 개발을 몇년정도 하면서 자연스럽게 체득된 방법이었는데 이렇게 부른다는건 이제서야 알았다. 다중으로 중첩된 if 문(Nesting If Statements) 대신 Guard Clause 를 적용해야 한다는 것이다. 중첩 if 문(Nesting If Statements) 개발을 하다보면 프로그램을 실행하기 위한 정합성 체크, 전제조건을 검사를 넣게 되…
December 20, 2022
Base64와 Base62 란 바이너리 데이터를 문자집합 각각 64개, 62개를 기준으로 하여 변경하는 인코딩/디코딩 방식을 이야기합니다. 인코딩이라 하면 일반적으로 동영상 인코딩을 많이 들어보셨을 겁니다. MP4에서 mkv나 avi, mpg 등의 동영상 포맷으로 변환하는 과정을 얘기합니다. 여기서 얘기하는 인코딩도 맥락으로는 거의 같습니다. 단지 변…
December 19, 2022
요즘 여기저기 ChatGPT로 난리다. 각종 유튜브, 그리고 IT 기술 블로그 등등 전부 ChatGPT를 소개하고 있다. 뭔데 이렇게 난리지? 생각했다. 좀 지난 것이긴 하지만 AI가 코딩해주는 깃헙 코파일럿과 유사한 것이 아니겠나. 생각하다가 하도 많이 나오길래 소개 영상을 보고 실제로 가입후 활용해봤다. 아래 사이트에 가입 한 후에 ChatGPT에 …
September 26, 2022
자바 개발자들은 대부분이 느끼겠지만 환경설정 할때마다 오라클 사이트에 접속하여 사용하는 버전에 맞는 자바 버전을 다운로드 받는 것도 굉장히 귀찮고 스트레스 받는 일입니다. 뭔가 찾아들어가기 어렵다는 것이 맞습니다. 찾기 편하게 링크를 정리해봅니다. Oracle Java Archive(오라클 자바 저장소) 이곳에 접속하면 자바 1.1버전부터 1.2, 1.3…
June 12, 2022
평소처럼 letsencrypt ssl 인증서 만료 예정 메일을 받고 갱신을 하려고 했는데 약간의 사고가 나고 말았다. 한 두달 전 쯤에 집 내부 공유기 세팅을 초기화 할일이 있어서 초기한 뒤에 개인 서버에 NAT를 걸어둔 설정 몇개를 빼먹은 것이다. 빼먹은 상태에서 letsencrypt ssl 인증서를 갱신하려고 certbot renew 명령어를 계속…
May 10, 2022
인터넷 망분리 환경으로 인해 경험할 수 있는 에러였는데 어찌 저찌 해결이 되었다. 여러가지 해결 방법을 짬뽕하여 해결했다. 안드로이드 스튜디오에서 안드로이드 apk 빌드를 gradle로 시작하는데 PKIX path building failed unable to find valid certification path to requested target 를 …
May 06, 2022
다시 플러터를 시작한다. 일전에 작심 삼일은 반복되지 말아야 되겠다. 지금 접하는 플러터는 웹 실행이 되어서 웹으로 진행해보고 있는데 실행 시 아래와 같은 에러가 난다. “SocketException: Failed to create server socket (OS Error: Failed to start accept)” address가 localhost…
April 26, 2022
Node.js에서 모듈 설치 시에 다음과 같은 “self signed certificate in certificate chain” 에러를 만나게 되었을 때 아래 명령어로 해결 가능하다. $ set NODE_TLS_REJECT_UNAUTHORIZED=0 $ set npm_config_strict_ssl=false 2. UnhandledPromiseReje…
January 24, 2022
역대급 핫 이슈였던 `Log4J(Log4Shell) 역대 최악 보안 취약점(CVE-2021-44228)` 외 8개까지 정리해봅니다.(`22.01.24 업데이트). 한번 터지더니 최근 계속해서 이슈가 되고 있는 것 같습니다. 아예 log4j 취약점을 찾는 사람들이 계속해서 파고 있는 느낌? 나름 IT 밥을 먹고 있는 사람으로 정리를 하지 않고 넘어가면 안될…
November 17, 2021
자바로 작성한 프로그렘에서 에러 발생시 트레이스 정보에는 에러가 발생한 라인수가 표시된다. 그런데 라인수가 표시되어야 할 부분에 “Unknown Source”라고 표시 되기도 하는데 이는 컴파일시에 디버깅 정보를 포함시키는 옵션을 넣지 않아서 그렇다. javac -g *.java ant 사용시
November 17, 2021
오늘은 무료 SSL 인증서 “Let’s Encrypt” 적용 방법에 대해서 알아보겠습니다. https는 http의 보안프로토콜입니다. 이를 이용하기 위해서는 SSL 인증서라는 게 있어야 되는데 보통 유료로 구입들을 하게 되죠. 이걸 바로 무료로 배포를 해주는 고마운 사이트가 https://letsencrypt.org인 것입니다. ISRG (Internet…
September 08, 2021
일을 하다보면 netstat 명령어를 자주 사용하게 된다. 현재 LISTEN 중인 포트를 확인하려는 용도가 거의 대부분인데 상태를 보면 ESTABLISHED, CLOSE_WAIT, TIME_WAIT, FIN_WAIT_2 이런 것들이 보인다. 막연하게만 봤던 상태들인데 정리해보자. 네트워크 지식이 빈약해서 다른 글들을 그대로 카피하여 정리했다. MS .N…
August 30, 2021
오늘은 개인적으로 자바 활용의 익스퍼트 급이라고 생각하는 것 중에 하나인 BCI(Byte Code Instrumentation)에 대해서 포스팅해보고자 합니다. 저도 제가 공부하고 이해하는 선 내에서 진행해보도록 하겠습니다. 제가 신입시절… 자바의 리플렉션을 활용하며 그래 이것만 있으면 뭐든 다 할수 있겠는데?라고 생각하고 지냈다가 제니퍼소프트의 APM…
August 17, 2021
OWASP top 10대 웹 보안 취약점에 대해서 정리해보도록 하지요. OWASP( The Open Web Application Security Project )는 오픈소스 웹 어플리케이션 보안 프로젝트로 소프트웨어 보안을 개선하기 위한 비영리 재단입니다. 2001년 12월 1일에 시작된 OWASP 재단이며 이제 20년이 넘어가는 역사가 깊은 미국 비영…
August 10, 2021
자바(JDK, JRE) 쉽고 빠른 설치, 환경 설정 방법에 대해서 알아봅시다. 먼저 자바 설치 파일 다운로드가 필요한데요. 설치 파일이 필요하신 경우 아래 링크를 통해서 운영체제에 맞는 버전을 먼저 다운로드 받고 와주시기 바랍니다. 1. 윈도우 자바(JDK, JRE) 설치 대부분 많은 분들이 윈도우에 설치할 일이 많을것 같습니다. 윈도우 OS 버전에 맞…