
쏟아지는 일 완벽하게 해내는 법 뉴욕타임스 베스트셀러 Getting Things Done의 2016년 최신 업그레이드판. 초판이 출간되자마자 이 책에서 소개한 일 정리법은 ‘GTD 방식’이라 불리며 전 세계 수많은 직장인들에게 큰 반향을 일으켰 www.aladin.co.kr 책 읽기가 너무 힘들었다. 같은 말을 반복하는 느낌이 강했다. 그 와중에 인상깊은 문장들이 있어서 꾸역꾸역 읽어나갔다. 완독한 것에 대해 스스로에게 매우 칭찬하고 싶다. 나는 지금 쏟아지는 일 속에 살고 있다. 그리고 그 일들에 휩쓸려 살아가고 있다. 심지어 오늘도. 회사일, 개인적인 일들이 맥락없이 쏟아지고 계속 집중을 스위칭하며 살아가고 있다. 이 책은 그 상황에서 나에게 많은 액션아이템을 제안했다. 올해 상반기에는 이 제안들을 ..
끊임없이 나에 대해서 관찰했다. 과연 내가 언제 기분 좋은 상태를 유지하는지, 언제 일을 잘하는지, 언제 우울해지는지 등등. 그리고 더 나은 내가 되려면 뭘 해야할지 고민했다. 최근에 그 고민에 잠정적인 결론을 얻어서 적어두려고 한다. 나를 분산시키는 모든것과 싸운다. 내가 몰입하는 시간을 최대한 늘린다. 결국 나란 인간은 외부 자극에 끊임없이 분산된다. A를 하다가도 B를 보면 그게 더 하고 싶다. 관리하지 않으면 끊임없이 외부 자극에 휘둘리고 분산된다. 그리고 그 분산은 효능감을 떨어뜨리고 나를 우울한 상태로 만든다. 이 분산에 적극적으로 대응하지 않으면 나는 좋지 않은 상태를 유지하게 된다. 심지어 휴가나 여행을 갔을 때도 그렇다. 이것 저것 다 하고 싶어서 조급한 마음에 이것 저것을 따라가기 시작..
돈(금원)과 관련된 기능은 중요하다. 문제가 발생했을 때, 금전적 손실을 일으킬 수 있다. 만약 작은 회사라면 금전적 손실이 회사 전체의 리스크가 될 수 있다. 돈과 관련된 기능을 다룸에 있어서 다른 여타 기능들 보다 더 면밀하게 살필 필요가 있다. 돈과 관련된 기능을 어떻게 다뤄야할 지 동료들과 회고한 내용을 좀 적어두려고 한다. 1. 이상 상황을 곧바로 탐지할 수 있는 장치가 있어야한다. 문제는 언제든 발생할 수 있다. 문제를 빨리 감지하는 것이 중요하다. 간단하게 비즈니스 메트릭을 구축하고 임계치가 벗어났을 때 알람을 주게 한다던지, 특정 에러상황에서 에러 알림이 오게 한다던지, 이상 탐지 장치를 꼭 구축해야한다. 2. 이상 상황의 문제를 빠르게 식별하고 차단 및 해결할 수 있는 장치가 있어야한다...
의도나 생각 없이 mysql collation을 general_ci을 쓰거나 unicode_ci를 쓰곤 했다. 이번에 unicode_ci로 통일하게 되었는데, collation 때문에 의도치 않은 상황을 겪었다. 그래서 collation에 대해서 살짝 파보았다. Character Set Character Set은 문자를 어떻게 표현할 지 정의한 집합이다. 세상에 존재하는 많은 문자들을 디지털로 표현하기 위해서 정의했다고 볼 수 있다. 이 시대에 우리가 주로하는 utf-8이 바로 Character Set 이다. utf-8은 세상의 대부분의 문자와 특수기호, 심지어 이모지를 1~4바이트로 표현할 수 있게 정의해두었다. mysql에서는 utf8을 3바이트로 표현하는 선택을 했다. (세상의 모든 언어가 21bi..

익명으로 커리어 관련한 가벼운 상담을 할 수 있는 커피챗이라는 서비스를 알게 되었다. 현재 베타 서비스 중으로, 자신의 회사와 직무, 경력을 인증한 파트너에게 커피챗을 요청하고, zoom을 통해서 20~25분 동안 가볍게 이야기할 수 있는 서비스이다. 커피챗 한번에 가격은 14,900원이고, 파트너는 10000원을 받게 된다. 지금까지 나에게 4번의 요청이 왔고, 2번의 노쇼와 2번의 실제 대화가 있었다. 그 후기를 적어보았다. 2번의 노쇼 내가 가능한 시간대를 저녁대로 설정했다. 파트너로 등록하고 커리어 상담이 왔다. 카카오톡으로 일정에 대해서 리마인드 해주고, 30분 전에 접속 가능한 zoom 링크를 공유해준다. 5분 정도의 지각은 허용하는 것으로 보인다. 정시에 들어가서 기다렸지만, 아쉽게도 상대가..

기존에 s3에 있는 한글 이름을 가진 엑셀 파일을 변경하고 싶어서 맥에서 같은 이름의 엑셀 파일을 만들어서 다시 업로드했다. 그런데, 덮어써지지 않았다. 엥? 그래서 이래저래 삽질을 하다보니 유니코드에서 한글의 조합형(NFD)과 완성형(NFC)이 있다는 것을 알게 되었고, 맥은 조합형을 사용한 다는 것을 알게 되었다. 그래서 엑셀 파일을 구글 드라이브를 통해서 만들고 다시 s3에 업로드 했더니 잘 되었다. 말그대로 한글 조합형(NFD)는 한글을 초성중성종성을 분리하여 유니코드로 표현한 것이다. 예를 들어, '템' 이라고하는 글자가 있다면 'ㅌ', 'ㅔ', 'ㅁ'이라고 분리해서 유니코드로 표현한다. 완성형(NFC)는 완성된 하나의 글자를 유니코드로 표현한 것이다. 예를 들어, '템'이라고 하는 글자가 있다..
최근 소프트웨어를 만드는 개발자의 연봉 상승이 언론 기사를 통해서 주목받고 있다. 주변의 개발자 지인들도 그런 흐름에 마음이 싱숭생숭하여 이직을 준비한다는 이야기를 듣는다. 그리고 몇번의 이직을 경험해본 나에게 이렇게 묻는 경우가 종종 있다. "뭘 공부해야 할까?" 나는 이 질문 자체가 잘못되었다고 생각한다. 공부해서 이직을 하는 것이 아니라고 생각하기 때문이다. 그 이유를 설명하기 위해서는 내가 생각하는 이직의 정의를 먼저 이야기할 필요가 있다. 이직이란? 이직은 원래 다니고 있는 직장에서 비슷한 업무를 하고 있는 다른 직장으로 옮기는 것을 의미한다. 만약 업무가 바뀐다면 나는 이것을 이직이라기 보다는 전직이라고 말한다. 그리고 기존의 업무 경험이 없는 상태에서 직업을 얻는 것은 신입으로 구직을 했다고..
테스트 코드가 작성하는 것이 어렵다고 많이 이야기한다. 테스트 코드가 없는 상태로 성장한 프로젝트들, 그리고 외부 의존성(DB, 외부 API, 파일 쓰기 등)이 많은 프로젝트들의 코드가 보통 테스트가 어려운 경우가 많다. 과연 그때 우리는 어떤 선택을 해야할까? 추측하건데 보통은 그냥 작성하고 배포한 후, 직접 API를 호출해보거나 확인해볼 수 있는 UI를 통해서 테스트를 해볼것이다. 이런 사용자 테스트는 비용이 크다. 테스트할 여러가지 상황을 재현하기도 쉽지 않을 수 있고, 버그 발견 후 수정하고 다시 확인하는데도 오래 걸린다. 혹자는 실 사용자에게 테스트를 넘길 수도 있다. 테스트 없이 그냥 서비스를 배포하는 것이다. 이런 상황에서 예상되는 결과는 다음과 같다. 문제없이 기능이 배포 되었다. 문제가 ..
휴일에 버그를 발견했다. 한동안 존재하던 버그였다. 발견하자 마자 바로 고쳤다. 바로 공유할까 하다가 휴일 끝나고 공유해야지 라고 생각하고 휴일을 보냈다. 그리고 평일에 까먹었다. 다른 동료가 데이터를 보던 도중에 그 버그가 있었다는 것을 발견했다. 다음 부터는 문제가 있으면 바로 공유해달라는 피드백을 받았다. --- 개발자가 자의적으로 어떤 버그는 큰 영향이 없는 버그라고 판단하고 공유를 하지 않을 수도 있다. 그러나 데이터를 기반으로 의사결정하는 경우에 (공유받지 못한) 그 이벤트를 통해서 영향받은 데이터가 팀의 의사결정이 올바르지 않은 방향으로 가도록 할 수 있다. 버그가 있었고 그 버그가 데이터를 왜곡했고 팀은 왜곡된 데이터로 잘못된 의사결정을 할 수 있다는 뜻이다. 공유를 하지 않은 개발자의 판..
C사에서 어느날(2020-12-15) 링크드인으로 정성담긴 포지션 제안이 왔다. 많은 리쿠르터 분들이 연락을 주셨었지만 보통은 무시했는데, 글의 정성을 보고 한번 진행해봐야겠다고 생각했다. 전화 통화를 통해서 채용 과정에 대해서 설명을 들었다. 1. 코딩 테스트 2. 면접관과 1:1 코딩 테스트 2회 3. 면접관과 1:1 코딩테스트 1회, 아키텍팅 테스트 1회, 컬쳐핏 면접 다른 리쿠르터에게도 이 설명을 듣고 하기 싫어져서 안 했었지만, 이번에는 가볍게 한번 진행해보기로 했다. 모든 면접은 비대면으로 진행했고 총 한달이 소요되었다. 코딩 테스트 프로그래머스에서 진행했다. 난이도는 어렵지 않았다. 자바로 풀라고 해서 그게 좀 귀찮았다. 나의 코딩테스트 스타일에 대해서 간단히 소개하면, 최대한 빨리 간단한 ..

올해 나름 책을 많이 읽었다고 생각했는데, 완독한 책이 10권 밖에 안되서 아쉽다. 내년에는 20권을 목표로 고고! 사피엔스 - 유발 하라리 사피엔스 이제 우리는 무엇을 인간이라고 할 것인가지금으로부터 10만 년 전, 지구에는 호모 사피엔스뿐만 아니라 네안데르탈인, 호모 에렉투스 등 최소 6종의 인간 종이 살아 있었다. 이후 호모 사피엔스 book.naver.com 인간으로서 인간이라는 종을 메타 인지하고 앞으로의 인간과 나에 대해서 고민하게 되었던 책. 미라클 모닝 - 할 엘로드 미라클모닝 아마존 종합 베스트셀러 1위!전 세계 18개국 판권 수출출간 첫해에 아마존 역사상 가장 높은 별점을 받은 책출간 전부터 [르몽드]가 격찬한 “기다려지는 아침을 만들어주는 책”저자는 우리 모 book.naver.com..

문제 상황 직접 http 요청(curl)을 할 경우에는 응답에 CORS 관련 헤더가 적절하게 내려오는데, 하이브리드 앱 웹 뷰에서 그 API를 호출하면 CORS 오류가 발생 실제 요청을 수행하는 backend 서버 까지 여러 레이어가 있는 상황 (사용자 요청 --> NGINX --> GATEWAY --> BACKEND SERVER) 문제 접근 CORS 문제라고 판단하고 관련 헤더가 잘 세팅이 되는 지 확인 잘 되는 것 확인 후 로그 분석했지만 딱히 문제 없음 CORS에 집중해서 직접호출과 웹뷰에서 API 호출을 비교 특정 시스템 웹뷰에서 특정 문제가 있는지 확인 결국 못찾음... 실제 문제 CORS랑 전혀 상관없는 nginx의 request body 크기 제한 이슈 사이즈가 큰 파일을 request bo..

백앤드 개발자는 서비스의 비즈니스 관련 요구사항을 정리하고 코드로 풀어낸다. 작성한 서버 프로그램은 사용자의 요청을 수행한다. 요구사항은 끊임없이 변하고 서비스는 성장한다. 그에 따라서 코드의 양도 많아지고 복잡해진다. 복잡함 때문에 변화의 속도는 느려지고 개발자들은 고통받는다. 유능한 백앤드 개발자는 이 복잡함을 잘 다루는 개발자일 것이다. 복잡함은 여러 형태로 나타난다. 우선 여기저기 의존(참조, 결합)가 많은 코드들이 있을 수 있다. 흔히 말하는 결합도가 높은 코드이다. 그리고 같은 기능이 여기저기 구현되어 관리가 되지 않는 코드가 있을 수 있다. 그리고 용어의 일관성이 없어 코드를 읽기가 어려운 경우도 있다. 나도 이런 복잡함을 경험해왔고 지금도 경험 중인 백앤드 개발자이다. 도메인 주도 설계(D..
몇 년전 우울감이 가득한 날이면, 미드 시즌 3,4를 봤다. 특히 클레어의 남편이자, 세 남매의 아버지의 필을 보면 나는 기분이 좋아졌다. 약간 바보같기도 하지만 자기만의 취미도 확실하고 유머러스하며 가족들을 잘 챙기는 그를 보면 그의 역할을 내가 하고 싶다는 생각을 했다. 최근에는 미드 과 을 가끔 본다. 처럼 가끔은 한심하지만 가족처럼 내 주변에서 희노애락을 같이 느끼는 친구들이 있다면 인생이 외롭지 않을 것 같다고 생각했다. 은 비슷한 친구들이 직장에 있으면 참 좋겠다는 생각이 들게 했다. 막연하게 그런 관계가 이미 있거나 생길 것이라 여기며 살아오다가, 어느날 문득 그런 관계 자체가 판타지라는 생각이 들었다. 사람들은 그런 커뮤니티를 끊임없이 욕망하기 때문에 앞서 이야기한 컨텐츠들을 소비하고 있는..
지난 주 화요일에 정형외과에서 진료를 받고 수요일 (2020-08-05)에 첫번째 도수치료를 받았다. 병원은 회사 근처에 있고, 우리 회사 사람들에게 할인을 해주는 병원에서 하게 되었다. 진단 도수 치료선생님을 만나서 x-ray 사진을 같이 보면서 진단을 했다. 나는 현재 일자목, 일자허리이다. 코어 근육이 약하다. 그래서 허리도 계속 불편하고 연결되어 있는 어깨, 승모도 불편해진다고 했다. 코어 근육이 정확히 어떤 근육인지는 제대로 설명듣지 못했다. 원인 계속 척추기립근을 이용해서 허리를 세우려고 하면서 일자 허리가 되고 허리 통증이 생긴다. 걸을 때 8자로 걷는다. 그러면 아무리 오래 걸어도 코어 근육이 단련되지 않는 다고 한다. 구강호흡을 하는데 그렇게 되면 2차 호흡근을 사용하게 되어 근육이 더 ..
보호되어 있는 글입니다.
한두달 전쯤 독서 모임에서 번개를 했다. 남산을 좀 걷다가 시원한 카페에서 음료를 마시고 해방촌의 작은 서점들을 갔다. 서점들은 작고 책이 빼곡 했다. 걸어 오면서 사람들과 이런 독립 서점들을 운영하는 사람들의 생계를 걱정하는 대화를 하기도 했고, 마침 책 선물도 하고 싶어 기어코 책을 샀다. 우선 선물할 책으로는 이 책을 샀다. 그리고 내가 읽을 책으로는 항상 궁금하던 이 책을 샀다. 나는 여름을 살고 싶어한다. 선물로 줄 책은 여름안에서 여름을 기념하는 책이라면, 내가 읽을 책은 여름 밖의 이야기를 다룬 책이다. 오늘 을 다 읽었다. 바깥은 여름은 단편 소설집이다. 다음의 소설들이 포함되어 있다. 입동: 어린 자식을 잃은 부모 이야기 노찬성과 에반: 늙은 유기견을 키우는 조손 가정 이야기 건너편: 이..
1장. 표기법과 메타모델 UML을 사용하는 방법들 스케치, 청사진, 프로그래밍 언어 필자의 편견으로는, 이 셋 중에서 가장 보편적인 것은 UML을 스케치로 생각하는 것이다. 이 방식에서는 개발자가 시스템의 어떤 측면에 대해 다른 사람과 의사 소통하는 것을 돕는 목적으로 UML을 사용한다. ... 스케치는 순공학(Forward Engineerging) 또는 역공학(Reverse Engineering)에 사용될 수 있다. 스케치의 핵심은 선택성이다. 순공학에서는 작성하고자 하는 코드의 어떤 문제에 대해서 대강 스케치를 해서 팀 내의 사람들과 의논을 한다. 이 책은 설계를 스케치하는 용도의 UML을 소개하는 책이다. 적법한 UML이란 무엇인가? 언어의 두가지 카테고리 규범적인 규칙(Perscriptive ru..
보호되어 있는 글입니다.
- Total
- 200,300
- Today
- 70
- Yesterday
- 88
- 독후감
- 사누르
- spring
- 개발자
- S68
- 웹
- 웹을 지탱하는 기술
- 컨테이너
- Docker
- rest
- spring boot
- 회고
- ecma6
- hands-on
- 실수노트
- 도커
- ES6
- AWSKRUG
- javascript
- Clean code
- AWS
- sanur
- 한달살기
- Bali
- container
- 발리
- html
- 객체지향
- springboot
- JPA