Spring Boot에서 Legacy Cookie 사용하기 (Tomcat & Jetty)

HTTP 프로토콜로 서버에 요청 메시지를 보낼 때 Header에 Cookie를 포함할 수 있습니다. 이 때, Cookie가 여러 개이면 각각을 세미콜론(;)으로 구분합니다. 아래와 같은 형태로 Cookie를 보내면 서버에서는 “yummy_cookie”의 값은 “choco”로, “tasty_cookie”의 값은 “strawberry”로 인식합니다. 예전에는 아래와 같이 콤마(,)로 구분된 Cookie도 서버에서 2개로 인식하여 처리할 수 있었습니다. 하지만 콤마로 구분하는 것은 표준이 아니기 때문에 최신 버전의 웹…

C#으로 PBEWithMD5AndDES 암복호화하기

자바 프로젝트에서 properties 파일에 있는 DB 계정 정보를 암호화하기 위해 Jasypt 라이브러리를 많이 사용합니다. (Jasypt 라이브러리를 잘 모르시거나 사용법이 궁금하신 분은 구글링 해보시기 바랍니다.) Jasypt 라이브러리를 이용할 때 주로 사용하는 알고리즘은 PBEWithMD5AndDES라는 것입니다. 문자를 그대로 풀어 보면 “MD5와 DES를 이용한 패스워드 기반 암호화” 정도로 해석될 수 있겠네요. 일반적으로 취약하다고 알려져 있는 MD5와 DES 알고리즘을 사용한다는…

Tomcat 로그를 한글 대신 영문으로 남기기

오래간만에 최신 버전의 톰캣을 다운로드하여 실행해 보았습니다. 그런데 “뺣낫” 같은 알 수 없는 단어들이 섞인 로그 메시지가 출력되었습니다. 아마도 일부 단어가 OS 언어에 맞게 바뀌어서 출력되는 모양입니다.logs 폴더에 있는 catalina.out 파일을 텍스트 에디터로 열어 보았습니다. 아까 “?뺣낫”으로 보였던 문구는 “정보”라는 한글이네요. 한글은 아름다운 우리 글자입니다. 하지만 톰캣 로그에서는 한글보다 영문으로 보이는 게 더 익숙하고 편할…

영혼 없이 Telegram Bot 만들기

텔레그램에서는 봇을 만들 수 있는 API를 공식적으로 지원합니다. 게다가 무료이므로 개발자라면 누구나 쉽게 봇을 만들어 볼 수 있습니다. BotFather 우선 봇을 만들려면 봇 전용 텔레그램 계정이 필요합니다. 전화번호나 이메일 없이 봇 전용 계정을 만들기 위해서는 BotFather의 도움이 필요합니다.텔레그램 앱에서 “botfather”를 검색합니다. 그리고 아래와 같은 프로필 사진을 가진 BotFather를 선택하고 “시작” 버튼을 클릭합니다. 그러면 사용할 수…

RabbitMQ 튜토리얼 요약

RabbitMQ 공식 홈페이지에는 여러 가지 활용 시나리오에 대해 다양한 언어로 설명된 튜토리얼 페이지가 있습니다. Python, Java, C#, Go 등 언어별 예제를 선택하여 살펴볼 수 있습니다. 최근에는 기존의 Java 예제와 별개로 Spring AMQP를 활용하는 예제도 추가되었습니다. 튜토리얼 페이지에는 언어별 예제 뿐만 아니라 RabbitMQ의 주요 용어와 개념도 함께 설명되어 있습니다. 그런데 개념에 대한 설명이 여러 페이지에 나누어져…