2022년 10월 23일
평소 주말에 따로 약속이 없다면 카페로 이동해서 노트북을 하는 편이다.
주말 동안 아무것도 하지 않고 하루를 보낸다는 게 '지금 내가 이렇게 시간을 버리는 게 맞나?'
라는 생각으로 죄책감이 생기다 보니 늦은 저녁이라도 마감시간까지 최소 2~3시간은 작업하고 있다.
카페에 오면 블로그, 사이드 프로젝트, 외주, 독서 등 작업한다.
예전에는 회사 업무를 가장 우선적으로 처리했는데, 조직 개편 이후 프로젝트 배경지식도 부족하고 예전만큼 오너쉽이 생기지 않아 개인 작업에 모든 시간을 사용하고 있다.
이번 주말 동안 카페에서만 10시간을 작업했는데, 문득 내가 시간 대비 성장하고 있는 게 맞을까?
, 내가 이 작업을 하고 있는 게 맞을까?
의심이 들었다.
매주 이렇게 개발하는데 성장하고 있다는 생각이 들지 않았고 고민해 보는 시간을 가져보았다.
내가 카페에서 하는 일들은 공부
보다는 코더
에 가까웠다.
이미 아는 내용들로 빠르게 개발하다 보니 새로운 학습이 없었고 그나마 외주하면서 새로운 서버 환경과 라이브러리 밖에 없었다.
회사를 다니면서 비즈니스와 리소스에 맞춰 달려와서 그런건지 '새로운 것을 도입해 보자!'
라는 생각보다 안정적이고 효율적
으로 개발하는 방식이 익숙했다.
해당 방식이 틀리다는 생각은 아니지만, 사이드 프로젝트에서도 동일하게 운영하는 모습에 점점 고착된다는 느낌
을 받았다.
경력만 쌓이는 상황도 부담이고 지금 새로운 변화와 노력 없이 지낸다면 같은 상황을 반복하기에 다음 단계가 필요한 상황이다.
나는 공부해서 발전해야 하는 순간이고, 부족한 부분을 먼저 정리해야 아이템을 선정할 수 있다.
여러 개발자를 만나고 면접을 보면서 이론적인 부분이 부족하다는 걸 알고 있었다. 다만 부족한 상태로 내버려 뒀었다. 우선 해당 부분부터 채워야 한다.
그리고 최근 2년간 면접을 갈 때 준비라는 것을 하나도 안 했다. 어떤 질문이 들어올지 예상은 했지만 정리가 잘 안돼서 원하는 수준의 답변을 하지 못했다.
사이드 프로젝트를 진행할 때, 기술 스택을 변경해서 사용하려고 한다. 명확할수록 좋으니까 SWR, Emotion으로 도전한다. 항상 나오는 React vs Vue도 실제 Vue를 사용해 본 적이 없어서 답변하기 어려우니 챙기자.
SWR, Emotion
사용Vue
사용너무 많으면 어렵다는 걸 알기에 여기까지 정리하고 연말까지 지켜보자.
2022년 10월 25일
## Level3 문제 이번 추석에도 시스템 장애가 없는 명절을 보내고 싶은 어피치는 서버를 증설해야 할지 고민이다. 장애 대비용 서버 증설 여부를 결정하기 위해 작년 추석 기간인 9월 15일 로그 데이터를 분석한 후 초당 최대 처리량을 계산해보기로 했다. 초당 최대 처리량은 요청의 응답 완료 여부에 관계없이 임의 시간부터 1초(=1,000밀리초)간 처리하는 요청의 최대 개수를 의미한다. ## 해결방법 임의의 한 구간을 선택해서 1s안에 몇 개의 타임라인이 지나가는지 구하는 문제이다. 임의라는게 가장 헷갈리는 부분인데, 단순하게 생각해보면 이미 종료시점에 맞춰서 데이터가 정렬되어서 내려온다. 즉, 데이터를 반복문 돌렸을 때 다음 데이터의 종료시점은 무조건 나보다 뒤에 있다. 그렇다면 시작 시간이 현재 데이터 구간 안에 다음 데이터가 포함되는 지를 확인하면 되고 그게 1s가 된다. 이게 설명을 하려니까 어려운데, 소스코드 내에서 설명하는 편이 편할 것 같다. ## 소스코드 - 시작, 종료, 작업시간을 구하는데 split으로 작성하기에는 코드가 길어져서 정규식으로 진행했다. - 종료시간을 기준으로 반복문을 돌리며 그 다음 index의 데이터들의 시작시간을 확인한다. 이때, 포함해야하는 기준이 1000ms이기에 해당 값을 빼서 종료시간보다 이전이였는지...
2022년 10월 25일
## Level3 문제 2n명의 사원들을 두 팀으로 나누고 사원마다 무작위 자연수를 받았을 때, B팀이 승리하는 횟수 ## 해결방법 큰 수가 이기는 규칙이기에 내림차순으로 정렬하는게 효율적이다. 게임으로 단순하게 생각하면 A팀의 가장 큰 숫자를 이기지 못하는 상황일 때, B팀의 가장 작은 숫자를 버리는 방향으로 진행하면 된다. ex) A팀 [11, 9, 8, 7], B팀 [10, 9, 8, 7]이라면 B팀에서 11을 이길 수 있는 카드가 없으니까 가장 작은 수를 버리면서 B팀의 가장 큰 수를 유지할 수 있다. 해당 방식으로 tail이라는 변수를 놓고 B팀이 뒤에서 카드를 몇장 버렸는 지 체크하면서 값을 비교한다. ## 소스코드 ```js function solution(A, B) { const sortA = A.sort((a, b) => b - a); const sortB = B.sort((a, b) => b - a); let tail = 0; let count = 0; sortA.forEach((a, index) => { if (a >= sortB[index - tail]) { tail++; return; } count++; }); return count; } solution([6, 8, 7, 9], [7, 9, 8, 6]); solution([5, 1, 3,...
2022년 10월 02일
검색에서 사용하기 위한 sitemap을 등록할 때 jekyll-sitemap 플러그인을 사용하여 생성된 xml파일을 연결했었다. ( Jekyll Google Search Console 연동하기 ) 최근 블로그를 다시 정리하면서 Analytics를 보고있는데, 유효하지 않은 페이지들이 잡혀서 sitemap.xml 파일을 확인해보았고 jekyll-sitemap에서 post 뿐만 아닌 layout과 같은 불필요한 디렉토리도 사이트맵에 추가되고 있었다. Sitemap 파일 jekyll-sitemap Path 제외 jekyll-sitemap 문서에서는 특정 path를 제외하고 싶다면 아래와 같이 config의 defaults에 sitemap: false를 추가하라고 안내하고 있다. defaults: - scope: path: "author" values: sitemap: false 다만 내 블로그에서는 글을 분리하기 위해 tag, category와 같은 collections을 추가한게 문제인지 category를 셋팅하면 _categories + category path가 둘다 사라지고 pagination number가 path에 추가되는 등 제대로 동작하지 않아서 직접 제작하기로 했따. Sitemap 파일 만들기 Sitemap을 직접 생성하는건 생각보다 어렵지 않았다. 리스트를 그저 sitemap 형식에 맞게 출력해주면 될 뿐이다. 초기 셋팅 !!모든 코드 설명에서 \는 지워주세요. md 파일에서도 렌더링돼서 어쩔 수 없네요. root에 sitemap 파일, posts를 형식에 맞게 출력할 레이아웃 파일을 만들었다. /sitemap.xml /_includes /sitemap_item.xml sitemap.xml은 아래와 같이 기본 틀을...