프론트엔드 업무를 진행하다보면, 무수한 좌표들 가운데 최종 폴리곤 라인을 따야하는 경우가 왕왕 발생한다. 이때 사용하는 방법이 convex hull 알고리즘이다. Convex Hull은 점 집합을 둘러싸는 최소한의 볼록 다각형을 찾는 컴퓨터 과학 알고리즘이다. 이 볼록 다각형은 주어진 점 집합을 포함하며 모든 내부 각이 180도 이하인 다각형이다. Convex Hull은 다양한 응용 분야에서 사용되며, 기하학, 이미지 처리, 컴퓨터 비전, 로봇 공학, 지리 정보 시스템 (GIS) 등에서 사용된다. Convex Hull을 찾는 알고리즘은 여러 가지가 있으며, 다음은 가장 널리 사용되는 두 가지 알고리즘이다. Graham's Scan 알고리즘: 입력: 좌표 집합 배열 출력: Convex Hull을 형성하는 ..
전체 글
개발 관련 이슈 해결방안, 활용 방법, 제품 리뷰 등을 기록하는 개인 블로그윈도우를 평생 사용하다, 맥북을 사용하다 보면 가장 불편한 점이 한두 가지가 아닐 것이다. 아무래도 사람은 익숙한것을 가장 옳다고 생각하는 경향이 있는데, 맥북의 한영 전환 방법은 정말 최악인 건 사실이다. 무려 캡스락을 한영키로 사용하라니.... 한글 표현방식 NFD 방식을 사용하는 점보다 더 맘에 안드는 부분이다. 많은 블로그들의 글을 보면 맥북의 한영키를 대게 오른쪽 cmd(커맨드) 버튼으로 대체하여 사용할 수 있는 방법을 안내하고 있는데 이는 이미 윈도에 익숙한 사람이라면 환영할만한 이야기이다. 다만, karabiner(카라바이너)를 사용하는 점은 빼고 말이다. 카라바이너는 하이시에라 까진 뭐 나쁘진 않았는데, 이후 버전부터는 종료시 다시 부팅되는 현상 등을 비롯한 버그들이 창궐해지기 시작해 개인..
강원전자에서 나온 어댑터입니다. 아무래도 돼지코 끼고 사용하기엔 불안하기 마련이죠. 해당 제품은 어댑터와 8자형 케이블로 이루져있어 8자형 케이블이 고장나더라도 해당 케이블만 다이소에서 사서 교체해 쓰기에도 좋습니다. 저도 Beelink N95에 사용중인데, 잘 됩니다. N100도 동일한건지는 모르겠지만 N95에서는 잘 쓰고 있습니다. 가격은 현재 기준 10400원입니다. 아래 최저가 링크 공유드립니다. KW KW-A1230B 12V 3A SMPS 아답터(5.5x2.5mm/C:+)
슬랙 API 를 이용하여, 슬랙 Bot 만들기 배경 회사에서 슬랙봇을 만들어야하는 상황이 발생했다. 요구사항은 간단하다. 구현해놓은 봇에게 특정 명령어를 입력하면 굳이 관리자페이지까지 접속할 필요없이 바로바로 즉각적으로 정보를 확인하는 기능만 있으면 됐다. 실제로 구현하면서 특정 IP 대에서만 가능하게 처리를 진행하고 봇 내부에 데이터베이스도 붙이면서 다양한 작업을 진행했지만 아무래도 회사에서 쓰려고 만든거기 떄문에 해당 코드를 공개할 순 없으므로 간단한 말따라하는 봇을 만들어볼까한다. 이정도 예제라면 충분히 이후에도 응용하여 다양한 봇들을 생산하는데 큰 이슈는 없을것으로 보인다. 파이썬으로도 구현해봤지만, 라이브러리 안정성은 Node js 쪽이 더 좋은 것 같아, Node JS 용으로만 작성을 진행했다..
배경, 원인과 해결방안을 찾기까지의 과정은 이전 포스팅 글에서 확인할 수 있다. 원인이 파악된 시점, 해결방안은 3가지 정도 고려할 수 있었다. 클라이언트 프로그램 실행이 되는 PC / 모바일 내 IPv6를 비활성화 처리 Node.js 내 http/https Request 시 axios , request.js 내 family 설정 도메인 내 AAAA 레코드 추가 / Nginx Server Conf 파일 내 IPv6 호환 설정 1. 클라이언트 프로그램 실행이 되는 PC / 모바일 내 IPv6 를 비활성화 처리 위 방법은 클라이언트 프로그램을 실행하는 PC나 모바일에 직접 처리하는 방법으로, 검증을 위한 간단하게 확인할 수 있는 방법이므로 가볍게 설정하는 방법과 함께 빠르게 지나가도록 하자. 실제 고객들에게..
1. 배경 개발한 Node.js 기반 Electron Framework로 만든 클라이언트 프로그램은 실행 시, axios를 통해 특정 서버 상태를 확인하는 로직이 들어가 있다. Get방식의 특정 URL 을 호출해 리턴되는 Response 내 status를 확인하고 큰 이상 없으면 넘어가는 아주 단순한 로직이다. 이게 정상적으로 처리되지 않으면 에러대응 페이지로 넘겨주도록 되어있다. 어느날 클라이언트 내에서 에러대응 페이지가 계속 나온다는 이슈보고가 들어왔다. 침착하게 확인해본 결과... 아무 이상이 없었다. 팀 동료들에게 테스트를 부탁하였는데 다들 아무도 이상이 없었다고 한다. 즉, 정상적으로 실행되고 있었다. 처음엔 서버가 다운된거 아닐까 하는 의심을 받았지만, 서버는 아무 이상이 없었다. 도대체 뭐가..
이전 관련 글 javax servlet -> jakarta servlet 으로 변경하는 코드: lucy-xss-servlet-filter Spring 6 (jakarta servlet)에서 사용 jar 파일 만드는 방법 : lucy-xss-servlet-filter Spring 6 용 JAR 빌드/적용 (1) lucy-xss-servlet-filter Spring 6 용 JAR 빌드/적용 (1) lucy-xss-servlet-filter Spring 6 (jakarta servlet)에서 사용 에서 처리한 부분은, 아무래도 개발자 입장에서 찝찝할 수 밖에 없는게 사실이다. 좀 더 깔끔한 적용을 위해 직접 jar 파일을 만드는 법을 서술한 god-logger.tistory.com lucy-xss-servl..
lucy-xss-servlet-filter Spring 6 (jakarta servlet)에서 사용 에서 처리한 부분은, 아무래도 개발자 입장에서 찝찝할 수 밖에 없는게 사실이다. 좀 더 깔끔한 적용을 위해 직접 jar 파일을 만드는 법을 서술한다. 자바 17로 컴파일이 되지 않으므로 JDK 11 을 설치하여 진행하도록 한다. 1. 네이버에서 제공하는 lucy-xss-servlet-filter 를 clone 한다. git clone https://github.com/naver/lucy-xss-servlet-filter.git 2. pom.xml 을 다음과 같이 변경한다. 더보기 4.0.0 Naver Labs http://lab.naver.com/ com.navercorp.lucy lucy-xss-serv..
원인 스프링 6 부터는 java EE에서 jakarta EE 기반으로 변경됨에따라 jakarta servlet을 사용해야한다. naver 에서 만든 lucy-xss-servlet-filter의 경우 대기업이나 공공기관에서도 보안성 검토 스프링 xss 처리 요구시 가이드로 제시하는 라이브러리지만 아쉽게도 2019년도가 마지막 release라 최근 코드 반영이 이루어지지 않고 있다. com.navercorp.lucy lucy-xss-servlet 2.0.1 최신버전은 2.0.1로 확인했다. 코드를 확인해보니 2개의 파일만 javax 에서 jakarta로 변경해주면 해결 되는걸 확인할 수 있었다. 해결 파일은 딱 두개이다. 첨부된 파일을 다운받아 사용하면 된다. 실제 디펜던시 되는 lucy 라이브러리에 코드를..
원인 Mysql에서 최소 기본 요구에 부합하지 않은 비밀번호인 경우에 발생되는 에러 validate_password% 로 확인해보면,policy가 MEDIUM으로 되어있음을 확인할 수 있다. 기본정책은 다음과 같다. LOW 8자 이상 MEDIUM 8자 이상 + 숫자 + 대문자 + 소문자 + 특수문자 이 값을 변경하고 싶은 경우, validate_password.number_count 및 validate_password.mixed_case_count을 수정 STRONG 4자 이상 + 하위 문자열이 지정된 사전 파일 단어와 일치 S 사전 파일을 지정하려면 validate_password.dictionary_file 설정 해결 정책을 변경하는 방법은 아래와 같다. MYSQL 5.X set global vali..