Intro이미지에 워터마크를 추가하는 것은 저작권 보호나 브랜드 표시를 위해 필요한 작업이다. 예전에는 포토샵같은 이미지 편집 툴이 필요했지만, 이제는 자바스크립트만으로도 간단하게 워터마크를 추가할 수 있다. 이번 글에서는 HTML과 자바스크립트를 활용해 이미지를 웹 브라우저에서 직접 처리하고 워터마크를 삽입하는 방법을 알아본다.Canvas이번 워터마크 추가에 사용하는 기술은 HTML5의 다. canvas는 픽셀 단위로 이미지를 그리고 수정할 수 있는 도구이며, 다음과 같은 과정을 통해 워터마크를 삽입할 예정이다.를 생성하고, 이미지 파일을 불러와 그대로 그린다.텍스트나 워터마크 이미지를 원하는 위치에 추가한다.canvas의 결과를 다시 이미지로 변환한다.이를 통해 별도의 서버나 이미지 편집 프로그램 ..
Programming 160
IntroJsoup은 HTML 파싱을 위한 Java 라이브러리로, 웹페이지의 HTML을 가져와 파싱하고 조작할 수 있다. CSS 셀렉터를 이용해 원하는 요소를 선택할 수 있어서, 웹 스크래핑과 같은 작업에 유용하다.이전 글에서 이미지 파일을 대상으로 OCR 하는 방법에 대해 알아보았는데, 이번에는 OCR의 대상이 되는 이미지를 직접 웹페이지에서 찾아오는 방법을 알아보도록 한다.실습jsoup 추가gradleimplementation 'org.jsoup:jsoup:1.15.3'maven org.jsoup jsoup 1.15.3HTTP요청간단하게 http 요청으로 웹페이지의 응답을 받아오는 예시를 작성해보겠다.JDK 11 에서부터는 java.net.http.HttpClient가 생겨서 그나마 ..
Intro최근에 점심 도시락 메뉴가 종종 궁금한데 확인하러 일일히 들어가는 건 번거로워서 슬랙 봇을 만들까 생각을 했다.점심 도시락 업체에서는 메뉴를 이미지로 웹사이트에 게시하고 있었고, 이 이미지를 가져오면 되는데, 이왕 하는 김에 텍스트로 변환까지 하면 더 좋겠단 생각이 들었다. 이를 위해 OCR(Optical Character Recognition) 기술을 활용했고, 그 과정에서 얻은 경험을 공유하려고 한다.OCR은 이미지나 PDF에 포함된 텍스트를 기계가 인식하여 디지털 텍스트로 변환하는 기술이다. 스캔된 문서, 사진 속 텍스트 등을 데이터로 활용할 수 있게 해주며, 문서 디지털화, 자동 번역, 데이터 입력 자동화 등 다양한 분야에서 활용되고 있다.TesseractTesseract는 HP에서 아주..
Intro컬렉션을 사용할 때, 특히 중복을 허용하지 않는 Set을 사용할 경우, 우리는 보통 사용하는 클래스의 equals와 hashCode만 올바르게 오버라이드하면 된다고 생각한다. HashMap에서는 그랬을지 몰라도 TreeSet을 사용할 때는 상황이 조금 달라진다.TreeSet은 내부적으로 요소를 정렬하는 과정에서 compareTo 메서드를 사용하는데, 이를 간과하면 문제가 발생할 수 있다. compareTo 메서드는 단순히 정렬만을 위한 것이 아니라, 중복을 체크하는 데도 사용되기 때문이다.이 글에서는 TreeSet에 집어넣는 클래스의 equals, hashCode 뿐만아니라 compareTo에 대해서도 신경 써야 하는 이유에 대해 살펴본다.문제 상황TreeSet은 삽입된 데이터를 자동으로 정렬하..
Intro JWT 토큰 값을 읽어서, 상황에 따라 인증하거나 만료되었다면 리프레시 토큰을 사용해 새로운 토큰을 발급받는 역할을 하는 JwtAuthFilter 를 만들어 등록해두었다. 시큐리티 필터체인에서 아래와 같이, AuthorizationFilter 이전에 등록해서 작동하도록 해 두었는데 http.addFilterBefore(jwtAuthFilter, AuthorizationFilter::class.java) 요청이 올 때마다 자꾸 해당 필터를 두번씩 거치는 문제가 있었다. 원인 간편하게 Bean으로 등록 해두고 사용하려고 클래스에 @Component 어노테이션을 붙여서 사용했는데 그게문제였다. 아래는 스프링 부트 도큐먼트에서 Filter에 관한 내용이다 https://docs.spring.io/sp..