• abbyy FineReader OCR 인식후 페이지 크기가 다른 문제

    abbyy FineReader OCR 인식후 페이지 크기가 다른 문제

    abbyy FineReader 16로 PNG로 되어 있는 파일을 OCR로 인식후 pdf로 저장할 때 다음과 같은 문제가 발생했다 결과적으로 말하면.. FineReader에서 이미지를 로딩할 때 dpi(해상도)를 자동 판별한다. 이미지들의 가로x세로 픽셀 수가 같더라도 DPI가 제대로 인식 안될때가 있다. 필자는 수백장 짜리 보고서를 동일한 해상도의 png 파일로 캡쳐해서 OCR로 돌렸는데, 80 DPI 부터 490 DPI까지 제각기 다른 DPI가 나왔다.…

  • 소프트웨어 가격에 대한 단상

    이 글은 필자가 고등학생때 시사 채팅방에서 나왔던 내용에 대한 글이다. 그때 주고 받았던 말이 다시 떠올라서 단상으로서 남긴다. 10년도 넘었기 때문에 기억에 약간의 차이가 있을 수 도 있다. 우선 일반 산업과 컴퓨터를 이용한 산업에 대한 차이를 살펴봐야 한다. 일반적으로 물건에 가격을 매길때는 [원자재 + 인건비 + 부가 가치 + 그 외 이득]을 기반으로 이루어진다. 하지만…

  • (가칭) multipath overlay network에 관한 상상코딩

    (가칭) multipath overlay network에 관한 상상코딩

    상상해 보자. 당신은 데이터 송·수신이 중요한 시스템을 만들고 있다. 해당 시스템에서는 잠시간의 네트워크 단절이 큰 영향을 미친다. 그러나 안타깝게도, 불안정한 네트워크 속에서 서비스를 진행해야 한다. 예를 들어, 해외 서버와 지속적인 통신을 해야할 경우가 있다 하자. 해외 트레픽이 넘처나는 22시 즈음이 되면 최대 30%의 확률로 Packet loss가 발생한다. 사내 네트워크와 IDC내 서버간 연결이 필요할 수도 있다.…

  • 분산 시스템의 기초 개론 – 1

    분산 시스템의 기초 개론 – 1

    분산 시스템이란 분산 시스템이란 공동의 목표를 달성하기 위해 여러 노드 또는 서버가 서로 연결된 소프트웨어 아키텍처다. 이 노드들은 네트워크를 통해 서로 통신하고 각자의 작업을 조정하여 통합되고 확장 가능한 컴퓨팅 환경을 제공한다. Patterns of Distributed Systems (2023) 분산 시스템 내에서 작업 부하는 여러 서버에서 처리될 수 있어야 한다. 즉, 수평 확장을 통해서 요청을 동시 처리할 수…

  • iptables와 ipset을 이용하여 한국 IP만 허용

    iptables와 ipset을 이용하여 한국 IP만 허용

    ipset을 이용하면 많은 IP들을 효율적으로 iptables로 관리할 수 있다. 한국 IP의 block 수가 많기 때문에 일일이 iptables에 밀어넣는것 보다는 ipset으로 목록을 관리하는것이 좋다. ipset으로 KRNIC IP 목록 추가 KRNIC에서 제공하는 국내 IP 목록을 다운로드 한다 (https://한국인터넷정보센터.한국/jsp/statboard/IPAS/inter/sec/currentV4Addr.jsp) KRNIC는 /24 블록의 갯수로 IP 대역을 표현한다. csv 다운로드 를 통해서 목록을 다운받으면 된다. ipset은 CIDR로 IP 범위를 설정하므로…

  • Ubuntu에서 Anydesk + x11 + intel 그래픽 드라이버 + HDMI 조합일 때 끊김 발생

    Ubuntu에서 Anydesk + x11 + intel 그래픽 드라이버 + HDMI 조합일 때 끊김 발생

    TL;DR /etc/X11/xorg.conf 등, x11 설정 파일 또는 /usr/share/X11/xorg.conf.d/20-intel.conf 등의 파일에 아래와 같은 내용을 붙여 넣고 재부팅 (또는 x11 재시작)을 해본다 문제 해결 과정 Anydesk로 Ubuntu를 원격 제어 시도시 약 2초마다 스터터링이 발생하는 문제가 발견됐다. 영어로 검색해도 “이러한 문제가 있어요” 하는 내용이 끝이고, 이렇다 할 무언가가 나오지 않았다. 그래서 삽질을 시작했다. 우선 Anydesk로 접속할 때만 문제가…

  • Spring Boot 3.0 환경에서 Whatap 연동

    Spring Boot 3.0 환경에서 Whatap 연동

    Kotlin + Spring Boot 3.0 + Java 17 LTS 환경에서 Whatap APM을 연동할 일이 생겼다. 이 글에서는 연동 방법과 몇가지 애먹은 부분을 기술한다. 에이전트 설치 Whatap 공식 문서 곳곳에서 $WHATAP_HOME 라고 되어 있는 것은 .jar 파일이 있는 경로를 말한다. 환경변수로 $WHATAP_HOME를 설정해도 안먹으니까 주의하자. 이후, [whatap의 프로젝트 페이지 – 관리 – 에이전트 설치]를 참고해서 whatap.conf…

  • React – Map등을 이용한 배열 표시 (세미나 자료 #2)

    React – Map등을 이용한 배열 표시 (세미나 자료 #2)

    웹 페이지를 만들다 보면 동일한 구조의 데이터를 다룰 일이 많아진다. 예를 들어, 블로그 글 목록에서는 동일한 구조로 된 내용이 가득하다. 어떤 구조체를 A라고 했을때, [A, A, A, A ···]와 같은 형태로 쭈우우욱 있는것을 배열(또는 목록)이라고 한다. 이 목록을 표시하는 방법을 다루고자 한다. 이 내용은 많은 글에서 다루고 있기 때문에, 핵심적인 내용만 다루려고 한다. JSX 떠올리기…

  • React – 함수 조합으로 만드는 DOM (세미나 자료 #1)

    React – 함수 조합으로 만드는 DOM (세미나 자료 #1)

    필자가 다녔던 학교에서 최근 연락이 왔다. 이제 HTML·JS·CSS를 갓 배운 학우들을 대상으로 React 기초를 알려주면 어떻겠냐는 연락이었다. 다행히 시간도 맞고 해서 1.5주 짜리 세미나를 준비하게 됐다. 세미나에 쓸 내용을 그저 묵히기가 아쉬워서 여기에 같이 기록해 둔다. 내용 인용시 반드시 출처 표기 부탁 드립니다. 우선 JSX를 써보자 백문이 불여일견이다. 우선 React를 이용하여 간단한 글자와 사진을 표시해…

  • SQL Injection에 대한 짧은 글

    SQL Injection에 대한 짧은 글

    저번주 SQL Injection에 대해 남들에게 설명할 기회가 생겼다. 이미 많은 곳에서 SQL injection을 설명하고 있다. 그럼에도 불구하고, 생각보다 잘 알려지지 않은 부분이 있는것 같다. 여기서는 생각 보다 아는 사람이 드문 내용을 끄적여 본다. SQL은 기본적으로 텍스트 형식이다. SQL은 DBMS에 명령을 내리는 텍스트 언어이다. 그러다 보니 복잡한 문법 구조를 가졌다. SQL은 정방향으로 읽어서 처리할 수 있는…