서론지인이 직무 관련 독서토론을 하는 것을 보고 나도 관심이 가서 추천해달라고 했었다. 그렇게 추천을 받고 오랜 시간이 지난 후에야 독서토론에 참여하게 되었다. 이번에는 새로운 질서라는 책을 기반으로 독서토론을 했다. 너무 인상깊게 읽었고 요즘 뜨거운 감자인 AI 관련 주제라서 더 관심이 갔다.본론아이스브레이킹부터 시작했다. 역시 이런 모임에는 아이스브레이킹으로 긴장감을 풀고 시작하는게 좋은 것 같다. 가벼운 게임을 진행했는데 나도 나중에 기회가 된다면 이런식으로 아이스브레이킹을 해봐도 괜찮을 것 같다는 생각이 들었다. 몇 가지 기억나는 질문들만 가볍게 적어보겠다. "이 책에서 꼭 공유하고 싶은 한 줄은 무엇인가요"마음의 이상주의는 이성의 현실주의와 양립할 수 있으며 전자가 후자를 고귀하게 만든다는 것을..
마음의 이상주의는 이성의 현실주의와 양립할 수 있으며 전자가 후자를 고귀하게 만든다는 것을 그는 평생에 걸쳐 증명하려고 애썼다. 위 한 문장만으로 이 책을 읽을 가치가 있다고 느꼈다. 나는 슬픈 영화를 봐도 울지 않는 사람인데 눈물이 날뻔했다. 나는 이성의 현실주의에 가까운 사람이다. 그래서 비판적 사고와 긍정적 사고를 하는 사람이라고 생각해왔다. 어쩌면 내 긍정적 사고는 마음의 이상일지도 모른다. 그리고 비판적 사고는 이성의 현실주의와 맞닿아있는 것 같다.우리 모두는 이상과 현실을 모두 바라본다. 사람에 따라 이상과 현실을 바라보는 비중이 다를뿐이다. 인간이란 원래 그렇지만 최근들어 이분법적인 사고와 그에 따른 갈등이 늘어나는 것 같다. 모두 장단점이 있으니 서로 잘 융화되어서 잘 지냈으면 하는 작은 ..
옛날부터 겸손해야한다. 겸손해야한다. 여기저기서 10번도 넘게 들었던 말이다. 나는 겸손해야하는 이유가 남에게 미움받지 않기 위해서라고 생각했었는데 지금은 생각이 좀 다르다. 정말 겸손해야하는 이유는 다른데 있다고 생각한다. 능력과 겸손함의 역설세상을 살다보면 어떤 분야든 나보다 잘하는 사람, 못하는 사람을 모두 만나게 된다. 그리고 특정 분야에서 나보다 못한다고 생각하는 사람의 의견은 무시하거나 "내가 했던 경험인데 그거 아니야" 라고 생각하는 경우가 있다. 근데 막상 들어보면 그 사람의 의견이 가장 좋은 해결책이 되기도 한다. 왜 이런 일이 발생하는 걸까? 나는 가장 큰 이유가 겸손함의 부족함이라고 생각한다.그리고 이 겸손함은 경력이 많아지고 능력이 생길수록 결여되기 쉬운 부분이다. 경력 20년이 넘..
배경좋은 동료가 되기 위한 많은 조건들이 있다. 그리고 나는 좋은 동료가 되기 위해 어떤 행동을 하고 있는지 생각해보았다. 그리고 꽤 잘하고 있다고 생각하는 것들을 블로그에 하나하나 정리해보려고 한다. 주석을 왜 쓸까일반적으로 사용되는 주석의 정의는 다음과 같다.낱말이나 문장의 뜻을 쉽게 풀이함. 또는 그런 글 [1] 개발자가 사용하는 코드에서의 주석도 크게 다르지 않다. 개발에서 주석은 코드의 설명을 쉽게 풀이하거나 추가 설명을 위해 작성한다.이렇게만 들으면 주석을 그냥 사용하면 끝일것같은데 실무에서는 어떤 문제들이 있을지 하나씩 살펴보겠다. 주석이 문제가 되는 경우생각보다 주석이 문제가 되는 경우가 종종 있다. 그리고 내 생각에는 모두 해결책이 존재한다.(물론 상황에 따라 다를수는 있지만 정석이라고 ..
배경취업하기 전 인상깊게 읽은 글이 있다. 절반도 이해하지 못했는데 경력이 쌓이면 언젠가 이해할 수 있겠지? 라고 생각했었다. 그리고 4년차 개발자가 된 지금은 어떤지 알고 싶어졌다. 프론트개발만 하고 있기 때문에 그때와 달라진게 있을까? 싶은 생각도 있지만 CS 지식도 쌓인 만큼 조금 달라졌길 기대한다. 본문위에서부터 한문단씩 읽으면서 생각을 정리해보겠다.(굳이 설명을 덧붙이지 않아도 되는 부분은 생략) 작성자 OR 굴비 알고리즘의 연산 비용을 계산해 보자. 내가 따르는 친구의 수를 m이라 하고 전체 사용자 수를 n이라고 한다면 전체 사용자 검색 연산의 시간 복잡도는 O(m log(n))이 된다. 물론, 각 사용자별로 정렬된 게시물 레코드 식별자 리스트를 찾은 후에도 각 사용자별 레인지 쿼리를 수행하고..
날것의 생각을 그대로 올립니다. 깨달았다. 나는 깊이 파고 들지 않는다. 우테캠 세번째 프로젝트를 하면서 깨달았는데 지금도 변한게 없다. 여러가지 변명을 대고 싶지만 그건 좋은 방법이 아니라는 것을 알고 있다. 지금까지는 그랬다는 것을 인정하고 앞으로는 변해야한다. 변하기 위한 액션 아이템은 두가지정도 잡았다. 첫번째는 내가 잘 모른다고 생각하는 것들을 깊게 생각해보고 코드로 작성하기. 이건 https://github.com/yoonminsang/web-playground 에 올릴 예정이다. 그 동안 매번 바뀌어왔던 코드 가치관, 그리고 변화 등도 같이 업데이트시켜서 나만의 데이터베이스를 만들려고한다.(코드로 작성하지 않고 그냥 학습한 내용들은 https://github.com/yoonminsang/TI..
배경예전에 웹 서비스 캐시 똑똑하게 다루기 라는 글을 읽었다. 과연 똑똑하게 다루는 방법은 뭘까? 지금 내가 하는 프로젝트는 어떤 방법을 사용해야할까? 타사 서비스들은 어떻게 다루고 있을까? 이런 여러가지 고민들을 했고 정리해보려고 한다. 기초 지식캐시 컨트롤에 대한 기초 내용은 다루지 이 글에서 다루지 않습니다. 다만 필수적인 내용만 가볍게 정리하고 넘어갑니다. no-cache: 브라우저(로컬) 캐시를 사용하지 않는다. 단, cdn(중간서버) 캐싱은 사용한다.(사용 전 서버에 재검증)no-store: 모든 캐시(브라우저, cdn)를 사용하지 않는다.max-age: 브라우저 캐시 유지 시간s-max-age: cdn 캐시 유지 시간public: 브라우저와 중간 서버가 모두 캐시를 저장할 수 있음privat..
배경이전에 면접, 과제 등에서 스택, 큐에 대한 질문을 받은적이 있다. 그때는 실무 경험이 없었기 때문에 막연히 이론적 지식만으로 답변을 했었떤 것 같다. 조금이지만 경험이 쌓인 지금 그 때로 돌아가서 답변해보려고 한다. 실무에서 마주한 문제js script 최적화웹에서 js를 사용하려면 script 태그를 사용해야한다. 그리고 async, defer 속성을 통해 실행 순서를 제어할 수 있다. 아래는 과거 기술면접을 준비하면서 적었던 내용이다.- DOM을 따라 반드시 순서대로 실행되어야 한다면 이 방식을 사용하면 스크립트가 로드되기 전에 함수를 실행할 수 있고, 로드된 후에는 순차적으로 실행된다. 더 생각해보기- 전역객체를 두개나 만들었다. 이게 최선일까? 하나로 줄일수는 없을까?- body에 appe..

