트위터(현 X) 타래 백업기 작업기
이 이야기는 2022년으로 거슬러 올라갑니다. 당시 트위터(현 X)는 일론 머스크의 인수 이후 언제 서비스가 없어질지 모르니 그동안 쓴 글을 백업해놔야 한다는 분위기가 있었습니다. 그 중에서도 Thread 단위로 긴 글을 많이 쓴 사람들이 문제였습니다. 140자 제한이 있다보니 1...
이 이야기는 2022년으로 거슬러 올라갑니다. 당시 트위터(현 X)는 일론 머스크의 인수 이후 언제 서비스가 없어질지 모르니 그동안 쓴 글을 백업해놔야 한다는 분위기가 있었습니다. 그 중에서도 Thread 단위로 긴 글을 많이 쓴 사람들이 문제였습니다. 140자 제한이 있다보니 1...
1월에 레이첼님과 했던 커피챗 경험이 좋았어서 상반기에는 커피챗을 많이 했던 것 같습니다. 기용님 커리어 코칭 그룹에 들어가면서 그룹 내 분들과 커피챗을 많이 하기도 했고, 컨퍼런스나 밋업, 세미나같은 것도 많이 다녔구요. 그러면서 느꼈던 것은 크게 두가지였는데요.
최근 링크드인 포스팅에서 밝혔지만, 서울 우먼잇츠 X 우아한스터디에서 리더로 설계되어 사두고 못읽은 대규모 시스템 설계 기초 읽기 라는 제목의 스터디원을 모집하고 있습니다.
제가 쿠팡의 시스템 중 가장 좋다고 생각하는 것은 통역 시스템입니다. 쿠팡의 통역사분들은 정말 굉장합니다. 온갖 테크와 쿠팡의 비지니스 관련된 주제들을 실시간으로 통역해주시니까요. 내부에서 지식 공유도 활발히 하시는 거 같아서 오히려 개발팀들끼리 서로 소통이 안되는 부분은 통역사분...
Microsoft에서 주최한 AI Tour에 다녀왔습니다. 근 몇년동안 개발자라면 누구나 가지고 있을 ‘AI 시대에 개발자는 대체 뭘 해야하는거지?’에 대한 의문으로 AI에 대해 잘 아는 것 없이 다녀왔는데, 생각보다 너무 즐거운 시간을 보내고 와서 후기를 씁니다.
회사 일 외에 특별히 한게 없는 해이고, 회사 일은 어디까지 말을 해도 되고 하면 안되는지가 너무 어려워서 4사분기에 머리를 스쳐지나갔던 이야기만 조금 써볼게요.
길벗 베타 리더로 읽게 된 책입니다.
1:1 시간에 구글만으로 batch를 만들 수 있다고 해서 찾아보니 정말 재밌는 기능이 있었다. 자바스크립트는 써본 적 없지만 눈치로 조금 써보기로. 1단계로 Gmail에서 타이틀 읽어서 스프레드 시트에 정리하기. 연습으로는 Daily Skimm이라는 뉴스레터의 제목을 읽기로 했다.
길벗 19차 개발자 리뷰어로 선정되어 읽고 쓴글입니다.
고객사 스펙에 맞추느라 XML파일을 만들어서 FTP로 업로드해야 하는 일이 생겼다. 사내 다른 레포지토리에서 XML을 다루는 부분을 참고해서 파일을 생성하고 파싱하려고 했다. 최초로 만들었던 코드는 아래와 같았다.
오래된 사내 Admin에 새 페이지를 추가해야하는 일이 생겼다. 다른 페이지들을 참조해서 잘 만들었는데, label을 사용해서 변수 값을 노출하는 부분만 넣으면 화면이 뜨지 않는 문제가 있었다. bind해서 쓰는 것은 문제가 없었는데 `` 이렇게 바로 쓸 때만 문제인 것 같았다.
세미나용 정리. 자바 ORM 표준 JPA 프로그래밍의 3장, 8장 내용을 많이 가져왔음을 밝힙니다.
목표지만 회고 카테고리에 넣어놓기.
사람의 욕심은 끝이 없고
태초에 디자인 패턴이 있었다.
이전 글에서 Generic에 대해 다뤘는데, Optional은 Java가 Generic을 사용한 또다른 예시가 되기도 함.
Oracle의 자바 튜토리얼 페이지의 일부를 발췌하여 설명을 더하거나 빼고 쓴 글입니다.
회고든 계획이든 해본 적이 없는데 문득 해봐야겠다고 생각했다. (나이먹었나보다.)
기존에는 vscode에서 그래프같은건 git graph를 띄어놓고 실제 작업은 아래 터미널창에서 커맨드로 했었다. 그런데 IntelliJ를 쓰기 시작했는데 이거의 git 화면이 도저히 적응이 되지 않는거다. 적응이 될 때 까지는 그냥 터미널 켜서 커맨드 라인에서 쓸 것 같아서 좀 ...
기본 에디터가 vi로 설정되어 있는데 이게 제대로 동작을 안하는 것 같았다. git config --global core.editor /usr/bin/vim을 이용해 vim으로 변경하면서 해결됨.
원래 맥북은 집에서 개인적인 용도로만 썼는데, 이번 회사에서는 개발 노트북으로 맥북 프로를 받아서 틈틈히 개발환경 셋팅중이다. 원래는 windows terminal을 썼었는데 일단 남들 다 쓴다는 iTerms2로 시작하기로 했다. 알트 키가 사라지고 커맨드 키가 생긴건데, 이 커맨...
1편 2편 3편 4편 Coupang 2차 면접 쿠팡 최종 면접은 1차와 비슷했습니다. 2시간이 잡혔는데 1시간은 코딩인터뷰였고 1시간은 LP에 관련된 면접이었어요. 다른 경력직의 경우에는 시스템 디자인이나 도메인 관련 지식들도 묻는단 이야기도 들었는데 저는 커리어를 전환하는 경...
1편 2편 3편 4편 AWS 1차 합격 연락과 On-site 준비 월요일에 면접을 봤었는데 수요일에 바로 합격했다고 다음 라운드를 진행하자는 피드백이 왔습니다. 구글과 달랐던 점은 구체적인 피드백은 없었고 인터뷰어가 재미있는 시간이었다고 했다~ 정도였어요. 요 단계에서 만약 합...
1편 2편 3편 4편 어떻게 공부했는지는 위 글에 다 있습니다. 이제 언제쯤 무슨 면접을 봤는지 등등에 대한 정보만 나갑니다. 대충 몇일정도 걸린다 같은 느낌 잡는데 유용하셨으면 좋겠어요. 이력서 등록하기 지난 글에서 처음으로 영문 이력서를 만들었다고 했는데, 그 이력서를 링...
보통 책은 검색을 한 후에 가서 보고 사는데, 얘는 오프라인에서 제목을 보자마자 홀린듯 손에 들었다. 그리고 저자의 경험이 너무나 이해가 되었다! 나도 전공 수업은 거의 앱 기획이나 게임 기획이었고, 개발자랑 대화를 하면 어떻게 해야하지 하는 물음에 ‘C언어나 자바부터 해봐’라는 ...
1편 2편 3편 4편 지난 여름 동안 계획에 없었던 이직 루트를 타게 되었습니다. 그 과정에 얻은 게 많아서 이게 다 끝나면 어떤 형태로든 꼭 공유해야겠다고 생각했습니다. 그러니까 이 글은 프로 이직러 분들 말고, 저처럼 단 한 번도 이직을 준비해 본 적이 없는 분, 특히 현 ...
테크니컬 라이팅에 계속 관심이 있어서 조금씩 찾아서 읽어보는 중. 구글의 테크니컬 라이팅 문서가 문장을 어떻게 쓸 것인가에 대한 이야기라면 이 책은 글을 어떻게 쓸 것인가에 대한 이야기다. SI 위주긴 하지만 ‘어떻게’에 초점을 맞춘 내용들이 많아서 배울 점이 많다. 특히 Rele...
개발 하다 보면 수많은 remote branch들이 보이는게 싫어서 수시로 쓰게 되는 git remote prune <origin>. 매일 생각없이 사용하다가 오늘 갑자기 prune이 무슨 뜻인지 궁금해졌다. 내가 아는 프룬은 건자두인데 건자두라는 (최소한 직접적인) 의...
위상 정렬 연습용으로 찾은 문제 210. Course Schedule II. typedef struct pr { int subjectCode; struct pr *next; } COURSELIST; typedef struct st { int NumPrere...
segment tree 연습용으로 찾은 문제 307. Range Sum Query - Mutable. typedef struct st{ int sum; int start, end; struct st* left; struct st* right; }NOD...
일을 하다보면 수많은 파일이 쌓이는데 특히 자동으로 생성되는 로그파일들이 그렇다. 크래시의 경우는 더 그렇고. 한번에 지우고 싶은데 지워야 하는 것들과 지워서는 안되는 것들이 모여있는 경우는 지우기 까다로웠다. wildcard를 넣어서 recursive하게 find해서 지우되 그걸...
작년 하반기부터 LNAV를 너무 잘 쓰고있어서 한번은 이거에 대해 써야지 써야지 했는데 어제 개발자 용으로 환경 공유한다는 사이트인 mysetting.io를 발견해서 여기에 써야지 싶었다. (형식이 정해져 있는게 편하기도 하고) 일단 냅다 만들어 보았음. 요새 영어공부 시작해서 시...
앞서서 업데이트 했던 구글 테크니컬 라이팅 페이지의 구글 수업에 참여했다. 미국 시간에 맞춘 강의들은 보통 한국시간으로 새벽이나 평일 낮인 경우가 많아 참여가 힘들었고, 이번에 뜬 강의는 유럽 시간에 맞춘 강의라 유럽시간 낮 1시 / 영국시간 12시라 한국시간 오후 8시여서 참가...
구글 테크니컬 라이팅 페이지의 하위 페이지인 pre-class material의 중간 부분. 원래 상하로만 나누려고 했는데 너무 길어진다… 말투도 앞과 바뀌었다. 3편까지 쓰고 전체적인 퇴고 하면서 톤도 맞추고 오타도 고치고 스타일도 정리 해야겠다.
구글 테크니컬 라이팅 페이지에서는 최근 온라인 강의도 제공한다. 지난 달에 체크했을 때는 한국 시간으로 평일 낮 2시 이래서 도저히 신청 할 엄두를 내지 못했는데, 이번에 뜬 일정들이 4월 26일 8AM PT(27일 0시)랑 5월 4일 1PM CEST(4일 20시)여서 둘 중 하나...
Disclaimer : 저는 법도 Java도 전문가가 아닙니다. 아래 내용을 사실과 다를 수 있으며 저는 그에 대한 책임을 지지 않습니다. 정확한 내용은 원본 문서를 참고해주세요. 배경 2005년, Google은 안드로이드의 JAVA에 SUN의 라이센스를 쓰기 위해 협상을 시작...
사내에서 항상 vscode 내 계정 로그인에 실패했었는데, github로 시도한게 문제였는지 ms 계정으로 했더니 한번에 성공했다. 사실 그 일과는 하등 관계 없지만, 생각난 김에 내가 좋아하는(추천하는) vscode extension들.
1분기 읽은 책 중 가장 기억에 남았던 책. 아마 올해가 끝나도 손에 꼽지 않을까. 항상 생각했던 건 기술로 괴물이 되지 않을 것. 근데 이게 간단한 게 아닌 게 대놓고 악은 드라마에서만큼 흔하지 않다. 진짜 무서운 건 선을 가장했지만, 사람들을 옭아매는 기술. 컨베이어 벨트가, ...
본의 아니게 embedded C만 하던 사람이 C++를 쓰고 있는데, 이왕 쓸거면 C에 없던 자료구조를 써보자 싶어서 이것저것 건드려보고 있다. 와중에 2월에 했던건 동적으로 요소를 추가하는 Map+queue. 실행시에 들어오는 값들로 key값을 생성하고 Map에 존재하지 않으면 ...
공지를 받았다. 코드 품질을 개선하기 위해 코드 리뷰 문화를 더 활성화 시키겠다고 한다. (의도는 항상 좋다. 정말) 그런데 그 방법이라고 가지고 온 디테일이 너무 재밌었다. (아니 사실 재미 없다) 개발자 한명당 수행한 리뷰 개수의 중간값, 개발자 한 명당 단 comment의 중...
2021.01.31 2021.02.07 feed[‘Schedule’][‘evnets’][40][‘name’]보다 feed.Schedule.events[40].name 사용자 정의 dict 클래스를 구현해서 feed.Schedule.events[40].name 과 같은 식으로 접...
2015년에 인텔 i5, RAM 4G 컴퓨터를 지급받고 경악했는데, 그 컴퓨터를 2021년 1월에서야 교체 받았다. 친구는 이건 교체라기보다는 컴퓨터가 나 이제 그냥 죽여줘… 하고 죽은 거라는데 작년 하반기에는 일주일에 1~2회의 블루스크린을 겪어서 딱히 반박할 의사도 의지도 없었...
리눅스 머신을 재시작 했을 때, docker 커맨드가 먹히지 않는 경우가 있다. run만 안되는 경우는 단순히 deamon 재시작만 해주면 되나, 나의 경우는 docker --version같은 기본적인 커맨드도 완전 먹통이 되는 경우. 처음엔 당황했는데, 구글링으로 해결 방법을 ...
9월에 시작, 12월 초에 AL 획득했습니다. 이전 배경은 13년? 쯤에 2주 동안 학원 가서 공부하고 토익스피킹 180 받은 적 있음. 15년에 갑자기 보라고 해서 몇 문제 나오는지도 모르는 상황에서 오픽 봐서 IH 받은 적 있음. 2020년 이러다간 아무것도 안 한 채 끝나겠...
원글 : commits are snapshots, not diffs
한 주에 하나씩 업데이트 하기 내용 : 일기라도 쓸 것 양 : 한 문단이라도 쓸 것 퀄리티 : 쓰다 만 것이라도 upstream에 올릴 것. idea 깃허브 블로그의 커밋 설명 번역글 RCU part 1 이해한 것 정리 스터디 한 것 정리 오픽 ...
2020.11.17 2020.11.24 2020.12.25 Coroutine의 네가지 상태 GEN_CREATED 시작하기 위해 대기 GEN_RUNNING 현재 인터프리터가 실행되고 있는 상태 GEN_SUSPENDED 현재 yield 문에서 대기하고 있는 상태 G...
2020.10.07 Else block for 다음에 오는 else block은 for loop에서 break문으로 나오지 않은 경우 진입한다. 검색할 때 i<n 해놓고 i==n이면 못찾음 이런 코드 대신 활용할 수 있겠군 while 다음에 오는 else blo...
NVMe spec 4.0 8.2 Metadata handling logical block 단위로(마다) meatadata가 붙는다. 어떻게 이 metadata 영역을 쓸지는 Host의 자유이고, 가장 common 한 활용처 중 하나가 end-to-end protection...
2020.09.03 2020.09.09 2020.09.17 sequence 파이썬 인터프리터가 x객체를 반복할 때는 iter(x)를 호출. iter(x)는 다음과 같은 순서를 따른다. 객체가 __iter__ 메서드를 구현하는지 확인하고 이 메서드를 호출, 반복자를 가져온...
Vector(3, 4) == [3, 4]가 True여야 할까 False여야 할까. 의도에 따라 다름. 근데 의도에 맞게 구현할 수는 있어야겠지? :) 내장 자료형의 연산자는 오버로딩 불가 새로운 연산자의 생성 불가 (기존 연산자 오버로딩만 가능) is, an...
2020.08.05 12:40~13:30 Dict를 상속하는 경우 vs UserDict를 상속하는 경우 class DoppelDict(dict): def __setitem__(self, key, value): super().__setitem__(ke...
2020.07.15 18:30~19:30 어떤 class가 ABC를 상속하지 않더라도 그 클래스의 가상 서브클래스로 등록할 수 있다. 클래스에 ABC의 인터페이스를 다 구현해놓았을 것이라는 약속이 전제. python는 검사하지 않고 이를 믿는다. 만약 구현이 안되어있다면 R...
2020.07.08 18:00~20:00 보호된 속성과 비공개 속성은 인터페이스에 속하지 않는다고 정의되어 있다 -> override 하지 않는다? interface : 시스템에서 어떤 역할을 할 수 있게 해주는 객체의 공개 매서드 ‘프로토콜’이라는 명칭은 스몰...