전체 글 704

JPG 용량 줄이는 웹사이트, TinyJPG

TinyJPG – Compress WebP, PNG and JPEG images intelligently 소개 카메라로 찍은 JPG 사진을 업로드하면, 손실을 최소화하면서 용량을 최적화해줍니다. 비교 파일 비교 원본 파일 최적화 파일 해상도 3000x4000 3000x4000 파일 크기 2.9MB 0.195MB 무려 15배나 용량이 줄어들었다! ⚠️ 주의 : 사진 특성 상 그라데이션이고, 사진 전체가 유사한 색상이기 때문에 더 극적인 최적화가 가능했던 것일 수 있습니다. 사진 마다 최적화 크기는 다를 수 있습니다. 결론 카메라로 찍은 사진의 용량이 너무 크다면, 이미지의 사이즈를 줄이는 방법을 고려해보고, 찍은 사진이 고해상도에서 봐야만 할 경우에는 TinyJPG를 사용하는 것도 추천합니다.

주요 HTTP 상태 코드 (feat. 맥도날드)

1XX : Information Response 상태코드가 1로 시작하는 경우는 서버가 클라이언트로부터 요청을 받았으며, 서버에 연결된 클라이언트는 작업을 계속 진행하라는 의미이다. 해당 코드는 HTTP 1.0 에서 지원되지 않는다. 식당에서 손님이 종업원에게 음식을 주문하는 상황을 생각할 수 있다. 손님이 음식을 주문한 후, 종업원이 1XX로 주문이 완료되었음을 응답해주는 상황을 생각하면 된다. 100 Continue 진행 중임을 의미하는 응답코드이다. 현재까지의 진행상태에 문제가 없으며, 클라이언트가 계속해서 요청을 하거나 이미 요청을 완료한 경우에는 무시해도 되는 것을 알려준다. 손님이 음식을 주문한 후에 오랫동안 음식이 나오지 않자, 종업원에게 "혹시 10번 테이블 음식 주문 들어갔나요?"라고 물..

HOL (Head Of Line) 블로킹 문제

개요 기존의 HTTP의 요청은 큐 처리와 동일하다. 먼저 들어온 요청을 반드시 먼저 응답해주어야 하는 방식으로 동작하는데, 만약, 먼저 들어온 작업 요청에서 지연이 발생하면 이후 들어온 요청들은 먼저 들어온 작업이 끝날 때 까지 함께 대기해야 한다. 이 문제를 HTTP/2에서 어떻게 해결했는지 간단하게 정리한다. HTTP/1.1 HTTP는 TCP 연결을 기반으로 동작하는 프로토콜이다. HTTP는 비연결성 프로토콜이기 때문에 한 번 연결로 한 번의 요청과 응답을 하고 응답이 끝나면 연결을 끊어버린다. 그런데 한 번 연결을 수립할 때 마다 오버헤드가 발생한다. 예를 들어, 전체 작업량을 10이라고 한다면, 연결을 수립하는데만 4의 작업량이 필요하다고 가정하면 한번의 요청과 응답만 하고 연결을 끊기에는 너무 ..

전체에서 조각을 뜻하는 영단어들

piece slice fragment shard sector segment 순간적으로 조각을 나타내는 용어에 어떤 단어를 사용해야 할지 혼란스러움을 느꼈다. 쉽게 외우기 위해 개인적으로 생각하는 각 영단어의 차이를 정리해보았다. 부정확할 수 있으니 유의바람! Piece 케이크와 같이 큰 덩어리에서 잘라낸 부채꼴 모양의 조각은 piece라고 한다 (사전에 조각의 개수를 고려해야만 함). Slice 식빵과 같이 큰 덩어리에서 종이 수준의 면으로 잘라낸 조각은 slice라고 한다 (사전에 조각의 개수를 고려할 필요가 없음). Fragment 유리창을 깨뜨렸을 때와 같이 불규칙적인 모양의 조각을 fragment라고 한다 (의도하지 않은 상황). Shard fragment 중에서 도자기 유물과 같이 과거의 정보를..

메모리 용어 간단 정리 (2/2)

메모리 용어 간단 정리 (1/2) (tistory.com) 대기모드와 수정공간 대기모드 사용중이지만 그대로 파괴해도 상관없는 메모리 영역이다. 요구가 있다면 사용되지만 요구가 없다면 그대로 파괴되는 대기 상태의 것이며, 파일의 읽기 캐시와 프로그램 코드 캐시 등에서 이용된다. 파일은 먼저 캐시에 읽히지만 (대기모드) 여기서 데이터를 쓰면 수정공간으로 바뀌고, 이를 보조기억장치에 저장하면 (flush) 다시 대기모드로 변한다. 여유 공간과 함께 이용가능한 영역으로 분류된다. 수정공간 쓰기 작업이 수행된 공간으로 곧 보조기억장치에 저장될 데이터가 있는 공간이다. 페이지 폴트 (Page Fault) 프로세스에서 필요한 데이터가 가상 주소 공간에는 존재하지만 실제 메모리에는 없는 상황에서 해당 데이터에 접근하는..

컴퓨터 공학/OS 2022.01.14

메모리 용어 간단 정리 (1/2)

메모리 용어 간단 정리 (2/2) (tistory.com) 메모리 용어 간단 정리 (2/2) 메모리 용어 간단 정리 (1/2) (tistory.com) 대기모드와 수정공간 대기모드 사용중이지만 그대로 파괴해도 상관없는 메모리 영역이다. 요구가 있다면 사용되지만 요구가 없다면 그대로 파괴되는 대 remocon33.tistory.com 윈도우 작업관리자 메모리 정보 페이지 (Page) 와 프레임 (Frame) 페이지는 가상 메모리를 사용하는 최소 크기 단위, 프레임은 물리 메모리를 나타내는 최소 크기 단위이다. 페이지와 프레임의 크기는 동일하다. 언어유희를 이용하여, 인셉션 (가상 메모리) 내의 엘런 페이지 (페이지)가 자신과 동일한 모습을 보이는 유리창 (프레임)에 손을 대고 있다고 생각하면 오래 기억할 ..

컴퓨터 공학/OS 2022.01.14

[번역] Git 커밋 메시지를 작성하는 방법

Git 커밋 메시지를 작성하는 방법 - 크리스 빔스 How to Write a Git Commit Message Commit messages matter. Here's how to write them well. cbea.ms diff는 소스코드에서 무엇이 변경되었는지 알려주지만, 커밋 메시지만이 그 이유를 제대로 알려줄 수 있다. 커밋 메시지는 개발자가 좋은 협력자인지 여부를 보여준다. Peter Hutterer 커밋 기록이 구조화되지 않고 일관성이 없기 때문에 사용하거나 관리하는데 많은 시간을 할애하지 않는다. 사용되거나 관리되지 않기 때문에 구조화되지 않고 일관성이 없다. ​ 잘 관리된 로그는 유용하다. git blame, revert, rebase, log, shortlog 그리고 다른 하위 명령어..

컴퓨터 공학 2022.01.13

윈도우에서 원격지 포트 검사 프로그램, tcping

개요 다른 컴퓨터에서 구동 중인 서버에 접속 가능한지 검사하는 프로그램입니다. 검사를 위해 원격지의 IP와 포트 번호를 입력해야 합니다. 설치방법 이 링크에서 tcping.exe를 다운로드 받습니다. (또는 첨부파일 사용) 다운로드 받은 tcping.exe를 C:\Windows\System32로 이동시킵니다. 간단 사용법 윈도우 명령어 프롬프트를 실행합니다. 아래와 같이 IP와 포트 번호를 입력합니다. 사용자가 중단하기 전까지 반복실행 "-t" 명령어를 입력하여 사용자가 를 입력하기 전까지 계속 탐색할 수 있습니다. 연결이 확인된 즉시 종료 "-s" 명령어를 통해 해당 포트에 핑이 한 번이라도 도달하면 즉시 탐색을 종료할 수 있습니다. 핑 요청 날짜 표시 "-d" 명령어를 통해 핑을 요청한 날짜를 표기합..

유틸리티 2022.01.13

[번역] 2021년 웹 어셈블리 현황 설문조사

출처 : https://blog.scottlogic.com/2021/06/21/state-of-wasm.html 작성자 : Colin Eberhardt 번역 : 혼새미로 요약 러스트는 가장 많이 사용되고 웹 어셈블리에 가장 적합한 언어이다. 어셈블리스크립트는 웹 어셈블리 언어에서 두 번째로 적합한 언어이다. 웹 어셈블리는 웹, 서버리스, 게이밍 그리고 컨테이너 화 앱에서 가장 큰 영향력을 가질 것으로 기대된다. 더 나은 디버깅 지원이야말로 가장 많은 사람들이 필요하다고 느끼는 요소이다. 개요 웹 어셈블리 (이하 WA) 2018년 W3C에서 마지막 명세서 초안이 출판된 상대적으로 최신 기술이다. WA는 근본적으로 브라우저에서 다중 언어 지원 및 네이티브에 근접한 속도를 갖는 새로운 런타임으로 탄생하였으며,..

데스크탑에서 JS 또는 TS Playground 앱 (RunJS)

RunJS는 데스크탑에서 JavaScript 또는 TypeScript에 대한 Playground를 제공합니다. 아래 그림과 같이 소스코드를 작성하는 즉시 결과값이 우측에 표출됩니다. 다운로드는 RunJS - A playground for JavaScript and TypeScript 에서 가능합니다. 탭을 추가하거나, 테마를 변경하거나, NPM 모듈을 설치하고자 하는 경우 22,000원 가량의 라이선스를 구매해야 합니다.