제임스딘딘의
Tech & Life

최근 포스팅

more

TCP : BBRv2 및 CUBIC 의 공존

최근 TCP Congestion Control Algorithm에 대해 살펴볼 기회가 생겨서 틈틈히 공부중이다. 우리말로는 혼잡 제어 알고리즘 이라고도 부르는 것 같고, 줄여서 CC Algorithm 으로 부르기도 하는 것 같다. 나는 편의상 CC 알고리즘 이라고 하겠다. 리눅스 커널 TCP 스택의 기본 CC 알고리즘으로는 CUBIC 이란 것이 사용되고있다. 그런데 BBRv2 라는 또다른 CC 알고리즘을 구글에서 개발하고 있는데, 이것이 최근 조명을 받고 있다. 나는 이 둘에 대해 관심을 가지고있으며, 실제 망에서 이 둘이 혼재되어 동작할 때 어떤 일이 발생 할 지 상당히 궁금하다. 실제 네트워크 망은 각종 라우터들이 존재할텐데, 이들의 버퍼크기, AQM 로직, RTT, Send Rate도 제각각일 것이..

Network Technology 2024.02.16 0

현대HT imazu 월패드 시간, 날짜 맞추는 방법

살고있는 9년차에 접어든 아파트단지 변전실 및 전기관련 점검이 진행되는 날이었다. 2주전부터 사전 공지됐던 대로, 아파트 단지 모든 동이 정전되었다. 공용공간의 엘리베이터부터, 각 세대내의 전기들까지. 약 3시간이 지난 후, 전기는 들어왔다. 그러나 월패드의 시간, 날짜는 1월1일로 초기화. 날씨, 온도 등의 정보도 비정상적으로 표시. 어라? 싶어서 대충 월패드를 만져보니 시간이나 날짜 설정하는 메뉴가 없다! 보통 이런 경우는 관리실/기계실 어디쯤 설치-운용 되는 중앙 서버로부터 날짜/시간/날씨 정보를 받아 표시하는 것으로 추정할 수 있다. 엘리베이터 호출기능도 안되는 걸로 미루어보아, 전기 복구 후 관리실측에서 해당 서버를 다시 기동시키지 않은 것으로 추측된다. 따로 관리실에 연락은 하지 않았다. 다른..

gRPC-java 프레임워크 로그 출력 설정

gRPC java framework를 사용해서 클라이언트와 서버를 구성하고, 서로 통신하도록 만들었다. 이후, 디버깅이 필요하여, gRPC java framework의 소스코드를 살펴보니, java.util.logging 패키지를 사용하여 로그 출력코드가 삽입되어 있는것을 보았다. 이 내용을 콘솔에 출력하는 방법을 찾아보았다. [logging.properties] # Create a file called logging.properties with the following contents. handlers=java.util.logging.ConsoleHandler io.grpc.level=FINE java.util.logging.ConsoleHandler.level=ALL java.util.logging...

Java 2023.12.19 0

베란다에 전기 콘센트 만들기 (feat. 전동 빨래 건조대)

2015년 지어진 평범한 33평 아파트. 안방 앞 베란다에 전동 빨래 건조대는 설치되어 있다. 그런데 콘센트가 없다. 빨래 건조 전용으로 베란다를 사용하고자 제습기를 가져다 놓았는데, 꽂을 전기가 없네? 안방 콘센트에서 멀티탭으로 전기를 끌어와 빨래를 건조시키곤 했지만, 전선때문에 샷시문을 꽉 닫을 수 가 없으니 불편함이 이만저만이 아니었다. 전선두께만큼 열린 샷시문 틈으로 들어오는 제습기의 소음과, 여름에는 빠져나가는 에어컨의 냉기. 그리고 겨울에는 슬금슬금 밀려들어오는 추위. 그래서 베란다 벽에도 콘센트를 만들어 보기로 했다. 전기는 천장의 전동 빨래 건조대의 것을 따내어(분기시켜) 콘센트로 만들면 될 것으로 판단했다. ⚠ 전기 작업전 반드시 차단기 내리기! ⚠ 본인이 피카츄 출신이거나 토르 출신이면..

망해버린 오산 세교 3신도시 (2023년 11월 부활)

국토부 세교 3신도시 후보지 발표 며칠 전인 11월 15일 수요일. 국토교통부에서 신규택지 후보지를 발표했습니다. 전국 5곳에 8만호 규모인데요. 크게 나누면 수도권(6.55만호) / 비수도권(1.45만호) 이고요. 수도권은 구리 토평2(1.85 만호), 오산 세교3 (3.1만호), 용인 이동(1.6만호). 이렇게 3곳 합해서 6.55 만호. 비수도권은 청주분평2(0.9 만호), 제주화북2 (0.55 만호) 2곳 합해서 1.45만호. 이렇게 됩니다. 이번에 지정된 곳들은 기존에 문재인정부의 국토부가 내놓았던 '3기 신도시'와는 다른 신규택지입니다. 중장기 주택공급 기반 확충을 위해 지정/발표 했다고 하며 9.26 공급대책 후속조치 차원이라고 하네요. 지난 2022년 11월 김포한강2(4만6000가구), ..

부동산 2023.11.21 0

렉서스 IS250 3세대 부품(번호) 찾기

외제차도 그렇고 국산차도 법적으로 부품내역 및 부품 가격 정보를 모두 공개하도록 되어 있어서 자신의 차량과 관련된 부품 정보를 미리 알고 있으면 차량정비에 큰 도움이 되곤 한다. 문제는 '부품 정보를 공개 해야한다'라는 법조문만 있지, 그걸 '어디에 공개 해야 한다' 라는 법조문은 없어서... 본인 차에 맞는 부품정보를 '알아서' '잘' 찾아보아야 한다. 최근 내가 타고있는 렉서스 IS250의 부품 정보를 찾아볼 일이 생겼는데, 아래 사이트들이 도움이 됐다. 1. lexus.com 렉서스 닷컴. 렉서스 차량 부품들을 조회홰 볼 수 있다. 단종된 IS나 CT의 부품도 조회가능. https://parts.lexus.com/ 이런식으로 이미지를 통해 부품을 찾을 수 있다. 이렇게 목록을 통해 부품번호(Part..

마우스 위치 강조하기 (feat. PowerToys)

윈도우키 + R 을 눌러 '실행' 창을 띄운 뒤 'PowerShell' 을 넣고 확인을 눌러 PowerShell을 실행한다. PowerShell에서 아래 명령을 넣고 엔터. winget install Microsoft.PowerToys --source winget 아래와 같이 윈도우 패키지 매니저가 PowerToys 를 다운로드 후 설치 한다. 잠시 기다리면 설치 성공 이란 메세지와 함께 설치가 완료되며, PowerToys가 자동으로 실행된다. 마우스 유틸리티 의 설정열기 버튼을 누른다. 1. 마우스 찾기 이와같이 마우스 찾기 사용 기능을 켜고, 활성화 방법은 편한 것을 선택해준다. 나는 왼쪽 컨트롤 키를 두번 누르는 것으로 사용. 왼쪽 Ctrl 키를 두 번 누르거나 마우스를 흔들어 커서 위치를 스포트라..

부자와 가난

부자가 된다고 모든 문제가 해결 되지는 않는다. 부자가 되면 돈과 관련된 문제만 해결 할 수 있을 뿐이다. 부자는 돈을 잘 다루고 돈에 대해서 잘 아는 사람에 불과 하다. 부자라고 해서 선하거나 인격이 높다는 의미는 아니다. 또한 가난하다고 해서 모든 문제가 해결 되지 않는다. 인생의 많은 문제들 중 가난하다고 해서 해결 되는 것은 하나도 없다. 가난하면 돈과 관련된 문제는 무조건 해결 할 수 없다. 돈은 가치 없다고 여기며 혐오하고 무시했던 자들은 돈 때문에 진짜 가치있고 중요한 것인 건강, 가족, 존엄성이 파괴 되는 경우도 발생한다. 가난하다는 것은 돈이 없다는 뜻 이상 이하도 아니다. 가난하다고 해서 선하거나 인격이 높다는 뜻은 아니다. 결국, 부자라고 인격이 나쁜 것도 아니고 가난하다고 해서 인격..

일기장 2023.05.14 0

ChatGPT : 거짓 정보를 그럴듯하게 포장해내는 인공지능

ChatGPT 라는 인공지능 언어모델 서비스가 최근 인기입니다. '언어모델' 이라는 단어에서 알 수 있듯이 사용자가 특정 언어로 질문을 하면 같은 언어로 대답을 해주는 인공지능입니다. 현재는 웹사이트에서 '문자' 로 사용가능한데, '음성-문자 변환' 기술을 잘 이어붙여주기만 하면 음성을 문자로 변환하는 것은 가능한 일이니, 곧 음성으로도 서비스 할 것 같아요. 저도 호기심에 몇번 ChatGPT사용을 해보다가, 사용을 해보니 뭔가 쓸만(?) 한 정보를 주는 것 같아서 종종 회사업무에도 활용합니다. 예를 들면 아래와 같이요. 최근에 회사에서 SMB 프로토콜을 사용하는 네트워크 파일 서버에 연결하는 안드로이드 기반 파일탐색기 앱에서 '이미지 미리보기' 기능을 구현할 수 있는지를 빠르게 검증해보라는 상사의 요구..

USB 규격 마스터링

USB(Universal Serial Bus)는 한국어로 '범용 직렬 포트' 라 번역할 수 있는 장치간 연결을 위한 표준 규격이다. 애플이 오리지널 아이맥(iMac)에 사용하기로 결정을 내린 1998년 이래로 2023년 현재까지 컴퓨터와 거의 모든 IT 장치의 표준 연결 유형으로 자리매김해왔다. USB가 등장하기 전에는 장치간 연결에 어떤 규격을 사용했었을까? ADB에서 FireWire (파이어와이어)와 SCSI (한국에서는 보통 '스카시' 불렀다)에 이르는 다양한 연결 유형이 있었다. 게다가 각각은 고유한 변형까지 있었다. USB 모양 다시 USB 이야기로 돌아와서. 대부분의 기술 표준들들이 그렇듯이 USB는 몇 년마다 새로운 버전이 출시되어왔으며, 속도, 기능부분이 점점 향상되어왔다. ‘범용’임에도 ..

동탄신도시 항공뷰와 호수공원 야경 - 2023년 5월 1일

동탄2신도시 라크몽 에서 호수공원 쪽을 바라본 야경이다. 멀리 동탄1신도시의 메타폴리스 주상복합 아파트도 보이고, 오른쪽 구석에는 동탄호수공원 린스트라우스도 보인다. 아래는 동탄신도시를 지나가는 항공기에서 촬영한 사진들이다. 2023년 5월 초에 촬영했다. 사진 오른쪽 볼록하게 순환하도록 놓여진 도로가 최근 도로를 낸 신주거단지라 불리는 지역이다. 사진의 아래는 동탄호수공원 지역인 산척동, 송동. 사진의 윗 부분은 동탄2신도시 시범단지와 11자상가, 중리IC 등이 보인다. 동탄 2신도시를 왼쪽지역과 오른쪽지역으로 갈라놓은 경부고속도로가 보인다. 곧 지하화 되어 땅속 터널이 될 것이고, 그 위는 공원으로 조성될 것이다. 동탄 1신도시의 상징과도 같은 반원형 도로망이 보인다.

부동산 2023.05.05 0

웹 서비스 구조(feat. SpringBoot와 nginx)

스프링부트 개념 우선 스프링 부트. '스프링 프레임워크'의 사이드 프로젝트로 시작되어 만들어진 웹 애플리케이션 프레임워크다. Java를 기반으로 한다. '스프링 부트'가 등장하기 전 '스프링 프레임워크'가 먼저 등장했는데, '스프링 프레임워크'는 초기 환경 설정시 시간을 많이 할애해야했다. 그것을 문제로 생각한 이들이 사이드 프로젝트로 '스프링 부트' 를 만들었다. 즉, '스프링 부트' 는 '스프링 프레임워크' 를 기반으로 하지만, 엄밀히 말하면 다른 것이니 주의가 필요하다. '스프링 프레임워크'는 위와 같은 구조를 가지고 있다. Python을 이용한 Django, Ruby를 이용한 Ruby on Rails, Javascript를 이용한 Node.js 이 있다면, Java 개발자들은 스프링(=스프링 프레..

Web Technology 2023.04.24 0

2023년. 아파트 분양가가 비싼 이유

2023년 4월입니다. 최근 분양하는 아파트단지들을 보고있자면, 흔히 말하는 '입지좋은' 곳이 아니면 청약미달이라는 쓴 잔을 마시게 됩니다. 당연한 것이긴 합니다만, 지난 상승장 기간이었던 2019년~2022년에는 논밭 한가운데 위치한 나홀로 아파트 입지가 아닌이상, 대부분 청약완료가 되었었지요. 그리고 모두가 똑같이 말씀하십니다. "분양가가 비싸다." 네. 맞습니다. 분양가가 비쌉니다. 그런데 한 번 생각해 봐야 할 것은 물가의 상승입니다. 보통 분양가는 주변 아파트 시세를 기준으로 1차적인 기준이 선정되고, 앞으로의 발전가능성으로 2차적인 기준이 산정됩니다. 그리고 준공시 까지의 물가상승률을 고려한 뒤에, 시공사의 마진을 추가합니다. 여기서 문제가 "물가상승률" 입니다. 이미 원자재 가격과 인건비가 ..

부동산 2023.04.11 0

[스프링부트] 레퍼런스 문서는 필수품

스프링부트 개발을 하다보면 스프링부트 버전별로 조금씩 달라지는 것들이 있다. 내가 겪었던 문제를 예를들면, 스타터 + 자동설정이 되도록 만든 라이브러리(maven프로젝트)를 AutoConfigure 에 등록하는 것. 2.X 버전까지는 META-INF/spring.factories 파일에, org.springframework.boot.autoconfigure.EnableAutoConfigration = [추가할 클래스 전체경로] 이런식으로 해줬었다. 그런데 이게 스프링부트 3 버전 부터는 변경된 걸 모르고 그대로 했더니, key is not supported as of Spring boot 3... 이런 에러가 발생한다. 레퍼런스 문서에서 'auto-configuration' 관련 키워드로 급하게 찾아보니..

Web Technology 2023.04.05 0

[Rust] 윈도우 환경에서 컴파일 실패 : linker link.exe not found

문제 아래는 Rust의 Hello world 출력 코드이다. fn main() { println!("Hello, world!"); } MS윈도우 환경에서, 이것을 cargo run 명령을 통해 실행해보려고 하는데 아래와 같은 에러를 만나게 될 때가 있다. error: linker link.exe not found 원인 Rust컴파일러는 MS윈도우 용 실행파일을 만들어내기 위해 MS Visual C++ Build Tools 를 사용한다. link.exe 는 컴파일된 오브젝트파일을 라이브러리들과 링크 시켜주는 빌드 툴의 하나. 그런데, 어떤 이유에서인지 이게 설치가 안된 상황이라면 이런 에러가 발생한다. Compiling helloworld v0.1.0 (C:\Users\DELL\helloworld) err..

[Rust] main함수에서 test function 호출하는 방법?

Rust에서는 unit test 를 위해 #[cfg(test)] 및 #[test] 와 같은 annotation을 사용한다. 아래와 같이 tests라는 모듈에 #[cfg(test)] 를 붙여주면, 해당 모듈은 test 를 위한 모듈이라고 선언하는 것과 같은 의미. 그런데 이걸 main 함수에서 호출할 수 있을까? main 함수에서 tests 모듈안의 open_door 함수를 호출하는 방법이 있을지 알아보았다. #[derive(Debug)] struct Door { is_open: bool, } impl Door { fn new(is_open: bool) -> Door { Door { is_open } } } trait Openable { fn open(&mut self); } impl Openable fo..

대출 이자를 낮춰라! "금리 인하 요구권"

가계대출 금리인하요구권 정의 - 채무자인 고객이 본인의 신용상태가 호전되었다고 인정되는 경우 합리적인 근거를 서면으로 금리인하를 요구할 수 있는 권리를 말합니다. 돈빌려 간 자의 신용상태가 호전되었다고 인정될 때, 돈빌려간 사람이 직접 '내 대출이자를 낮춰라' 하고 요구할 수 있는 권리. 그렇다면 은행은 언제 인정을 해줄까요? 가계대출 금리인하 요구 요건 직장의 변동 · 신용등급이 향상된 직장으로의 이동 등 보다 안정적인 직장으로 이직한 경우 → 중소기업에서 중견기업으로. 혹은 대기업으로. 당연한 거겠죠? 연소득의 변동 · 연소득이 여신의 신규, 대환, 재약정, 연기시점 대비 15% 이상 증가한 경우 → 연소득이 15% 이상 증가한 경우. 즉, 연봉 3000만원→3450만원, 5000만원 → 5750만원..

부동산 2023.04.02 0

[Rust] 시작하기 - 개발 환경 만들기

Rust 시작하기 Getting started A language empowering everyone to build reliable and efficient software. www.rust-lang.org 회사에서 3일짜리 교육을 통해 Rust 언어를 학습할 기회가 생겼다. Rust 학습을 시작하는데 필요한 환경설치부터 간단한 hello world 출력 까지 진행해 보았다. Rust는 멀티플랫폼을 지원하기 때문에 MS윈도우, 리눅스나 MacOS 에서 학습환경을 구성가능하다. 내 학습 환경은 MS윈도우10 이다. Rust 언어가 무엇인지 궁금하다면? 아래 링크의 글을 참고로 읽어보길 바란다. https://www.technologyreview.kr/how-rust-went-from-a-side-proj..

수성 스테인과 오일 스테인의 차이

목재는 시간이 지날 수록 본래의 색을 잃어버리고, 형태가 변형되죠. 그래서 목재로 제작된 가구나 외장재를 설치한 곳은 지속적인 관리를 해 주어야해요. 그렇지 않으면 부패, 균형, 뒤트림, 얼룩 등의 하자가 발생하고 말죠. 목재를 오래동안 유지하기 위해 일반적으로 사용하는 방법. 바로 스테인입니다. 스테인은 목재에 스며드는 착색재와 마감재를 말해요. 쉽게 말해 목재의 색감을 표현하고, 자재로서의 기능을 유지하기 위한 염색약이라고 생각하시면 됩니다. 목재에 스테인을 발라주면, 나무의 재질과 형태를 오래도록 유지 시켜주어 목재의 수명을 늘려줍니다. 스테인은 보통 오일 스테인과 수성 스테인으로 구분되는데요. 차이를 이해하고 용도에 따라 구분하여 사용하면 됩니다. 오일 스테인 오일 스테인은 목재에 깊게 침투하여 ..

인기 글

[리눅스/Vi] vi editor 문자열 치환(replace) 방법

개요 리눅스 환경에서 코드를 작성하다 보면, 종종 vi editor 혹은 vim editor를 사용해서 코드의 특정 단어를 다른 단어로 교체(replace) 해야 하는 상황이 종종 있다. 즉, 특정 문자열을 치환해야 하는 경우이다. 예를들면, 현재 소스코드 파일에서 'apple_result' 이라는 변수를 모두 'melon_result' 라는 변수로 바꾸어야 하는 상황 같은 것 말이다. 상황에 따라 아래와 같은 몇가지 방법이 있다.우선 ex모드로 진입해야 한다. 1. 현재 문서를 편집중인 '편집모드'라면, 키보드의 ESC 키를 눌러 편집모드에서 명령모드로 나온다.2. 콜론(:)을 눌러 ex모드로 진입한다.3. ex모드에서 아래와 같은 방법들 중, 자신의 상황에 맞는 방법을 선택해 수행하면 된다. 혹시, ..

Linux 2017.06.27 1

[리눅스/Vi]Vim, Vi, GVim 에서 '작업 취소(Undo)' / '다시 하기(Redo)' 방법

Vi (Visual Display Editor) 리눅스나 유닉스를 처음 접하는 사람에게 vi는 매우 골치아픈 존재일지도 모릅니다.윈도우환경에서 문서 편집기를 써 본 사람이라면, vi는 매우 불편한 편집기로 생각 될지도 모르죠.그러나 vi 편집기에 익숙해지면 이보다 좋은 문서 편집기는 없다는것을 느끼게 될 것입니다. 문제는 익숙해지는데 오래걸려서 그렇죠(...먼산...) 만약 당신이 윈도우에 익숙한 사용자라면, 텍스트 에디터에서 무언가 잘못된 입력을 한 경우, Ctrl+Z 로 간단하게 그 잘못된 입력을 되돌릴 수 (Undo) 있다는걸 알고 있을것입니다. 리눅스에서 기본적으로 사용하는 Vi에디터 에서도 동일한 기능을 제공합니다만, 단축키가 다릅니다.방법을 알아봅시다. 이하 존칭은 생략합니다. 작업 취소만약 ..

Linux 2012.04.18 0

[GPS 이야기] NMEA-0183 형식, NMEA Sentence Format

만약 당신이 GNSS와 직접적으로 관련된 일을 한다면. 혹은 간접적으로 GPS등과 같은 것을 통해 얻은 위치정보등을 다뤄야 할 일이 있다면. 조만간 'NMEA' 라는 것을 마주하게 될 수도 있다. 위치정보라는것은 어떤 목적으로 활용하느냐에 따라 다뤄야 하는 데이터는 달라진다. 현재 위치에 기반하여 날씨정보를 보여주는 어플리케이션처럼 간단히 위도, 경도만 알면 되는 경우가 있는가 하면, 목적지까지 경로를 알려주는 내비게이션 어플리케이션처럼 때로는 위도, 경도 뿐만아니라 속도, 위치정확도 오차값, 방향.. 등을 알아야 하는 경우도 존재 한다. 또한 종종 등산 트래커 어플리케이션처럼 고도를 활용하는 경우도 있다. 사실 고가의 GPS가 아닌 이상, 스마트폰과 같은 저렴한 GPS칩이 주는 고도값은 부정확하다고 알..

GPS 이야기 2017.08.10 3

현대HT imazu 월패드 시간, 날짜 맞추는 방법

살고있는 9년차에 접어든 아파트단지 변전실 및 전기관련 점검이 진행되는 날이었다. 2주전부터 사전 공지됐던 대로, 아파트 단지 모든 동이 정전되었다. 공용공간의 엘리베이터부터, 각 세대내의 전기들까지. 약 3시간이 지난 후, 전기는 들어왔다. 그러나 월패드의 시간, 날짜는 1월1일로 초기화. 날씨, 온도 등의 정보도 비정상적으로 표시. 어라? 싶어서 대충 월패드를 만져보니 시간이나 날짜 설정하는 메뉴가 없다! 보통 이런 경우는 관리실/기계실 어디쯤 설치-운용 되는 중앙 서버로부터 날짜/시간/날씨 정보를 받아 표시하는 것으로 추정할 수 있다. 엘리베이터 호출기능도 안되는 걸로 미루어보아, 전기 복구 후 관리실측에서 해당 서버를 다시 기동시키지 않은 것으로 추측된다. 따로 관리실에 연락은 하지 않았다. 다른..

[네트워크/C] sockaddr, sockaddr_in, sockaddr_un 구조체 - 소켓 주소 정보를 나타낸다

기본 지식'Socket Address Structures' 에 관해서 설명하는 글이다. 리눅스/유닉스 시스템에서는 소켓(socket)의 통신 대상을 지정하기 위해 '주소(address)'를 사용한다. 이 '주소' 라는 것을 저장하거나 표현하는데 사용하는 구조체가 바로, 본 포스팅에서 설명하고자 하는 'struct sockaddr' 이다. bind( ), connect( ) 와 같은 함수들이 2번째 매개변수로써 바로 이 'struct sockaddr' 을 받는다. 이 struct sockaddr은 기본 형태이고, 주소체계(Address family)값에 따라서 구조체를 형변환 해서 사용하면 편리하다. 즉, 일반적으로 개발을 하다보면 struct sockaddr_in, struct sockaddr_un, s..

C 2017.06.14 1

웹 서비스 구조(feat. SpringBoot와 nginx)

스프링부트 개념 우선 스프링 부트. '스프링 프레임워크'의 사이드 프로젝트로 시작되어 만들어진 웹 애플리케이션 프레임워크다. Java를 기반으로 한다. '스프링 부트'가 등장하기 전 '스프링 프레임워크'가 먼저 등장했는데, '스프링 프레임워크'는 초기 환경 설정시 시간을 많이 할애해야했다. 그것을 문제로 생각한 이들이 사이드 프로젝트로 '스프링 부트' 를 만들었다. 즉, '스프링 부트' 는 '스프링 프레임워크' 를 기반으로 하지만, 엄밀히 말하면 다른 것이니 주의가 필요하다. '스프링 프레임워크'는 위와 같은 구조를 가지고 있다. Python을 이용한 Django, Ruby를 이용한 Ruby on Rails, Javascript를 이용한 Node.js 이 있다면, Java 개발자들은 스프링(=스프링 프레..

Web Technology 2023.04.24 0

[Rust] 윈도우 환경에서 컴파일 실패 : linker link.exe not found

문제 아래는 Rust의 Hello world 출력 코드이다. fn main() { println!("Hello, world!"); } MS윈도우 환경에서, 이것을 cargo run 명령을 통해 실행해보려고 하는데 아래와 같은 에러를 만나게 될 때가 있다. error: linker link.exe not found 원인 Rust컴파일러는 MS윈도우 용 실행파일을 만들어내기 위해 MS Visual C++ Build Tools 를 사용한다. link.exe 는 컴파일된 오브젝트파일을 라이브러리들과 링크 시켜주는 빌드 툴의 하나. 그런데, 어떤 이유에서인지 이게 설치가 안된 상황이라면 이런 에러가 발생한다. Compiling helloworld v0.1.0 (C:\Users\DELL\helloworld) err..

베란다에 전기 콘센트 만들기 (feat. 전동 빨래 건조대)

2015년 지어진 평범한 33평 아파트. 안방 앞 베란다에 전동 빨래 건조대는 설치되어 있다. 그런데 콘센트가 없다. 빨래 건조 전용으로 베란다를 사용하고자 제습기를 가져다 놓았는데, 꽂을 전기가 없네? 안방 콘센트에서 멀티탭으로 전기를 끌어와 빨래를 건조시키곤 했지만, 전선때문에 샷시문을 꽉 닫을 수 가 없으니 불편함이 이만저만이 아니었다. 전선두께만큼 열린 샷시문 틈으로 들어오는 제습기의 소음과, 여름에는 빠져나가는 에어컨의 냉기. 그리고 겨울에는 슬금슬금 밀려들어오는 추위. 그래서 베란다 벽에도 콘센트를 만들어 보기로 했다. 전기는 천장의 전동 빨래 건조대의 것을 따내어(분기시켜) 콘센트로 만들면 될 것으로 판단했다. ⚠ 전기 작업전 반드시 차단기 내리기! ⚠ 본인이 피카츄 출신이거나 토르 출신이면..

풀업 저항, 풀다운 저항 (Pull-up, Pull-down)

풀업 저항, 풀다운 저항 (Pull-up, Pull-down) - 입력단 회로MCU나 임베디드 시스템을 구성할 때, 입력부분을 설계해야 하는 경우가 있다. 여기서 입력 부분이라 하면, 버튼이나 스위치 같은 물리적인 입력이 발생하는 부분을 말한다. 이때, 풀업 (Pull-up) 저항을 달거나 풀다운(Pull-down) 저항을 달게 된다. 왜 그런지 이유를 알아보자. 이 저항이 무슨 목적을 가지고 있는지를 이해하면 된다. 그리고 더 나아가, 이 저항을 얼마짜리를 달아야 하는지, 저항값 계산 방법을 알아보자. 플로팅 상태풀업 / 풀다운이 왜 필요한지를 이해하려면 먼저 플로팅(Floating) 상태라는 것을 알면 쉽다. 플로팅은 '떠있다, 부유하는, 유동적인' 등의 뜻이다. 디지털회로에서 플로팅 상태 라고하면,..

Basis Circuit 2016.12.16 0

[GPS 이야기] TTFF와 Almanac, Ephemeris 그리고, GPS의 start 방식, Cold start/Hot start/Warm Start ?

여기서는 GPS에 대해 이야기를 해볼까 합니다.GPS는 Global Positioning System의 약자인 것은 널리 알려진 내용인데요. 오늘은 GPS의 이야기를 시작하기에 앞서, 몇가지 용어를 알아볼까 해요. TTFFTTFF(Time To First Fix)란 GPS 수신기의 전원을 켰을 때 GPS 수신기가 현재 위치를 파악하는 데까지 소요되는 시간을 뜻하며, 상황에 따라 Factory Start, Cold Start, Warm Start, Hot Start로 구분됩니다.TTFF를 이해하기 위해서는 먼저 Almanac 데이터와 Ephemeris 데이터에 대하여 이해할 필요가 있습니다.지상의 여러 부 관제국에서 GPS 위성신호를 항시 관측하여 그 데이터를 주 관제국으로 보내고, 주 관제국에서는 그 데..

GPS 이야기 2017.04.13 2

[Rust] 시작하기 - 개발 환경 만들기

Rust 시작하기 Getting started A language empowering everyone to build reliable and efficient software. www.rust-lang.org 회사에서 3일짜리 교육을 통해 Rust 언어를 학습할 기회가 생겼다. Rust 학습을 시작하는데 필요한 환경설치부터 간단한 hello world 출력 까지 진행해 보았다. Rust는 멀티플랫폼을 지원하기 때문에 MS윈도우, 리눅스나 MacOS 에서 학습환경을 구성가능하다. 내 학습 환경은 MS윈도우10 이다. Rust 언어가 무엇인지 궁금하다면? 아래 링크의 글을 참고로 읽어보길 바란다. https://www.technologyreview.kr/how-rust-went-from-a-side-proj..

PotPlayer 포터블(무설치) 무광고 버전 (v1.7.21566)

다음 팟 플레이어의 무설치 및 무광고 버전입니다. 귀찮은 광고를 생략할 수 있으며, 설치없이 사용할 수 있습니다. Download Link (PotPlayer_v1.7.21566 포터블, 광고없는 마지막 버전) https://www.mediafire.com/file/5w30led714hx9ng/PotPlayer__v1.7.18958.7z/file PotPlayer _v1.7.18958 www.mediafire.com 관련 링크 Official Page http://tv.kakao.com/guide/potplayer Official Forum Dev 에디션 영역 : http://cafe.daum.net/pot-tool/AZMV Public 에디션 영역 : http://cafe.daum.net/pot-too..

NULL ptr 2022.01.08 0

[네트워크/C reference] inet_pton 함수

기능 요약 (Summary)inet_pton( ) 함수는 사람이 알아보기 쉬운 텍스트(human-readable text)형태의 IPv4 와 IPv6 주소를 binary 형태로 변환 하는 기능을 한다. 헤더 (Header files)이 함수를 사용하려면 다음 헤더파일을 포함시킨다. #include API 원형 (API Prototype)3개의 파라미터를 가지는 함수이다. int inet_pton(int af, const char *src, void *dst); af [input] - address family를 지정한다. src의 문자열이 IPv4 주소를 나타내는지, IPv6 주소를 나타내는지를 함수에 알린다.src [input] - 문자열 형태의 IP주소를 넣는다.dst : [output] - src를..

C 2017.11.12 0

[여드름 치료] 살균제 연고 - 듀케이겔

내가 사용할 것은 아니지만. 약국에서 듀케이 겔 연고를 받아오면서 문득 옛날 생각이 나서. 여드름으로 마음고생한 적이 있다. 아직도 기억한다. 21세. 군에 입대하고 훈련소에서 3일째 되던날 부터 시작된 붉고 굵고 딱딱한 여드름들. 성인이 되고 계속되어 33세까지 얼굴 곳곳을 뒤덮으며 나를 괴롭혔었다. 군 제대 하고 23살부터 차앤박피부과 2년, 오라클피부과 1년. 여드름 잘치료한다는 동네피부과에서 2년. 여드름 잘 다스린다는 유명 한의원에서 한약 먹어가며 2년. 유명하다는 에스테틱에서 1년. 다시 또 피부과... 온갖 곳을 전전하며 여드름 치료에 (정말로)수천만원을 쏟아부었었다. 여드름 치료비만으로 그랜져한대 뽑았을듯. 아무튼 34세부터는 많이 호전되었다. 36세인 지금도 여드름이 전혀 나지 않는 것은..

일기장 2022.04.18 0

[i30 GD] 그녀의 첫 중고차 맞이 준비물.

함께사는 분이 운전면허를 따고 첫번째 중고차를 샀다. 운전연습용 + 출퇴근용. 현대 i30 GD. 2012년식. 주행거리 2만 7,500km 10년이나 된 중고차이지만 그녀에게는 나름 의미있을 생애 첫 자동차. 같이 머리를 맞대고 고민 끝에 애칭도 지어줬다. "빵붕이" 그리고, 빵붕이와 함께 즐거운 car-life를 즐기라고 몇가지 선물들을 준비해줬다. 0. 실내 디테일링 세차 운전면허 따고 첫 연습용 자동차로 중고차 구매를 했다면, 그리고 차량 연식이 꽤 된다면 일단 실내 디테일링 세차 부터 하는 게 좋다. 중고차 구매 후 0순위 작업. 전차주(들)이 누구인지도 모르고, 그들이 차안에서 뭘 했을지 모르기 때문이다. 또한 이 중고차가 매장에 전시되어 있는 동안, 몇명이나 보러 와서 만져보고 시승을 해보고..

i30 2세대 (GD) 2022.02.28 0

[NMEA-0183] Checksum 계산 예제코드 (How to calculate checksum of NMEA-0183)

본 포스팅에서 다뤄볼 내용은 NMEA-0183 문장의 checksum 계산 방법이다.보통 GPS chip은 해석한 GPS신호를 NMEA라는 특정 형태의 프로토콜로 제공한다.NMEA 가 무엇인지에 대해서 더 자세히 알고싶다면 아래 포스팅을 참고하도록 하자. 2017/08/10 - [하드웨어 Note/GPS 이야기] - [GPS 이야기] NMEA-0183 형식, NMEA Sentence Format 위 포스팅에 나와있듯이, NMEA sentence는 $ 문자로 시작해서 * 문자로 끝난다.checksum의 계산은 $, * 의 사이에 있는 각각의 문자 하나하나를 exclusive-or (XOR) 연산 및 누적하면 된다.어떤 NMEA sentence가 주어졌을 때, "*" 뒤에 있는 16진수 두자리의 checks..

GPS 이야기 2017.08.26 0

런플랫 타이어 (Run Flat Tire) 장점 단점

자동차 타이어에 대한 관심최근 타이어에 대한 관심이 생겼다.얼마전 4만 km를 탄 타이어중 앞쪽 한개가 펑크나면서, 전체 4개를 일시에 교체하게 되면서이다.어떤 타이어를 끼울까? 참많이 고민했다. 22살부터 현재까지 만 9년간 운전을 하면서 그동안 나는 타이어를 그다지 중요하지 않게 여겼다.타이어란 단지, 오래오래 사용가능하고 굴러가기만 하면 된다고 생각했다. 그러나 우리나라 전체적인 자동차문화가 발달하고 그 깊이가 깊어지면서, 다양한 매체를 통해서 쉽게 자동차에 대한 정보를 접하게 되었다.그러면서 자동차의 타이어에 관심을 갖게 되었다. 타이어의 중요성을 깨닫게 된 것이다. 여러 타이어 회사들은 단순히 내구성이 뛰어나다는 것을 떠나서 조금 더 접지력이 좋은 타이어, 특정 계절에 적합한 성능을 발휘하는 타..

자동차 이야기 2017.09.21 3

pow( ) - 거듭제곱 함수 구현하기(정수 기반)

개요C언어의 수학 함수 중, 거듭제곱을 구하는 pow( )라는 함수가 있다.예를들어, 2의 10승을 계산하고 싶다면, pow(2.0, 10.0); 형태로 사용하는 함수이다.이 함수는 math.h 헤더를 include하면 사용할 수 있는 함수이다. #include double pow(double x, double y); x : 거듭제곱의 밑수y : 거듭제곱의 지수 그런데 이렇게 거듭제곱을 계산하는 함수를 직접 구현해야 하는 경우가 있었다.매우 큰 수의 거듭제곱을 계산하면서 중간중간에 주어진 특정 값으로 mod 연산(나눗셈 후 나머지 값을 취하여 반환하는 연산)을 해야 하는 알고리즘 풀이 문제였다. 문제 조건 상, pow( )를 직접 사용하면 연산속도가 느려지는 상황이라 직접 구현을 시도해 보았다. my_p..

C 2017.12.21 0

TCP Flags: PSH 그리고 URG

개요TCP헤더를 들여다 보면, 1비트 짜리 플래그가 몇개 있다. 1비트로는 0 아니면 1 만을 나타낼 수 있기 때문에, 플래그는 태생적으로 boolean type 이다.이 플래그들은 TCP연결을 통하는 데이터의 흐름을 조절 및 제어 하기 위해 사용된다고 알려져 있다. RFC 3168 에 의해 혼잡 통지(Congestion Notification)을 위해 추가된 CWR 그리고 ECE 플래그를 제외하고나면, 총 6개의 TCP 제어 플래그가 남는다.일단 CWR과 ECE는 논외로 하자. Data Offset 다음을 보면, 6개의 플래그, URG, ACK, PSH, RST, SYN, FIN 이 보인다. 그 중, 아래 4개는 TCP연결의 설정(establish), 유지 관리(management) 및 분리(tear-..

Network Technology 2017.09.29 1

마우스 위치 강조하기 (feat. PowerToys)

윈도우키 + R 을 눌러 '실행' 창을 띄운 뒤 'PowerShell' 을 넣고 확인을 눌러 PowerShell을 실행한다. PowerShell에서 아래 명령을 넣고 엔터. winget install Microsoft.PowerToys --source winget 아래와 같이 윈도우 패키지 매니저가 PowerToys 를 다운로드 후 설치 한다. 잠시 기다리면 설치 성공 이란 메세지와 함께 설치가 완료되며, PowerToys가 자동으로 실행된다. 마우스 유틸리티 의 설정열기 버튼을 누른다. 1. 마우스 찾기 이와같이 마우스 찾기 사용 기능을 켜고, 활성화 방법은 편한 것을 선택해준다. 나는 왼쪽 컨트롤 키를 두번 누르는 것으로 사용. 왼쪽 Ctrl 키를 두 번 누르거나 마우스를 흔들어 커서 위치를 스포트라..