본문 바로가기

분류 전체보기

(173)
1분만에 하는 터미널 실행 시 날씨 정보 보기 설정(wttr.in) 리눅스에서 백그라운드(&)를 Done 없이 깔끔하게 실행하기에서 wttr.in의 날씨정보를 터미널을 열때마다 뿌리고 있다고 했는데, 오늘은 그 방법에 대해 소개하고자 한다. 먼저, wttr.in은 wego의 래핑으로 시작한 프로젝트로 콘솔 지향 기상 예보 서비스다. 이미지 없이 Text만으로도 멋진 날씨 정보를 볼 수 있는 서비스다. 자세한 정보는 https://github.com/chubin/wttr.in를 참조하면 된다. 설정 방법 여기서는 curl을 사용하지만, 다른 http 클라이언트를 사용해도 무방하다. 1. .bashrc나 .zshrc 파일을 연다. (사용하는 쉘에 맞게) 2. 빈 줄에 다음 명령어을 추가한다. (도시를 생략하면 현 위치 기반으로 동작) `(curl -s "ko.wttr.in/..
리눅스에서 백그라운드(&)를 Done 없이 깔끔하게 실행하기 리눅스에서 '&' 명령어를 사용하여 작업을 백그라운드에서 시작하면, 아래와 같이 PID와 작업이 완료되었을 때의 + Done 메시지가 뿌려진다. 하지만 필요없는 경우도 있다. WSL2를 사용하면서, curl로 wttr.in의 날씨정보를 터미널에 뿌리고 있는데, 이를 백그라운드로 실행하자, 날씨정보 앞뒤로 저 메시지가 뜨게 됐었다. 처음에는 output을 /dev/null로 보내는 글만 있었는데, 당연하지만 날씨 정보만 보고 싶은거지, 모든 output을 버리고 싶었던건 아니었다. 서론이 길었다. 답은 명령을 괄호로 감싸는 것이다. 괄호로 감싸게 되면 subshell에서 실행되기 때문에 위 두 메시지가 보이지 않는다고 한다. 예) (curl wttr.in &) 참고자료 : https://stackoverf..
4/26 - 블록 경제화와 개발자 2018년, 미국-중국 무역 전쟁 미국은 중국에게 보복관세를 부여했다. 블록 경제화의 시작은 여기서부터 시작되었다고 생각한다. 미국의 관세부여는 주변국들로 하여금 경제적인 이득보다 안정성을 추구하게 하는 조치였다고 생각한다. 이 조치 이후에는, 미국과 긴밀한 연결에 있으면서 중국에 대한 노출이 많은 경우는 잠재적인 리스크를 안게 되었다. 함께하거나 싸우거나 러시아의 우크라이나 침공은 러시아와의 관계에 대해 회색지대를 없애버렸다. 이전까지는 정치와 경제를 별개로 두어, 러시아와 무역을 하는 것이 큰 문제가 되지 않았다. 하지만 적어도 전쟁이 계속되는 한 러시아와 함께하는 것은 어려운 일이 되었다. 회색지대는 러시아뿐만이 아니라, 중국도 있다. 중국과는 회색지대라 하기도 어려울 정도로 대부분의 국가가 경제적..
당신이 몰랐던 마진 상쇄(겹침)현상의 이유 들어가며 종종 블록 요소나 빈 요소의 마진이 겹쳐진 것처럼 사라지는 경우가 생긴다. 이는 마진 상쇄(margin collapsing)이라 부르는 현상으로, 가장 큰 한 가지 마진 값으로 합쳐지는 현상이다. W3C의 CSS 스펙를 찾아봐도 왜 이런 현상을 규정했는지에 대해 명확한 이유가 나타나지는 않는다. 그리고 대부분의 한국어 문서에서 마진 상쇄가 어떤 경우에 일어나는지와 해결책만이 적혀 있기에 "왜 마진 상쇄를 규정했는지"에 대한 궁금증을 해소하기에는 부족했다. 그러던 중 stackoverflow에서 이를 잘 설명 해준 멋진 글을 하나 발견했다. HTML과 CSS HTML은 Hyper Text Markup Language다. 그리고 기본적으로 HTML을 통해 만드는 것은 '문서'다. 지금은 게임을 비롯..
자바스크립트로 만 나이, 연 나이, 세는 나이 한번에 구하기 연단위로 나이를 세는 경우, 만 나이, 연 나이, 세는 나이 이렇게 3가지가 나올 수가 있다. 각각 나이의 사용은 다음과 같다. 만 나이 : 법적 나이로, 법률 및 공문서 등에는 만 나이를 사용해야 한다. 연 나이 : 연도를 제외한 생일을 모를 때 사용할 수 있다. 또한 청소년 보호법 등에서, "n세가 되는 해의 1월 1일을 맞이한 사람"처럼 우회적으로 사용하기도 한다. 세는 나이 : 주로 일상 생활에서 사용하는 나이로, 연 나이에 한 살을 더한 값인 '햇수'다. 다음 함수는 2022년 4월 13일 기준으로 1970년 12월 31일생의 나이를 {age: 51, yearAge: 52, countingAge: 53}으로 반환한다. 아래 코드를 사용하면 나이 계산을 만나이, 연나이, 세는나이를 한번에 할 수 ..
모바일 디바이스를 위한 웹 최적화가 필요한 이유 원래는 애플의 아이폰과, 최신 플래그십 안드로이드 스마트폰의 성능은 급속도록 증가하고 있다. 이에 맞춰 모바일 디바이스를 위한 웹 성능 최적화 전략이 수정될 가능성이 있다. 느린 핸드폰을 지원하기 위한 자바스크립트 성능 최적화보단, 120Hz 스크린을 위한 애니메이션 지원이 더 중요해질 수 있다. 물론 모바일 디바이스는 배터리라는 한계점을 안고 있기 때문에, 여전히 자바스크립트 성능 최적화는 중요하다. ―라고 생각했었다. 현실은 달랐다. 이 글에 따르면 모바일 성능 격차는 매우 크다. 특히 안드로이드와 iOS의 성능 격차는 크며, 플래그십 안드로이드와 중저가 안드로이드 스마트폰의 성능 격차는 충격적으로 크다. 원래 위와 같이 생각했던 이유는 구글에서는 평균적인 모바일 기기를(라이트하우스등) 2016년에 ..
2022년 2월 회고 서론 새해부터 1월 3주까지는 꼬박꼬박 주간 회고를 작성했었다. 그러나 1월 3주 이후로 작성하지 않았다. 회고할 내용이 없었기 때문이기도 했다. 너무 짧은 주기라 그런지 KPT 항목들이 반복되는 느낌도 있었다. 회고할 내용이 아예 없는 것은 아니었다. 하지만 일반화하거나 필터링할 경우 어정쩡한 회고 내용이 될 것이라 생각하기에 (쓰는 것이 더 좋음에도 불구하고) 이를 핑계로 회고를 쓰지 않았다. 여담으로, 글에서 뭔가 구체적인 부분들이 생략된 기분이 든다면, 이는 일반화를 하였기 때문이다. 어찌 보면 추상화라고도 할 수 있을 것 같다. 2월에는 여러 변화를 맞았다. 사소한 것으로는 겨우내 사회적 거리두기(핑계) 때문에 몸무게가 늘었다. 운동을 하기로 마음 먹었다. 2월을 뒤흔든 일이라면 Position..
2/23 - 무엇을 해야 할지 모르는 것에서 벗어나기 플래닝이 막막했다. 산출물은 무엇인지 알았지만 그래서 그 산출물에 어떤 내용을 담을지는 하나도 보이지 않았다. 마치 밤하늘의 별을 보고 길을 찾는 기분이었다. 어제보다 분명 더 많은 정보를 얻고 있었지만 핀트는 잡지 못했었다. 업무적인 과몰입이라고도 할 수 있었던 것 같다. 별을 보고 길을 찾지 않고 별만 보고 별자리를 만들었다. 계속해서 생각을 발산하고 점점 세부사항을 생각했다. 일은 점점 커져만 갔었다. 완벽하지 않아도 되었지만 완벽하게 하려 했었다. 이대로는 안될 것 같았다. 조언을 구하면서 여러 질문에 답을 하면서 실마리를 찾았다. 무엇을 해야 할지 몰랐던 것은 목표를 몰랐기 때문이었다. 현재 상황을 정리했다. 정해진 것은 무엇인가? 목표는 무엇으로 정할까? 어떤 게 있을지 모를 n가지 방법 대신..