2022/10 8

[프로그래밍] 마인크래프트로 알아보는 랜덤이 랜덤이 아닌 이유

컴퓨터의 랜덤 술 먹고, 같이 먹은 사람들의 카드를 부채꼴로 펼치면서 식당 종업원에게 카드를 골라달라고 해본적있는가? 고를 확률은 랜덤이라고 할 수 있을까? 식당 종업원이 좋아하는 디자인 취향, 왼손잡이인지 오른손잡이인지에 따라 결과는 치우쳐질 수 있다. 이까지는 누구나 인지하는 사실이다. “그래! 이건 완전한 랜덤이 아니야!” 계산할 사람을 지목하는데에 네이버 사다리 타기를 이용하기로 했다. 흔히 이렇게 “랜덤성”을 컴퓨터 프로그램에 의존하고는 한다. 뭔가…뭔가 객관적이어 보이니까? 하지만 컴퓨터는 결정론적으로 동작하고, 어떻게 보면 랜덤과는 가장 거리가 멀다. 모든 프로그래밍 언어에는 random()이라는 함수가 있다. 그러면 이들은 어떻게 구현이 된걸까? 만약에 내가 구현한다면 어떻게 랜덤성을 부여..

UX 이야기 : 있어야 할 곳에 있다는 것

갤럭시에 윈도우즈 컴 쓰는중입니다 나는 안드로이드 개발자의 사명으로(?) 아이폰 7을 마지막으로, 아직까지도 갤럭시를 쓰고 있다. 심지어 이제는 노트북마저 윈도우즈 노트북이다. 완벽하게 불편한 것이 없는 지금도 언제나 애플 제품을 쓰고 싶은 생각이 든다. 그래서 이번에 에어팟3와 아이패드 미니6세대를 구매했다. 홈 버튼이 사라지고 수 년만에 애플 제품을 써보는데 적응이라는게 필요가 없었다. 내가 생각하는 애플의 강점은 이거다. "있어야 할 곳에 있다" 사실 내가 생각하는 디자인의 의미기도 하다. 프로그래밍만이 문제를 푸는 것이 아니다. 디자인의 본질 역시 문제를 푸는 거다. 생각할 거리를 던져주는, 더듬더듬 재시도하게 하는 디자인은 잘못된 디자인이다. *애플도 실패한 디자인이 없는 것은 아니다. 매직 마..

HTTP ETag에 대해 알아보자

ETag란? ETag란 EntityTag의 줄임말로, 웹 캐시 유효성 검증에 사용된다. 리소스의 특정 버전에대한 고유값이 ETag의 값이되고, 리소스의 내용이 업데이트되면 ETag도 바뀐다. 클라이언트에서 캐싱하고 있는 버전과 서버에서 가지고 있는 버전이 동일하다면 서버는 내용없이 304 Not Modified 라는 상태코드로만 응답을 내려주어 response body에 대한 트래픽을 아낄 수 있다. ETag 작동방식 먼저 HTTP Request를 날려보자. 서버는 ETag와 함께 응답 (상태코드 200)을 내려줄 것이다. 이 요청에 대한 응답의 사이즈는 43.9KB였다. ETag의 검사기 종류에는 약한(Weak)과 강한(Strong)검사가 있는데, 약한 검사를 하는 ETag는 W/로 시작하고, 강한 검..

[거제] 한꼬막 두꼬막 - 꼬막정식

도시어부에 나와서 꽤 인기가 있는집이라 그런지, 이 집도 웨이팅이 1시간정도 있었다. 해물정식집에가면 꼭 한 두요리는 실패하고 비릿한 냄새가 나서 안먹거나 넘기는데, 여기는 말 그대로 모든 음식이 맛있다. 그리고, 모든 음식이 하나가 될 수 있다. 해물외에도 밑반찬인 미역무침이나 콩나물, 감태 등등 모-든것이 서로 다 잘어울린다. 전복은 이게 전복이 맞나 싶을정도로 부드러웠고, 새우와 조개류는 짜지않게 은은하면서도 시원하고 상큼한 간장양념이 발라져있었다. 다시 생각해도.....................침흐르네 사진을 봐도 알겠지만 모든 요리에 파프리카를 남발하는 모습인데 ㅋㅋㅋ그게 비법인가 싶을정도로 진짜 깔끔하고 상큼하게 먹었다. 해산물먹고 보통이런말하기 쉽지않다.

[발산] 서울꽃삼 - 꽃삼겹살

서울에서 고기 1인분에 12,000인 집을 쉽게 찾을 수는 없다. 여기는 1인분에 12,000원에 고기 질도 좋고, 심지어 구워준다! 반찬은 양파채, 파채에 와사비, 소금, 젓갈, 콩가루, 양념치킨 양념 등등 아주 일반적이다. 된장도 그냥 서비스로 주는데, 고깃집 된장의 스탠다드라 할 수 있는 빨간된장이다. 가격도 저렴하지만 기본이 정말 잘되어서 깔끔하기 그지없는 집이다. 1시간정도 기다렸는데, 웨이팅이 길어서 죄송하다고 서비스로 음료수도 주셔서 음료수 보다도 기다린 시간에 대해 생각해주시는 것같아 그 마음이 고마웠다. 다른 블로그들에서 추천하는 볶음밥이나, 명란 소스를 못먹어봤는데 다음엔 먹어보고 싶고, 칡냉면을 먹었는데 그렇게 맛있는 칡냉면은 태어나서 처음이었다. 그 집에서 만든건 아니겠지만서도.....

[Windows] Git Bash에 zsh (Oh-my-zsh) 설치해서 꾸미기

Windows zsh 설치방법 1. https://repo.msys2.org/msys/x86_64/zsh-5.8-5-x86_64.pkg.tar.zst 를 다운받는다. 2. 압축을 해제한다. 해제하면 zsh-5.8-5-x86\_64.pkg.tar파일이 있을텐데, 이것도 압축을 해제한다. 3. 안의 내용물을 C:/Program Files/Git 아래에 붙여넣는다. Git내에도 usr, etc가 있을건데 덮어써준다. 4. Git bash를 켜서 zsh라고 입력한다. 옵션을 잘 읽어보면 몇가지 기초설정에 들어갈 것이고, 이를 마치면 홈 디렉토리에 .zshrc 파일이 생겨났을 것이다. $ zsh 5. git bash가 아직도 모양이 바뀌지 않았다면, 아래 명령어를 쳐주자. $ source ~/.zshrc 6. 그..

LXD와 LXC의 차이

LXD란 무엇인가? 컨테이너 매니저다. LXD 자체는 컨테이너가 아니다. LXC라고하는 Linux Container를 구동할 수 있도록 해준다. 추가적으로, 클러스터링 같은 기능을 지원한다. LXC란 무엇인가? 리눅스 컨테이너. LXC container는 가상머신 같다.(VM-like) Docker 컨테이너는 변경사항이있고, 종료하고 다시 띄우면 변경사항을 잃는다. 반면에, LXC는 가상머신을 재부팅한 것처럼 변경사항이 유지된다.

[lxc] 인스턴스 생성 실패 Failed detecting root disk device: No root device could be found 해결방법

ubuntu@:~$ sudo lxc launch ubuntu:22.04 manager1 Creating manager1 Error: Failed instance creation: Failed creating instance record: Failed initialising instance: Invalid devices: Failed detecting root disk device: No root device could be found lxc 인스턴스 생성시에 No root device could be found 오류가 떴을 경우, profile에 root disk에 대한 storage 설정을 해주어야한다. storage 목록이 만약에 비었다면, $ lxc storage ls +------+--------..