분류 전체보기
오픈소스 응애의 험난한 컨트리뷰션 후기
오픈소스 응애의 험난한 컨트리뷰션 후기
2023.06.18대형 오픈소스에 컨트리뷰터가 되는 것은 언젠가 꼭 한번 쯤 해보고 싶다는 욕망과 함께 마음속 한켠에 고이 간직해 놓고, 오랫동안 외면해 왔던 도전 중 하나였다. 사실 오픈소스에 컨트리뷰션을 한다는 행위 자체는 누군가에겐, '엥 그게 뭐가 어려워? 그거 그냥 문서 번역이나 오탈자 기여만 해도 쉽게 해볼 수 있는건데?' 라고 말할 수 있을지도 모르는 그런 일인지도 모른다. 애초에 의미적으로만 따지자면, 코드가 공개되어 있는 레포라면 어디든 내가 PR을 올려서 머지가 되기만 한다면 그게 어떤 프로젝트이든 결과적으론 '오픈소스에 기여했다'고 할 수 있을테니까 말이다. 하지만, 내가 마음속에 품고 그리던 '컨트리뷰터'라는 단어가 가진 의미는 조금 달랐다. (컨트리뷰터의 사전적 의미를 재정의 하고 싶은 것이 아니다..
컨테이너의 구조와 오픈소스의 생태계에 관한 리서치(feat. 도커는 적폐인가?)
컨테이너의 구조와 오픈소스의 생태계에 관한 리서치(feat. 도커는 적폐인가?)
2023.04.16컨테이너 이미지의 빌드 및 배포에 관한 성능을 개선하기 위해 리서치를 하다보니, 혼자 알기에 너무 재밌는 배경들이 많아서 정리해 보기로 했다. 오늘은 컨테이너와 이미지의 구조 및 원리(특히 파일 시스템과 관련한 부분), 관련 컴포넌트들을 딥다이브하여 파헤쳐 보고, 오픈소스 생태계에서 이들을 활용하기 위해 어떤 움직임들을 보였는지 살펴보는 시간을 가져볼까 한다. 컨테이너 컨테이너 이미지가 뭔지 알려면 먼저 컨테이너에 대해서 알아야 한다. 흔히 컨테이너를 이야기 하면 도커를 엮어서 생각하는데, 사실 도커는 단일 기술이 아니다. 컨테이너의 빌드, 실행, repo관리, 네트워크 관리 등등 컨테이너와 관련한 온갖 기술들을 다 때려다 박아서 docker라는 하나의 커멘드 라인만으로 사용자들이 컨테이너 세상에 쉽게 ..
마인크래프트 서버 운영 일지 작성 시작(마밍아웃)
마인크래프트 서버 운영 일지 작성 시작(마밍아웃)
2022.11.09사실 나는 개인적으로 마인크래프트 서버를 운영한지 3년이 넘었다. 솔직히 마크가 초딩 겜이라는 인식도 있고, 아무래도 나름 기술 블로그 비스무리한걸 포스팅 하고 있는 입장에서 이런거까지 끄적일 필요는 없겠다고 생각하고 있었는데, 요즘에 여유가 생기면서 운영중인 마인크래프트 서버를 발전시키는 것에도 공을들이다보니, 생각보다 여기도 삽질해볼 여지가 많은 분야라는게 새삼느껴져서 부끄럽지만 운영일지를 써보자고 생각하게 되었다. 솔직히 마크 초딩겜 맞는거 같긴 하다 그래도 이 서버를 운영하면서 생각보다 많은 인연을 만들었고, 그냥 기억에만 남겨두기에는 많은 추억을 만든 공간이라 이제부터 조금씩 기록으로 남겨보려고 한다. 그냥 끝내기 아쉬우니까 서버배너나 한장 투척하구 마무으리
티스토리 프라치노 스킨에서 마크다운으로 글 쓰기
티스토리 프라치노 스킨에서 마크다운으로 글 쓰기
2022.11.09티스토리에서 마크다운으로 글을 복붙해 넣었더니 뭔가 마음에 안들게 변환이 되었다. sindresorhus라는 아주 고마운 개발자가 github-markdown-css라는 이름의 프로젝트로 깃헙 마크다운 테마 쉽게 적용할 수 있게 css 파일을 제공하고 있어서 이걸 활용하기로 했다. 우선 크게 맘에 안들었던 부분은 다음 3가지 였다. 표 헤더 코드박스 인용구 따로 수정하지 않고 그냥 보면 아래와 같이 보였었다. 내가 쓰고있는 티스토리 테마는 프라치노 공간이라는 테마인데, 아마도 마크다운을 적극적으로 지원하지는 않는 모양이었다. css파일들을 수정하지 않고 조금 번거롭더라도, github-markdown.css 파일에 선언된 .markdown-body 클래스로 감싸서 적용하려고 시도했는데, #tt-body-..
고루틴의 동작 원리에 관하여
고루틴의 동작 원리에 관하여
2022.02.13고루틴? 고루틴은 GO언어에서 프로그램의 동시성을 쉽게 구현하고 기존의 단순 스레드 기반의 구현에 비해 효율적인 동작을 수행해 내기 위해 만든 작업단위 이다. 고루틴의 장점 아래 내용에 들어가기에 앞서서 스레드에 관해 정리해야할 부분이 있다. CPU의 멀티스레딩에 활용되는 용어인 스레드와 아래에서 설명될 OS영역에서 다뤄지는 스레드는 서로 지칭하는 대상이 다르다. CPU의 스레드는 한개의 코어를 OS에게 여러개로 인식시켜 동작하도록 하는 하드웨어 영역의 개념이고, 아래에서 계속하여 언급할 스레드는 OS 하위의 소프트웨어 영역에서 CPU의 작업단위로 지칭되는 용어이다. 메모리 소비 고루틴은 스레드에 비해 더 작은 메모리만 필요로 함. 고루틴 생성에는 2KB의 스택만 필요로 하고 필요에 따라 힙을 사용. 반..
2021년 회고
2021년 회고
2022.01.032021년은 나에게 수확의 시기였다. 올해 초에 서울에 상경한 이후로 내가 해온 일들을 회고하는 시간을 가져서 였을까? 올 안해 동안은 나 스스로가 나에게 던지는 질문이 많았던 해였던 것 같다. SK하이닉스로의 파견, 판교 입성..? 회사에서 승진을 하고 처음으로 받은 임무는 개발 팀들과 함께 정자역에 위치한 SK하이닉스 분당두산타워 거점으로 장기 파견을 나가서 하이닉스 사내에 내부용 머신러닝 경진대회 플랫폼으로 사설 Kaggle을 개발해 주는 프로젝트를 담당하는 것이었다. 출퇴근을 부천에서 하던 나로써는 판교로 출퇴근은 너무 부담스러웠기에 회사 대표에게 조금 찡찡대었는데, 예상치 못하게 회사 대표가 야탑 근처에 사택을 구해주었다. 사택도 깔끔했고, 무엇보다 신축 건물인 분당두산타워에서 뷰가 좋은 창가 ..
DevOps 3년차 경력 이직 도전기(feat. 네카당)
DevOps 3년차 경력 이직 도전기(feat. 네카당)
2022.01.02개발자로 일을 하기 시작한지 3년이 훌쩍 넘었고, 길게만 느껴졌던 산업기능요원도 어느덧 소집 해제가 되어 민간인 신분이 되었다. 언제나 막내일 것만 같았던 나도 이제 조금씩 신입의 티를 벗기 시작했고, 회사에서 조금씩 고여가는 나를 보며, 이제 다음 계단을 밟기 위해 다시 한번 도약을 할 시기라는 것을 깨닫게 되었다. 인생은 곱셈과 같아서, 찬스가 왔을 때 내가 제로이면 아무런 의미가 없다는 말이 있다는 말이 있다. 서울에 상경 해서 부터 지난 5년간을 지금 다시 돌이켜 보면, 어디가 길인지도 모른채 그저 제로가 아니기 위해 무작정 달려왔었던 내가 있었다. 이직 준비를 하고, 나를 필요로 하는 회사를 찾기 위해 20번이 넘는 전형들을 진행하면서 힘이 부치기도 했지만, 오히려 수많은 엔지니어 분들을 통해 ..
케이비시스 퇴사를 준비하며
케이비시스 퇴사를 준비하며
2021.12.23나에게 정말 많은 영감과 성장의 기회를 제공해 주었던 케이비시스를 뒤로하고 이제는 새 직장이 될 당근마켓으로 이직을 준비하면서 현재 직장에서의 나를 되돌아 보았다. 2년전 내가 케이비시스에 입사하기 전에는 내가 지금처럼 데브옵스 엔지니어로써 개발자의 길을 걷게 되리라고는 생각하지 못했었다. 그때 당시에만 하더라도 나는 보안 커뮤니티와 해킹팀을 만들어서 활동을 했을 만큼 보안이라는 종목에 미쳐있었다. 그랬던 내가 전형적인 SI업체인 케이비시스에 그것도 클라우드 서비스팀에서 데브옵스 엔지니어로의 이직을 결심하게 된 것은 정말 우연에 우연이 겹친 결과였고, 지금 나는 그 우연에 진심으로 감사한다. 마침 그때의 나는 산업기능요원의 신분으로 병역특례를 이어나갈 회사를 찾고 있었고, 마침 참여했던 CTF에서 컨테이..
컨테이너 빌드 시 ls 명령어에서 Operation not permitted 에러 발생 디버깅
컨테이너 빌드 시 ls 명령어에서 Operation not permitted 에러 발생 디버깅
2021.12.17문제 내용 집에서 간단한 프론트 앱을 하나 컨테이너로 빌드해서 올려보려고 하다가 황당한 에러를 마주쳤다. 에러 내용은 docker 이미지 빌드 과정에서 디버깅을 위해 넣어 두었던 ls 명령어를 RUN 하는 부분에서 Operation not permitted 라며 권한 에러가 났던 것이었다. 처음에는 이미지 빌드 과정에서 사용되는 사용자 권한이 부족해서 나는 단순 오류인줄 알고 빌드 유저 권한을 root로 부여했는데도 똑같은 에러가 나서 띠용했다.👀 Dockerfile 예시 FROM nginx:1.21.4 USER root RUN ls / 에러 내용 [root@192 docker]# docker build -t test . Sending build context to Docker daemon 2.048kB..
log4Shell 취약점 분석 핡짝 (feat.CVE-2021-44228)
log4Shell 취약점 분석 핡짝 (feat.CVE-2021-44228)
2021.12.12테스트 대상 사이트 modutech 마인크래프트 공개 서버 서버 주소 : 비밀>2021-12-12 06:18:30,471 Async Chat Thread - #2 WARN Error looking up JNDI resource [ldap:/ /log4shell.huntress.com:1389/79473262-b412-41d8-aa97-56d7055bfa43]. javax.naming.NamingExce ption: [LDAP: error code 1 - Operations Error]; remaining name '79473262-b412-41d8-aa97-56d 7055bfa43' at java.naming/com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3..
뒤늦은 CKA, CKAD 취득 후기
뒤늦은 CKA, CKAD 취득 후기
2021.11.02예전에는 정보처리기사와 같은 자격증들을 취득하면서, 자격증 공부는 실무와는 조금 거리가 있는 듯 하다 라는 느낌을 받았었다.하지만, 해외 재단들에서 만든 실습형 자격증들은 가격은 비싸긴 하지만 확실히 취득하는 과정에서 하는 공부들이 업무에 도움이 되는 경우가 많았던 것 같다.최근에는 회사에서 쿠버네티스 관련 업무를 많이 하게 되어서 CKA, CKAD 자격을 취득하게 되었다. 사실 CKA는 작년에 취득했고 최근에 CKAD를 취득하였는데, 개인적으로는 CKA를 공부했다면 CKAD는 정말 쉽게 취득할 수 있으니 CKA를 준비할 때 CKAD도 함께 준비 하는게 좋겠다라는 생각이다.두 시험에 대한 과정은 다른 블로거 분들이 자세히 설명해 두었으니 생략하고, 나는 어떻게 공부했는지 소개만 해보려고 한다.사실 다른 ..
Calico?Weave? CNI에 관하여
Calico?Weave? CNI에 관하여
2021.10.25Kubernetes를 설치하여 사용할때 항상 CNI를 설치해야 core-DNS서비스가 정상동작하고, 네트워크 폴리시 등의 보안 정책을 적용할 수 있었기에, 그냥 무의식적으로 설치하여 사용했었는데 막상 다시한번 내가 쿠버네티스를 제대로 이해하고 있는가? 를 되돌아보다 보니, 가장 중요하고 기본적인 지식인 네트워크 부분을 제대로 이해하지 않고 대충 넘어갔던것이 아닌가 하는 생각이 들었다. 다중노드 및 대규모 클러스터 환경에서 올바른 컨테이너로 트래픽을 전달하기 위해서 사용한다고만 개념적으로 이해하고 있었지, istio와 같은 서비스메시를 이해하기 시작하면서 명확한 그 개념에 대해서 혼돈이 오기 시작했다. 그래서 오늘은 가장 대표적으로 많이 사용되는 Calico CNI 플러그인을 분석해 보면서 다른 CNI들과..