Profile img

고남현

@gnh1201@hackers.pub · 1 following · 22 followers

Mastodon
@gnh1201@catswords.social
GitHub
@gnh1201

MS Outlook(메일 클라이언트)의 데이터를 ChatGPT로 보내기

고남현 @gnh1201@hackers.pub

Integrating AI into email workflows often proves difficult due to the complexity of building custom mail servers or search interfaces from scratch. This solution utilizes the WelsonJS framework to directly access Microsoft Outlook, enabling seamless integration with OpenAI for automated data analysis. By leveraging dedicated libraries for Office automation and language inference, the process extracts email metadata and body content to generate context-aware prompts for tasks like drafting replies. The implementation focuses on efficient data retrieval through keyword searches and token optimization to ensure practical AI interaction within a familiar enterprise environment. This approach provides a high-efficiency path for developers to implement sophisticated AI email features using existing infrastructure.

Read more →
0

코드를 한 줄도 안 짰는데, 최고의 개발자로 평가받았다

고남현 @gnh1201@hackers.pub

실리콘밸리를 포함해 수십 개의 회사에서 동시에 근무하며 최고의 평가를 받은 한 개발자의 사례는 현대 소프트웨어 개발 조직이 직면한 본질적인 문제를 시사합니다. 그는 실제로 코드를 거의 작성하지 않았음에도 불구하고 팀의 방향성을 설정하고 기술적 의사결정을 지원하며 복잡한 구조를 정리하는 컨설턴트적 접근으로 생산성을 극대화했습니다. 이는 많은 기업이 채용 공고를 통해 단순히 코드를 작성할 기술자를 찾지만, 실제 현장에서는 무엇을 만들어야 할지 정의하고 불필요한 작업을 제거해 줄 판단력을 갖춘 인재를 더 절실히 필요로 한다는 사실을 보여줍니다. 결국 가장 가치 있는 코드는 작성하지 않아도 되는 코드이며, 개발자의 진정한 역량은 단순한 구현 능력을 넘어 복잡한 문제를 정의하고 책임감 있게 결정을 내리는 용기에서 나옵니다. 이 사례는 기술 중심의 사고방식에서 벗어나 조직 내의 구조적 모순을 해결하고 실질적인 비즈니스 가치를 창출하는 것이 현대 소프트웨어 산업에서 얼마나 중요한지를 일깨워줍니다.

Read more →
8

ActivityPub 서버에서 YouTube 추적 링크 방지하기

고남현 @gnh1201@hackers.pub

ActivityPub 서버에서 공유되는 YouTube 링크는 추적 파라미터와 내장된 기술로 인해 사용자의 개인정보를 위협할 수 있습니다. ActivityPub 프로토콜 차원의 해결을 기다리기보다, 서버 관리자가 DNT-YT, Piped, Invidious와 같은 개인정보 보호 중심의 대체 프론트엔드(front-end)를 활용해 직접적인 해결책을 마련하는 것이 실질적입니다. 특히 Nginx의 sub_filter 기능을 적용하면 기존 YouTube URL을 대체 주소로 투명하게 재작성하여 사용자가 의도치 않게 추적 시스템에 노출되는 것을 차단합니다. 이러한 서버 측 조치는 연합 네트워크(fediverse) 환경에서 사용자 데이터 보호를 강화하고 프라이버시를 중시하는 커뮤니티 가치를 실현하는 데 중요한 통찰을 제공합니다.

Read more →
5

React2Shell 취약점의 특성을 알아보자

고남현 @gnh1201@hackers.pub

React2Shell(CVE-2025-55182) 취약점은 React와 Next.js 환경에서 발생하는 심각한 역직렬화(Deserialization) 보안 약점을 다룹니다. 이 취약점은 JSON과 자체 규격인 Flight 포맷을 처리하는 과정에서 발생하며, 공격자가 JavaScript의 프로토타입 오염(Prototype Pollution)을 통해 객체의 성격을 임의로 변경하고 원격 코드 실행(RCE)까지 가능하게 합니다. 역직렬화 과정은 본래 자료형에 엄격하지 않고 특정 기호가 실행 신호로 작동할 수 있어 보안상 취약할 수 있는데, React2Shell은 특히 Promise 객체의 속성을 악용하여 악성 코드를 트리거하는 방식을 취합니다. 실제로 취약한 서버에 Mirai 봇넷 계열의 악성코드가 주입되어 서버가 디도스(DDoS) 공격 도구로 악용되는 사례가 발견되기도 했습니다. 이를 방어하기 위해서는 Next.js를 보안 패치가 적용된 최신 버전으로 업데이트하거나 Vercel에서 제공하는 전용 패치 도구를 활용해야 하며, 필요시 웹 방화벽(WAF) 규칙을 강화하는 조치가 필요합니다. 이 글은 현대 웹 생태계에서 역직렬화 공격의 위험성과 구체적인 대응 방안을 제시하여 안전한 애플리케이션 운영을 위한 핵심적인 가이드 역할을 합니다.

Read more →
1

압축 요청 헤더 지원 여부에 따른 HTTP Client 이중화

고남현 @gnh1201@hackers.pub

이 글에서는 .NET 환경에서 HTTP를 통한 파일 전송 시 압축을 활용하여 로딩 시간을 단축하는 방법에 대해 설명합니다. 특히, `Accept-Encoding` 헤더를 이용한 압축 요청이 서비스별로 다르게 처리될 수 있는 문제점을 지적하고, 이를 해결하기 위해 HTTP Client를 이중화하는 방법을 제시합니다. 미리 압축된 파일을 우선적으로 다운로드하고, 실패 시 압축 요청 헤더를 포함한 요청을 보내는 방식으로 압축 전송을 보장합니다. 실제 적용 사례인 `AssemblyLoader.cs` 파일의 예시를 통해, 이 방법이 어떻게 라이브러리 로딩 속도를 향상시키는지 확인할 수 있습니다. 이 글은 네트워크를 통한 라이브러리 로딩 시 안정성 확보와 성능 향상을 동시에 추구하는 개발자에게 유용한 인사이트를 제공합니다.

Read more →
1

DLL을 JS 처럼 import 단계에서 네트워크로 동적 로딩하기

고남현 @gnh1201@hackers.pub

이 글은 .NET 기반 Windows 앱 개발 시 발생하는 "DLL Hell" 문제를 해결하기 위한 새로운 접근 방식을 소개합니다. 기존의 어셈블리 병합 방식 대신, 네트워크에서 동적으로 어셈블리를 로드하는 방법을 제안합니다. C#의 `using` 키워드 해결 과정에 개입하여 CDN(Azure Blob Storage)을 통해 어셈블리를 로드하고, 코드 서명 검증을 통해 보안을 강화합니다. .NET IL뿐만 아니라 네이티브 어셈블리 로딩도 지원하며, 실제 코드 예시를 통해 구현 방법을 설명합니다. 이 방법은 배포 시 추가 어셈블리 누락으로 인한 오류를 방지하는 데 도움을 주지만, 여전히 추가 어셈블리를 함께 배포하는 것을 권장합니다. 이 글을 통해 개발자는 어셈블리 관리의 유연성을 높이고 잠재적인 배포 문제를 해결하는 데 도움이 되는 유용한 정보를 얻을 수 있습니다.

Read more →
6

일본 서버를 한국과 거의 비슷한 속도로 원격 접속하기

고남현 @gnh1201@hackers.pub

이 글에서는 한국에서 일본 서버를 사용할 때 발생하는 네트워크 지연 문제를 다루고, 해저 케이블망을 활용하여 이를 개선하는 방법을 소개합니다. 저렴한 일본 서버를 선택했지만, 실제 한국에서의 통신 속도가 예상보다 훨씬 느린 250ms에 달해 미국 시애틀보다도 못한 상황을 겪었습니다. 하지만 Microsoft Azure의 한국 리전을 중간 서버로 활용하여 데이터 센터 간 통신을 시도한 결과, 핑 시간을 30ms대로 크게 단축시키는 데 성공했습니다. 이는 86%의 속도 향상으로, RDP를 통해 원격 데스크탑을 사용하는 환경에서 체감 속도를 극적으로 개선했습니다. 이 글은 해외 서버를 사용할 때 네트워크 지연을 줄이는 실질적인 해결책을 제시하며, 독자에게 더 빠르고 효율적인 원격 작업 환경을 구축하는 데 도움을 줄 수 있습니다.

Read more →
8
1
0

jQuery로 SPA 앱 최소 구현하기

고남현 @gnh1201@hackers.pub

이 글은 jQuery만을 사용하여 SPA(Single-page application)를 구현하는 방법을 소개합니다. React나 Vue와 같은 현대적인 프레임워크 없이도 jQuery와 몇 가지 유용한 라이브러리(URI.js, jQuery Form, jsRender)를 활용하여 SPA를 구축할 수 있음을 보여줍니다. 핵심은 `$.fn.App` 객체를 통해 라우팅 규칙, 템플릿 렌더링, 데이터 연결을 처리하는 것입니다. 특히 `pushState`와 `popState`를 사용하여 브라우저의 히스토리 관리를 구현, 일반 웹사이트와 유사한 탐색 경험을 제공합니다. 이 글은 SPA 개발 경험이 없는 개발자가 주류 프레임워크의 작동 방식을 이해하는 데 도움을 줄 뿐만 아니라, jQuery 환경에서 SPA를 구축해야 하는 상황에 대한 실질적인 해결책을 제시합니다.

Read more →
0

CSI Cyber 에피소드 정리 (1화 - 4화)

고남현 @gnh1201@hackers.pub

CSI Cyber 1화부터 4화까지의 주요 내용을 요약하면 다음과 같습니다. 1화에서는 홈 카메라 해킹을 통해 아이가 납치되는 충격적인 사건을 다루며 C&C 서버, 펌웨어, 악성코드 등 정보보안의 주요 개념을 소개합니다. 2화에서는 롤러코스터 프로포즈 중 벌어진 폭발 사고를 통해 블루투스 해킹, 하드웨어 해킹, 산업제어시설 해킹의 위험성을 경고합니다. 3화에서는 택시 호출 기록의 미스터리를 통해 악의적으로 설치된 공개 와이파이의 위험성을 보여줍니다. 마지막으로 4화에서는 IoT 해킹으로 인해 집 전체가 화염에 휩싸이는 사건을 통해 적절한 보안 처리가 되어있지 않은 와이파이의 위험성을 강조합니다. 이 드라마는 현실적인 정보보안 문제를 흥미롭게 풀어내어 시청자들에게 보안의 중요성을 일깨워줍니다.

Read more →
2

ChakraCore를 JSON 디코더 및 인코더로 활용하기

고남현 @gnh1201@hackers.pub

이 글에서는 .NET 환경에서 JSON을 처리할 때 기존 라이브러리가 가진 한계를 극복하고, JavaScript 스타일을 최대한 유지하면서 효율적인 JSON 입출력을 구현하기 위한 고민과 해결책을 제시합니다. 표준 라이브러리의 크기, 신뢰성 문제, 그리고 JavaScript 스타일과의 괴리를 해결하기 위해 ChakraCore 엔진을 활용한 방법을 소개합니다. ChakraCore 엔진을 통해 JSON 직렬화 및 파싱을 수행하는 C# 코드를 예시로 보여주며, 기존 .NET의 XML 처리 방식과 유사하면서도 JavaScript 스타일에 가까운 JSON 입출력을 가능하게 합니다. 이 접근 방식은 다른 프로그래밍 환경에서도 JSON 포맷 처리 시 유사한 문제에 대한 해결책을 제공할 수 있습니다.

Read more →
4

국산 암호 .NET에서 사용해보자 (SEED, ARIA, HIGHT 등)

고남현 @gnh1201@hackers.pub

.NET 환경에서 국산 암호 알고리즘을 사용하려 할 때, 기존 구현체들의 테스트 벡터 검증 부재, 표준에 맞지 않는 패딩 방식 등의 문제점을 해결하고자 VB.NET으로 SEED, ARIA, HIGHT 알고리즘의 ECB 모드를 구현했다. .NET Standard 2.0 기반으로 개발되어 C# 등 다른 .NET 언어 프로젝트에서도 참조 가능하며, 공식 테스트 벡터를 사용하여 알고리즘을 검증했다. 이 프로젝트는 언어 선택으로 인한 호불호를 줄이고, 최신 시스템에서 사용 가능한 국산 암호 알고리즘을 제공하는 데 중점을 둔다. 자세한 개발 과정은 이슈 링크에서, 소스 코드는 GitHub 저장소에서 확인할 수 있다.

Read more →
5

불경하다! 어딜 데이터베이스를 깔려고 하느냐? ESENT (ESE) DB 활용기

고남현 @gnh1201@hackers.pub

이 글에서는 외부 개발 도구 사용이 제한된 환경에서 데이터베이스를 활용해야 하는 상황에 대한 해결책을 제시합니다. 필자는 Windows 운영체제에 기본 탑재된 ESENT (ESE) 데이터베이스를 활용하여 칼럼, 스키마, CRUD(생성, 읽기, 수정, 삭제) 기능을 추상화하는 API를 직접 구현했습니다. 이를 통해 개발자는 상용 데이터베이스 없이도 어플리케이션 개발에 필요한 데이터베이스 기능을 사용할 수 있게 되었습니다. 제시된 C# 코드 예제를 통해 ESENT 데이터베이스를 초기화하고, 데이터를 삽입하고, 조회하는 방법을 보여주며, 이를 통해 개발 생산성을 향상시킬 수 있음을 강조합니다.

Read more →
5