Gradle Wrapper 버전이 낮아서 JDK 21 지원을 안한다면

Intro프로젝트의 Spring boot 버전을 3.2.5 에서 3.3.5로 업데이트 하는 김에 사용하는 JDK도 17 에서 21로 업데이트 하려고 했다.그런데 사용중인 Gradle 의 버전이 낮다 보니 바로 변경되지는 않았다.코틀린 버전도 JDK 21을 지원하는 버전이 아니여서 업그레이드가 필요했는데, 전체적으로 겪었던 내용들을 정리해본다.JAVA 21을 지원하지 않음.GradleJDK 18 까지만 지원을 하는 Gradle을 사용하고 있다.제일 먼저 gradle의 업그레이드가 필요했다.지금 쓰는 버전을 확인 해 본다../gradlew --verson 확인 결과 굉장히 오래된 7.5 버전을 사용중이다.아래의 명령어로 원하는 gradle 버전으로 업데이트 할 수 있다. 처음에는 아래와 같이 8.3으로 업데..

Programming/Java 2024.11.20
자바스크립트로 이미지에 워터마크 추가하기

Intro이미지에 워터마크를 추가하는 것은 저작권 보호나 브랜드 표시를 위해 필요한 작업이다. 예전에는 포토샵같은 이미지 편집 툴이 필요했지만, 이제는 자바스크립트만으로도 간단하게 워터마크를 추가할 수 있다. 이번 글에서는 HTML과 자바스크립트를 활용해 이미지를 웹 브라우저에서 직접 처리하고 워터마크를 삽입하는 방법을 알아본다.Canvas이번 워터마크 추가에 사용하는 기술은 HTML5의 다. canvas는 픽셀 단위로 이미지를 그리고 수정할 수 있는 도구이며, 다음과 같은 과정을 통해 워터마크를 삽입할 예정이다.를 생성하고, 이미지 파일을 불러와 그대로 그린다.텍스트나 워터마크 이미지를 원하는 위치에 추가한다.canvas의 결과를 다시 이미지로 변환한다.이를 통해 별도의 서버나 이미지 편집 프로그램 ..

Programming/javascrlpt 2024.11.19
각 서버의 `.zshrc` 파일을 자동으로 백업하기

Intro여러 개의 서버를 관리하다 보면 환경 설정 파일들이 여기저기 흩어져 관리하기 복잡해진다. 특히 .zshrc 나 .bashrc 같은 셸 설정 파일은 여러가지 도구와 플러그인, alias를 관리하는 파일이라서 해당 파일 내용을 잃어버리거나 실수로 덮어쓴다면 굉장히 번거로워진다.개인적으로는 이 문제를 해결하기 위해 .zshrc 파일을 Git 리포지토리에 자동으로 백업하는 시스템을 만들었다. 한번 시스템을 구축해두니, 가끔 쉘 설정 파일 편집한 날에는 새벽에 자동으로 백업이 되어 있으니 매우 편해서 해당 내용을 공유해보려한다.이번 글에서는 cron 스케줄링을 활용해 각 서버에서 .zshrc 파일을 매일 자동으로 백업하는 방법을 차근차근 설명해 보겠다.Git 리포지토리리포지토리 생성 및 SSH 키 등록백..

Development/DevOps 2024.11.18
내가 Docker를 좋아하는 이유

이번 글에서는 내가 Docker의 장점 중 에서도 특히 개인적으로 도움이 되는 내용들에 대해 소개해보려한다.1. 편리하고 간단한 배포개발 환경에서 Docker로 실행한 어플리케이션이 잘 작동했다면, 대부분의 다른 환경에서도 유사하게 동작할 가능성이 높기 때문에 배포할 때 서버 환경의 차이에 대해 걱정할 필요가 크게 없다.기존에는 개발 환경과 운영 환경 간의 미묘한 차이 때문에 문제가 생기는 경우가 잦았다. OS 버전, 라이브러리 버전, 설치 경로 등 이런 사소한 차이가 원인이 되는 경우가 많다. 하지만 Docker는 컨테이너 안에 실행에 필요한 모든 환경을 고스란히 일관적으로 담아두기 때문에 이런 문제를 해결해준다. 특히 Docker 이미지를 한 번 잘 만들어두면, 다른 서버로 이식하거나 클라우드 환경..

Development/DevOps 2024.11.17
매일 LeetCode 문제 풀이, 터미널 한 줄로 간편하게

IntroLeetCode 문제를 매일 풀이하는 개발자라면 공감할 텐데.. 문제 링크를 찾아가고, 클래스 이름을 짓고, 파일을 생성하는 과정이 굉장히 번거롭다.그래서 이를 간단히 처리하기 위해 leet.sh와 ClassNameFactory.java 두 가지 프로그램을 작성했다.이제 터미널에서 leet 한 줄만 입력하면, 오늘의 문제 링크가 뜨고, 문제풀이용 클래스 이름이 자동으로 클립보드에 복사된다.IDE에서 바로 붙여넣어 클래스를 생성한 뒤 코딩을 시작하면 된다. 비슷한 번거로움을 겪었던 개발자라면 한번 참고해보길 권한다.leet.bash문제 정보 가져오기leet.sh는 LeetCode의 GraphQL API를 이용해 오늘의 문제 정보를 가져온다.GraphQL API는 공식적으로 제공되지 않지만 Leet..

Development/Develop Tools 2024.11.16