728x90
블로그를 시작한지 어느덧 반년이 지나가면서 블로그 관리의 일환으로 블로그 아이콘을 바꾸는 시간을 가졌다. 이것저것 재지않고, 바로 시도해본 과정을 공유하고자 한다. 기본 티스토리 아이콘이 아닌 본인이 만든 아이콘을 웹 페이지에 적용하는 것이 목적이다. # 변경 위치 우선 해당 아이콘을 변경하기 위해선 티스토리 블로그 관리 페이지의 "블로그 관리 > 관리 > 블로그 > 아이콘 & 파비콘" 을 찾아볼 수 있다. 현재는 적용되어 있는 상태라서 특정 아이콘을 볼 수 있다. 처음 시도한다면 해당 부분이 비어있을 것이다. 웹 브라우저에서 보이는 페이지의 아이콘과 북마크에서 볼 수 있는 아이콘이 바로 파비콘이다. # 파비콘이란? 파비콘(Favicon)이란 무엇이고 어떻게 만들까? 파비콘이란 웹사이트를 대표하기 위해 ..
언젠간 해봐야지 하고 미뤄뒀던 로컬 쿠버네티스 클러스터 구축을 시도한 과정을 공유하고자 한다. 이번 포스팅에서는 쿠버네티스 클러스터 구축을 위한 가상머신 세팅 과정을 담고 있다. 다음 포스팅에선 구성한 가상머신을 통해 쿠버네티스 클러스터를 구축하는 과정을 공유할 예정이다. HyperVisor는 기존의 VMware Workstation 17을 사용하고, Vagrant를 사용하여 자동화와 확장성을 확보하여 클러스터에서 사용할 가상머신들을 프로비저닝했다. Vagrant는 Virtual Box와 연동성이 좋지만, 원래 사용하던 VMware Workstation 17에 익숙하기도 하고 이를 삭제하고 싶지 않아서 Virtual Box를 사용하지 않았다. # 구성 Specification Local K8s Clust..
Obsidian & Todoist & Google Calender를 사용하여 할일 및 일정 관리를 수행하고, 이를 모바일에서도 관리할 수 있는 환경을 세팅하는 과정을 공유한다. # 목적 기존에는 timetree App을 사용해 달력에 일정들을 관리했고, Obsidian에서는 Peroidic Note와 Calender 플러그인을 사용해서 할일을 관리했다. 이 둘은 당연히 동기화가 되지 않았기 때문에, 불편함이 있었고 이를 체계적으로 관리하고 싶다는 생각을 갖고 있었다. 시간이 났을 때, 모바일과 데스크탑에서 일정을 함께 체계적으로 관리하고, 확인할 수 있는 세팅을 수행해보려고 한다. Obsidian으로 모든 것을 관리한다기 보단 Todo List와 캘린더를 확인할 수 있고, 그때그때 생긴 Tasks를 생성..
최근 Python 딥다이브를 하면서 Python 동작 원리부터, cpython을 들여다보려는 노력을 하고 있다.너무 깊게 다이빙하다가 자꾸 올라오긴 하는데,,, 아무튼, 파이썬 언어의 동작 원리에 대한 이해 없이 코딩 테스트와 구현만 하다보니깐, 내가 파이썬을 제대로 쓰고 있는건가? 하는 의문이 들었다. 사실 Java나 Go를 배워보고 싶지만 시간도 없고, Python이라도 제대로 알고 넘어가자라는 생각으로 기초부터 단단하게 쌓으려는 노력 중이다. 오늘은 내가 작성한 Python Script가 어떤 과정을 거쳐서 실행되는지에 대해서 이해할 수 있었다.그 과정에서 Python도 컴파일을 한다라는 사실을 알게 되었고, 다른 언어와의 차이를 확인해봤다.# Python Interpreter파이..
본 포스팅은 Kubernetes Official Documents를 기반으로 한다. 노드 쿠버네티스는 컨테이너를 파드내에 배치하고 노드 에서 실행함으로 워크로드를 구동한다. 노드는 클러스터에 따라 가상 또는 물리적 머신일 수 있다. 각 노드는 컨트롤 플레인에 의해 관리되며 kubernetes.io # 노드 쿠버네티스는 컨테이너를 파드 내에 배치하고, 노드에서 실행함으로 워크로드를 구동한다. 노드는 클러스터에 따라 가상 또는 물리적 머신일 수 있다. 각 노드는 컨트롤 플레인에 의해 관리되며 파드를 실행하는 데 필요한 서비스를 포함한다. 일반적으로 클러스터에서는 여러 개의 노드가 존재한다. 노드의 컴포넌트에는 kubelet, CRI, kube-proxy가 포함된다. # 관리 API Server에 노드를 추가..
사칙 연산과 마찬가지로, 정수의 나머지에 대해서도 연산 개념이 존재한다. 코딩 테스트에서 명시적으로 나머지 연산의 결과를 요구할 때가 있다. 또는 풀이 과정에서 나머지 연산 중 수가 너무 크다면(int 형을 벗어나게 된다면), 모듈러 분배 법칙을 적용해야할 수 있다. 최근에 풀었던 문제 중, 명시적으로 다음과 같은 구문이 있었다. - 경우의 수가 많아 질 수 있으므로, 경우의 수를 1,000,000,007으로 나눈 나머지를 return해주세요. 이런 경우, 수가 일반적인 범위(integer)를 벗어난다는 것을 명시적으로 알려주었기 때문에 추가적인 처리를 해주어야한다. 본인은 python을 사용하여 문제를 해결하여 Big Integer에 대한 문제를 고민하지 않아도 되지만, 나머지 연산 자체가 부하가 큰 ..
전날의 Ifkakao2022 이게 돼요? 도커 없이 컨테이너 만들기 세션을 이어서 2시간 20여분의 핸즈온을 마무리헀다. # 요약 패키징 저장 중복 문제를 해결하기 위한 방법 중 하나인 리눅스 Overlay Filesystem을 사용하는 이유와, 이를 마운트하는 과정을 실습하며 세션을 이어갔다. - 1:07:12 진행했던, myroot와 tools 디렉토리를 LowerDir로 두고, 별도의 디렉토리를 통해 UpperDir, WorkDir 및 Merged View를 지정하여 오버레이 마운트를 진행했다. mount -t overlay overlay -o lowerdir=tools:myroot,upperdir=rootfs/container,workdir=rootfs/work rootfs/merge 이러한 코드..
본 포스팅은 2022 Ifkakao 이게 돼요? 도커 없이 컨테이너 만들기를 바탕으로 작성되었다. if(kakao)dev2022 함께 나아가는 더 나은 세상 if.kakao.com 현재 대부분의 어플리케이션은 컨테이너 형태로 동작하는데, 도커나 쿠버네티스를 사용하는 방법만 알지, 컨테이너에 대해 들여다보는 노력을 안한 것 같아서, 이를 직접 다뤄보기 위한 시간을 갖게 되었다. 컨테이너를 생성하기 위해 필요한 리눅스 개념들은 chroot, cgroup, namespace 등이 있다고 개념만 이해하고 있었지 정확하게 어떤 요소가 "컨테이너"라는 독립적인 워크로드를 만드는지에 대한 이해를 하기 위함이다. 이를 혼자서 진행하기 보다는, IfKakao에서 "도커 없이 컨테이너 만들기 " 라는 세션을 알고 있었고,..
기존에 프로그래머스에서 코딩 테스트를 진행하다가, 겸사겸사 SWEA로 넘어왔는데, 생각보다 낮은 레벨임에도 문제 질이 좋다고 생각들어서, 몇일간 넘어와서 풀었다. D2를 먼저 건드리자는 생각으로 하루에 꾸준히 3문제정도는 풀었는데, 오늘부로 D2 문제를 다 풀었다. D2 난이도 자체는 알고리즘적으로 요구하는 바가 없는 편이라서 가볍게 풀었다. 다만, 수학적인 접근이 좀 필요한 문제들이 있었던 것 같아서 이런 점이 재밌었던 것 같다. 이제 D3로 넘어가면서 알고리즘과 자료구조를 빡빡하게 가져가야할 단계가 왔다. 자랑을 목적으로 썻다기보단, D3로 넘어갈텐데 꾸준하게 계속 하자는 의미로 동기부여를 위해 작성한다. # SWEA 좋은 점 백준은 일단 안해본 입장에서 프로그래머스와 해커랭크만 접했었는데, 연습할 ..
2023.05.09 ~ 2023.11.10 약 6개월간 진행된 교육 과정을 마무리하고 첫 주말을 맞이했다. 갑작스럽게 추워진 날씨 때문에 미뤄왔던 옷들도 서둘러 정리하고, 어질러진 책상도 정리하며 오늘 하루를 보냈다. 졸업때처럼 미리 마음 정리를 해서인건지 딱히 마음의 요동감은 없는 것 같다. 오히려 해야할 것, 하고 싶었던 것들에 대한 억제가 풀리면서 하고싶었던 것들, 해야할 것들을 맞이할 수 있다는 것에 해방감을 느끼고 있다. 월요일이 되면 실감날지도 모르겠다. 23년도 5월부터 11월까지 6개월이란 시간이 짧다면 짧고, 길수도 있지만 나의 인생의 전환점으로 삼을 수 있었던 시기였다는 것은 확실하다. 클라우드와 CS에 대해 부족한 지식들을 많이 쌓을 수 있었고, 이론적이였던 지식들을 실제로 삶과 프로..