전체 글 278

nodejs 서버가 종료되지 않는 경우

배경 koa framework를 이용하여 서버를 개발 중 기동, 종료 스크립트도 만들어서 잘 사용하고 있음 (signal handling) websocket이 필요해서 koa-websocket을 적용 가끔 종료 스크립트에서 무한대기가 발생(hang) 추적 문제 발생 조건 확인 서버 기동 후 바로 종료를 했는데, 문제가 없음을 확인 서버가 받을 수 있는 모든 입력을 전달 했음 -> 문제 발생을 확인 입력을 하나씩 줄여가면서 범위를 좁혔음 -> websocket 접속이 하나 생기면 문제가 생기는 것을 확인 websocket을 클라이언트 측에서 끊으면 문제가 없음을 확인 websocket을 더 추적 서버가 종료 시그널을 받으면, 모든 websocket을 닫는 작업을 추가 -> 문제 미해결 하는김에 http r..

카테고리 없음 2023.03.14

[rust] async 기능 테스트하는 방법 (not tokio)

async 인 함수를 테스트 할 필요가 생겼다. #[test] async fn mytest () { println!("this is async fn"); } 이렇게 작성하면 다 될 것 같겠지만, error: async functions cannot be used for tests --> tests/basic_test.rs:66:1 | 66 | async fn mytest() { | ^---- | | | _`async` because of this | | 67 | | println!("this is async fn"); 68 | | } | |_^ 그렇다 cargo test는 async 함수를 지원하지 않는다. 검색 여러모로 검색을 하다보면 tokio-test를 이용하면 된다는 답변이 많이 나오지만, 작지만..

IT한 것/Rust 2023.03.07

rollup.js 패키징시 파일 제외하는 방법

node.js 모듈 번들링을 rollup.js을 이용해봤다. 간단하게 적용해보고 마음에 드는 편이라, CI에 적용을 하기 위해 패키징까지 시도한 상황 목표 패키지 디렉터리 생성 각종 js파일을 bundle.js로 묶기 (rollup의 기본 기능) 필요한 리소스 파일을 패키지 디렉터리에 복사 아래가 내 rollup.config.js export default [ { input: 'src/index.ts', output: { file: 'build/bin/seport.js', format: 'es', sourcemap: true }, plugins: [ del({ targets: './build' }), nodeResolve({ preferBuiltins: true }), typescript(), json(..

IT한 것 2023.02.22

특정 환경에서 SSL 인증서 경로검증 오류나는 경우

발단 javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. Android에서 HttpsURLConnection을 사용하다가 발생하는 예외였다. iOS에서도 잘되고, iOS Safari, Android Chrome에서도 여튼 다 접속에 문제가 없던 웹 서버인데, 유독 Android에서 프로그래밍으로 접속하면 실패하는 상황에 직면했다. Trust anchor를 못 찾는다는 오류는, 보통 “신뢰하는 루트 인증서“를 인증서 저장소에서 못 찾는 경우에 발생한다 인증서 체인 발급자 인증서 정보를 보면 (브라우저에서 주소창의 자물쇠를 누르..

IT한 것 2023.02.02

carsized.com 을 보고

차량 크기를 비교해주는 사이트가 있길레 호기심에 접속하고 느낀 점을 기록 https://www.carsized.com/ Smart ForTwo 2014-2019 vs. Opel Astra 2004-2010 Smart ForTwo Cabriolet Brabus 2014-2019 vs. Opel Astra Hatchback 2004-2010. Compare car dimensions (length, width and height) vs. street perspective. www.carsized.com ❗사진의 DPI를 잘 계산해서 실크기로 변환해서 비교할 수 있었겠지? Quick Facts를 보고 ❗이미 가지고 있는 데이터의 조합 개수, 단순 통계치를 이용하여 적당한 의미의 정보를 제공하면서 공간을 사용했..

영감 2023.01.27

palant 2차 요약 - IPinside 취약점

원문은 아래에서 확인 가능합니다. 데이터 보호 방법이 의미 있을 것 같아서 그부분 위주로 정리 합니다. https://palant.info/2023/01/25/ipinside-koreas-mandatory-spyware/ IPinside: Korea’s mandatory spyware Banking websites in South Korea can only be used with IPinside installed. This application collects lots of data about the user, and it makes that data accessible to each and every website. The protection is inadequate. palant.info 데이터 종류..

IT한 것 2023.01.25

Redundant #include of module 'A' appears within 'B' 오류 해결 과정

레거시 C 모듈을 objective c 에서 사용하고 있었는데, Xcode를 업데이트 하면서 이런 오류가 발생하기 시작했다. 직역해보자면 B라는 곳에서 A 모듈에 대한 헤더포함(include)이 중복되었다 정도로 읽힌다. 맞다. 내가 사용하던 레거시 C모듈은 수많은 C 함수를 구조체에 함수 포인터 목록으로 만들어주는 작업을 전처리기만으로 수행한다. 그러다보니, 한 헤더에서 A.h를 여러번 include 하여 사용하고 있다. (이거 하느라 삽질 엄청한 과거의 기록이 새록새록) 그런데 왜 갑자기 이런 오류를 발생시켰을까? (예전까지 잘 사용했었음) 가장 먼저 찾아낸 것은 이 옵션이다. 모듈이 뭔지는 모르겠으나 C나 Objective C 코드도 모듈로 사용하게 한다고 한다. (이 옵션을 끄면 빌드문제는 해결됨..

Windows에서 심볼릭 링크 만들기 (관리자 권한X)

아무래도 윈도우즈는 GUI 운영체제이다보니 심볼릭 링크를 많이 사용하지 않는 편으로 알고 있다. 이번에 한번 사용해볼겸 살펴봤는데, 흔히 검색되는 사용 방법에 대한 내용은 관리자 권한이 필요하다는 내용이 대부분. 심볼릭 링크를 굳이 관리자만? 이라는 생각이 들어서 정공법으로 접근해봤다. MS 문서를 확인 https://docs.microsoft.com/ko-kr/windows/security/threat-protection/security-policy-settings/create-symbolic-links 기호 링크 만들기(Windows 10) - Windows security 기호 링크 만들기 보안 정책 설정에 대한 모범 사례, 위치, 값, 정책 관리 및 보안 고려 사항을 나타냅니다. docs.micr..

IT한 것/WINDOWS 2022.05.26

markdown을 내가 알아서 관리하는 obsidian 설정기

시작 markdown의 시대 이 계통에 발을 담고 있다보면, 마크다운을 알지 못하기도 힘들다. 개발 업무에 종사하다보니, 가이드, 메뉴얼 등등을 작성할 일은 끊이지 않았다. 내용을 갱신하는 일도 마찬가지다. 더보기 예전에는 문서 작업을 할 때마다, 묵직~한 아래아 한글, MS Word등 문서 작성 프로그램 열리는걸 기다리고 했다. 누락된 마침표 하나를 채우기 위해 편집기를 여는 기다림은 나의 몫이었고 감안해야했다. markdown은 이러한 문서 작업을 단순한 텍스트를 이용해서 빠르게 작성, 수정하고 괜찮은 결과물을 얻기에 좋은 선택이다. 다만, markdown은 변환을 거쳐야 미려한 문서가 나오기에 미리보기 도구나, 변환 도구를 설치하고 설정해서 사용해야한다. 내 경우 VSCode를 기본 편집기로 사용한..

IT한 것 2022.05.25

gitlab - Release 삭제하기

gitlab을 설치형으로 잘 사용하고 있다. 마침 Release라는 기능이 있어, 조금 삽질해서 설정해서 사용하는데 나 같은 경우 버전 정보를 git tag로 설정하고 해당 tag에 대한 것을 빌드 하여 배포한다. 그래서 아래와 같이 배포한 결과와 관련 정보가 표시되는 것을 볼 수 있다 그런데 배포(Release)를 하다보면 종종 다시해야하는 경우가 발생한다. 최종 배포전에 파기해야하는 버전이나, 빌드가 실패한 경우 등등 위의 그림을보면 당연히 편집 버튼을 눌러 삭제 가능할 것으로 보이지만, 아래의 그림과 같이 관련 정보 변경만이 존재한다. 그래서 gitlab을 뒤져보니 방법이 하나 나왔다. https://docs.gitlab.com/ee/api/releases/ Releases API | GitLab ..

IT한 것 2021.10.13