Hot
-
미움 받을 용기
주선님, 유진님과 함께 하는 트레바리 - 독서모임 에서 리더십에 관한 이야기를 하던 중, "리더에게 가장 중요한/필요한 자질은 무엇일까요?" 라는 질문이 나왔다.참여하신 많은 분들이 자신만의 답을 제시하였는데, 나는 "외로움을 버티는 힘 - 팀원에게 미움 받을 용기" 라고 했다.당연히 중요한 리더십 원칙들이 많겠지만, 여러 리더들과 동료들을 보면서 이게 사실은 가장 중요하다는 생각을 했다.계속 팀원의 역할만 하다가 리더가 되신 분들은 팀원들에게서 미움 받는 것에 대해 굉장히 취약한 경우를 종종 봤다.소수의 팀원만 있다 하더라도,해당 팀원들의 리더가 된다는 것은 이전과는 다르게 그들과 어느정도의 거리감을 둬야한다.감정에 치우치지 않는 결정들을 내리기도 해야하고,때론 팀원들이 싫어할만한 이야기도 꺼내야 한다..
2024.09.28
-
결심은 단순하게
가담항설 웹툰을 보면 참 멋진 대사들이 많다.저는 사당패 시절, 매일 결계에 갇혀 지냈는데, 저는 그곳을 영원히 나갈 수 없을 거라 믿었어요.항상 그런 말을 들었거든요."여기서 절대 도망칠 수 없어""도망쳐도 반드시 붙잡힐 거야""어디에서도 널 필요로 하지 않아""이곳을 떠나면 넌 불행해질 거야"어릴 때는 말을 잘 듣는게 착한 거라고 생각하잖아요.말을 듣지 않고 남에게 피해를 입히거나 불행하게 만들면 벌을 받는다고.그런데 말도 잘 듣고 남을 불행하게 만들지 않아도 저는 왜 매일이 불행하고 괴로운 건지 너무 궁금한 거에요.그런데 어느 날, 전국을 떠돌다 우연히 두류산 고개를 지나는데, 그 자리에서 발을 뗄 수가 없었어요.말로만 듣던 것과는 비교도 안되게 아름다워서.찰나가 아닌 이곳의 사계절을 다 보고 싶어..
2024.09.14
-
Spring Boot 3.x 실행이 안될 경우 (feat. IntelliJ)
스프링 부트 3.0 이 출시되었다. (현재 최신은 3.0.1 이지만) 3.0 부터는 Java 17부터 지원된다. 그러다보니 기존에 Java8, 11등을 사용하시던 분들은 3.x 스프링 부트 프로젝트를 실행할때 에러들을 만나게 되는데, 이번에 나도 똑같이 경험해서 정리하게 되었다. 문제 스프링 부트 3.0.1 프로젝트를 실행할 일이 생겼다. 그래서 기존에 설치된 IntelliJ에서 Gradle Import를 시켰더니 다음과 같이 방다한 에러 메세지와 함께 실행이 되지 않았다. 기존 노트북에서 모두 Java 11로 프로젝트를 구동시켰었다. No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.1 was found. The ..
2023.01.20
New
-
미움 받을 용기
주선님, 유진님과 함께 하는 트레바리 - 독서모임 에서 리더십에 관한 이야기를 하던 중, "리더에게 가장 중요한/필요한 자질은 무엇일까요?" 라는 질문이 나왔다.참여하신 많은 분들이 자신만의 답을 제시하였는데, 나는 "외로움을 버티는 힘 - 팀원에게 미움 받을 용기" 라고 했다.당연히 중요한 리더십 원칙들이 많겠지만, 여러 리더들과 동료들을 보면서 이게 사실은 가장 중요하다는 생각을 했다.계속 팀원의 역할만 하다가 리더가 되신 분들은 팀원들에게서 미움 받는 것에 대해 굉장히 취약한 경우를 종종 봤다.소수의 팀원만 있다 하더라도,해당 팀원들의 리더가 된다는 것은 이전과는 다르게 그들과 어느정도의 거리감을 둬야한다.감정에 치우치지 않는 결정들을 내리기도 해야하고,때론 팀원들이 싫어할만한 이야기도 꺼내야 한다..
2024.09.28
-
결심은 단순하게
가담항설 웹툰을 보면 참 멋진 대사들이 많다.저는 사당패 시절, 매일 결계에 갇혀 지냈는데, 저는 그곳을 영원히 나갈 수 없을 거라 믿었어요.항상 그런 말을 들었거든요."여기서 절대 도망칠 수 없어""도망쳐도 반드시 붙잡힐 거야""어디에서도 널 필요로 하지 않아""이곳을 떠나면 넌 불행해질 거야"어릴 때는 말을 잘 듣는게 착한 거라고 생각하잖아요.말을 듣지 않고 남에게 피해를 입히거나 불행하게 만들면 벌을 받는다고.그런데 말도 잘 듣고 남을 불행하게 만들지 않아도 저는 왜 매일이 불행하고 괴로운 건지 너무 궁금한 거에요.그런데 어느 날, 전국을 떠돌다 우연히 두류산 고개를 지나는데, 그 자리에서 발을 뗄 수가 없었어요.말로만 듣던 것과는 비교도 안되게 아름다워서.찰나가 아닌 이곳의 사계절을 다 보고 싶어..
2024.09.14
-
스즈키 히로키 - 마키아벨리의 군주론을 읽다
스즈키 히로키의 "마키아벨리의 군주론을 읽다"를 읽고 생각나는 구절들을 정리했다.1장구두쇠가 되어도 좋다"군주는 인색하다는 평판에 개의치 않아도 된다.백성을 지키기 위해서도, 자신을 지키기 위해서도 (중략) 그래야 한다.구두쇠가 되는 것은 지배자가 자신의 자리를 보존하기 위한 하나의 악덕이다."...낭비하는 리더는 큰일을 치를 때마다 국민에게 피해를 주고 원망을 받는 반면에, 절약하는 리더는 국민의 지지를 받으면서 큰일을 해냅니다.유동성이 풍부한 스타트업 투자 호황기의 대표님들이 생각난다.그 시절에 낭비를 했던 리더분들은 대단히 힘든 시기를 보내었고,당시에 투자금을 필요한 곳에만 적절하게 사용하신 분들은 지금 혹한기 시절에 오히려 더 성과를 내고 있다.인건비의 과도한 투자로 요즘의 시기가 어렵다는 뉴스가..
2024.09.14
-
과락하지 않기
국가기술자격증 시험에는 재밌는 제도가 있다.평균 60점이 넘으면 시험을 통과할 수 있는데, 나머지 과목들을 모두 100점을 맞아도 한 과목이 40점 이하이면 과락으로 탈락이다.즉, 5과목 중 4과목이 100점이고 한 과목이 39점이면 평균 87.8점임에도 불합격이다.모든 과목을 60점이상 맞을 필요는 없지만, 한 과목이라도 40점 이하는 안된다는 이 제도가 스타트업 생활을 하면서 자주 생각하게 된다.작은 회사에서 큰 회사로 가는 경험을 계속 하다보면 "장점의 극대화 vs 단점의 최소화" 의 결정들을 자주 보게 된다.주변의 다른 사람들과 비교해 내가 갖고 있는 장점을 더 극대화 하는 것으로 커리어를 발전시켜나갈 것이냐, 아니면 타인에 비해 부족한 점을 채워나갈 것이냐인 것이다.예를 들어 아직 서비스가 일정..
2024.09.02
-
아무도 없어도 규칙을 지키는 사람
늦은 시간에 퇴근을 하면 종종 신기한 경험을 하게 된다.너무 늦은 시간에 퇴근을 하면 보통은 바로 회사 택시를 불러 타고 가곤 하는데, 그날은 머리도 식힐겸 조금은 걷다가 택시를 타려고 했다.저녁 11시가 넘는 늦은 시간.주변에 아무도 없는, 지나가는 차도 없는 아주 조용한 횡단보도의 신호등을 기다리는 사람을 본 적이 있다.지켜보는 사람 하나 없는 곳에서도 규칙을 지키는 사람이 있다는 것에 걸음을 멈추고 한동안 지켜보게 되었다.신호등의 불이 켜지고나서야 건너가는 모습을 보면서 멋지다는 생각을 했다.누군가에게는 융통성이 없는 것일 수 있다.지나가는 차 하나 없어 사고날 일이 없고,지켜보는 사람도 없으니 누군가 이상한 눈길로 볼 일도 없을 것이다.그러면 굳이 기다리지 않고 횡단보도를 지나가는 것이 늦은 시간..
2024.08.29
-
1. TS를 만나고 - 디자인
JVM 컨퍼런스가 있으면 "Java 세상에서 살던 사람이 처음 TS 세계를 만나고 느낀 여러가지 차이점" 을 발표하려고했는데, 시간도 너무 지났고, 발표 준비하기도 쉽지 않은 것 같아 블로그에 시리즈로 시작한다.Java가 구린 언어다를 표현하기 위한 글이기 보다는 전작(다른 언어로 성장하기)과 마찬가지로 타 생태계를 통해 성장할 수 있음을 알리는 글이다자바를 처음 배울때 getter/setter 에 대한 이야기를 많이 들었다.캡슐화 등의 장점을 들으면서 클래스 안에는 항상 무분별하게 getter/setter 를 생성했다.(그때는 Lombok을 배우지 못했던 터라) IDE의 자동 생성 기능을 사용하면서 열심히 getter/setter를 생성했다.물론 예전부터 많은 분들은 무분별한 getter/setter를..
2024.08.26
-
IntelliJ 등에서 메모리 점유율이 계속 높아질 때 (feat. vanilla JBR)
silicon M1 맥북을 사용하고나서 IntelliJ를 계속 켜놓고 있으면 끝도 없이 메모리가 올라가는 이슈가 발생했다.현재 내 IntelliJ VM Option 에서 메모리 설정은 다음과 같다.(PC는 M1 Pro 16GB)-Xms1024m-Xmx4096m위와 같이 설정하고 IntelliJ를 켜두고 오랜 시간이 지나면 IntelliJ의 자체 Memory 분석 도구에서는 여전히 아래와 같이 정상적인 사용량이 노출되는 반면,실제 IntellIJ의 메모리 사용량은 다음과 같이 설정한 VM Option을 크게 초과해서 사용하는 것을 확인할 수 있다.16GB RAM을 가진 PC에서 14GB에 가까운 메모리를 사용중인데, 이건 더 높은 메모리 사양을 가진 맥북을 사용하면 더 크게 메모리를 점유한다.(테스트 결과..
2024.08.19
-
좋은 회사와 커뮤니티
전 직장에서는 문화 면접 혹은 수습 전환 인터뷰시에 창업자셨던 대표님이 참여하시면 꼭 물어보시는 질문이 있었다."좋은 회사란 무엇이라고 생각하시나요?"보상/복지가 좋은 회사, 가족들에게 자랑할 수 있는 회사, 뛰어난 동료가 모여있는 회사 등등 여러 좋은 회사들의 조건들이 있다.그 당시에는 되게 남들이 하는 그런 흔한 좋은 회사의 모습을 이야기했다.그때의 답변이 나 스스로도 너무 마음에 들지 않고, 한번도 고민해보지 못했던 주제라서 이따금 "좋은 회사" 에 대해 생각한다."좋은 회사" 라는게 결국 "계속 다니고 싶은 회사" 를 의미한다고 생각했다.그래서 2~3년 전부터 "좋은 회사란 같은 관심사와 미션을 가진 사람들이 모인 커뮤니티" 라고 나름 정리가 되었다.물론 회사의 제 1 목표는 회사의 지속된 생존이..
2024.08.15
-
운이 따르는 조직
사내에 공유했던 글을 기록차 함께 남깁니다.요즘 들어 부쩍 "어떻게 이렇게 타이밍이 잘 맞지" 라는 생각을 자주한다.작게는 1주일전 대표인 쭈의 이메일이 해킹 시도가 그런 경우였다.(실제로 해킹당한 건 아니지만) 다수의 로그인 시도가 있었고, 이미 2FA 등의 보안이 있었던 상태라 큰 문제는 아니였다.마침 쭈의 이메일 해킹 공격이 있던 그 날은 이메일과 각종 계정 보안을 기존 보다 한 단계 높일 수 있는 DevOps 팀의 발표와 실습이 있었다.최근 구글 계정 해킹 시도가 심해지고 있음을 알고 있었기에 DevOps 팀에서 빠르게 준비를 해주셨는데, 하필 그게 딱 쭈의 이메일 해킹 공격을 당한 날에 전사에 더 높은 계정 보안 방법을 공유드린게 타이밍이 참 공교롭다는 생각이 들었다.왜 지금 더 보안 레벨을 높..
2024.08.13
-
창피한 일
6월 1일에 결혼식을 했다.수백명의 지인들 앞에서 축가를 불렀다.혹시나 못할 수도 있으니, 와이프를 비롯해 축사를 해주는 친구에게도, 축가를 불러주는 친구에게도, 그 외 주변의 모든 이에게 이야기 하지 않고 몰래 준비했다.노래에 자신이 없다보니 계속 연습해도 마음에 들지 않으면 안해야겠다는 생각도 있었다.아무도 모르면 아무일도 아니다.숨고를 통해 집 근처에서 보컬 트레이닝 하시는 선생님께 배웠다.4, 5월 2달간 주 1회씩 진행하다가 결혼식 2주 전부터는 주 2회씩 배우고, 연습했다.처음 보는 사람 (선생님) 앞에서 반주 없이, 마이크 없이 그냥 노래를 부르는 일은 최근 들어 가장 부끄러운 순간이였다.'나'의 노래를 직접 듣는게 처음이였고, 그렇게 부른 노래를 녹음하고 처음 들었을때는 1절만 듣고 끌 정..
2024.08.12
-
오프라이트 & TickTick 연동하기 (feat. Zapier)
요즘 Todo App을 오프라이트로 바꿔서 사용해보고 있다.기존에 TickTick을 사용했는데, TickTick이 가지는 여러가지 장점이 있지만, 아직 통합 기능이 부족하다.분산된 여러 업무 도구들이 자동으로 연계 되어 굳이 내가 별도로 기록할 일이 없도록 하는 것이 필요한데, 그런 부분에서 TickTick은 현재까지 (2024.08.06) 구글 캘린더 통합만 지원한다.반면 오프라이트의 경우 슬랙, 지메일, 구글 캘린더, Zapier 등 여러 플랫폼을 지원하고 있어 파편화 된 업무 정보를 한 곳에서 볼 수 있다.물론 이런 업무 도구에 쌓인 정보들은 회사의 중요 정보가 되기도 하기 때문에 공개 범위를 적절하게 사용하는 것이 좋다.다만, 여전히 TickTick도 함께 사용중인데, 그 이유는 모바일 기기에서의..
2024.08.10
-
행복한 일들은 매일 있다
예전에 곰돌이 푸? 동화에서 봤던 것 같은데,다음의 글귀가 오래 오래 기억에 남았다."매일 매일 행복할 순 없지만, 행복한 일은 매일 매일 있다."구내 식당에 내가 좋아하는 메뉴가 나왔을 때,횡단보도에 도착하자마자 신호가 바뀔 때,헬스장에서 내가 좋아하는 노래가 나올 때 등등사소한 행복한 일들이 많다. 하지만 이런 사소하지만 누가 봐도 좋은 것들이 아니더라도,하루의 대부분은 행복한 일들이다.회의가 많은 날은 회의실 이동하느라 많이 걸어 1만보를 채우기 위해 굳이 따로 시간을 낼 필요가 없어서 좋다.일이 많아 늦게 가는 날은 비싼 저녁 식사를 먹을 수 있고, 집까지 택시로 갈 수 있어서 좋다.오전 회의가 늦게 끝나 점심을 늦게 먹는 날은 혼자서 조용히 식사를 하면서 생각을 정리할 수 있어서 좋다.행복한 것..
2024.08.05
-
"개발자도 회사의 조직원이다" 를 보고
최근에 배기홍 대표님의 아래 글을 보았다.THE STARTUP BIBLE - 개발자도 회사의 조직원이다배기홍 대표님의 글은 항상 생각할거리를 던져주셔서 재밌게 보는데, 이번 글은 요즘의 불황시기에 겹쳐서 많이 언급되는 주제라 한번 더 생각하게 되었다.글은 개발자가 아닌 VC 분들이나 대표님 혹은 조직의 리더라면 충분히 이야기할 수 있는 주제인 것 같다.핵심으로 생각되는 문장은 다음과 같다.어떻게 생각해 보면 너무나 당연한데,우리 주변, 또는 우리 회사의 많은 개발자들이 그냥 본인들이 풀고 싶은 문제를 풀고, 본인들이 개발하고 싶은 기능을 개발하고, 기술적으로 어려운 문제를 코드로 미화하고 싶어 한다.단순히 엔지니어링 측면에서 보면 이게 대단하게 보일 수도 있지만,이런 결과물들이 회사의 경영진들이 설정한 ..
2024.08.01
-
하고 싶은 일을 위한 해야 하는 일
예전부터 하고 싶은 일만 하고 살 순 없을까 생각을 많이 했다.근데 그 내면을 살펴보면 사실은 "해야하지만 하기 싫은 이 일을 그만 둘 수는 없을까?" 에 가까웠다.아침에 일찍 일어나기 싫었고, 수업 빈 시간마다 아르바이트를 하러 다니는 것도 싫었다.근데 지금은 안다.그때 아침에 일찍 일어나는 습관을 만들어서 지금도 아침 시간을 활용해 하고 싶은 일을 할 수 있고,그때 시간이 빌 때마다 아르바이트를 해서 사회 생활을 시작할때 빚 없이 시작할 수 있었다.그리고 그런 시간들이 모여 결국 졸업 직전에 개발자로 방향을 전환해도 큰 부채감 없이 몰입할 수 있었다.아르바이트를 하며 차곡차곡 모아둔 돈으로 서울에서 별도의 아르바이트 없이 프로그래밍 공부에 집중할 수 있었고,아침마다 출근길을 피해 일찍가서 남들보다는 ..
2024.07.30
-
영웅의 서사
웹 소설 전지적 독자 시점을 몇 번이나 다시 읽을 정도로 좋아한다.이 소설의 세계관이 너무 마음에 들기 때문인데,그 인물이 어떤 서사를 쌓아왔는지에 따라 강함이 결정 된다.세계관 속 인물의 타고난 강함이 있더라도,계속해서 서사를 쌓지 않으면 그 인물은 계속해서 약해지기만 하며 시간이 더 지나면 소멸한다.더 많은 모험을 즐기고, 더 많은 사건을 거친 인물일수록 더 강해지고 오래오래 살 수 있다.그래서 12과업을 달성한 헤라클래스나 제천대성, 필마온등으로 수많은 이야기를 쌓은 손오공 등이 최강의 캐릭터로 묘사된다.이 세계관 속 주인공과 동료들은 어마어마한 험난한 여정을 걸어간다.더이상 스테이지를 클리어하지 않아도 평화롭게 지낼 수 있는 스테이지를 스스로 무너뜨려야 한다거나동료들에게 죽임을 당해야만 다음 스테..
2024.07.29
-
우리에게 미래가 있다고 생각하지 마세요
만화책 소라의 날개 속 주인공 팀은 장/단점이 명확한 부원들이 모여있다.이를 테면 주인공은드리블도 엄청 낮고 빠르며, 3점슛을 만화 내에서 가장 잘 쏜다.다만, 키가 150이라 슛이 막히기 쉽고 수비 역시 불안하다.재밌는 것은 같은 팀의 다른 멤버들 역시 장점과 단점이 명확하다는 것이다.누군가는 발이 느려 다른 가드와 같은 역할을 할 수 는 없다.다만, 패스를 정말 잘하며 슛터가 슛을 쏠 수 밖에 없게 정확하게 전달한다.또다른 팀원은, 슛 정확도가 가장 낮아 게임 내내 슛을 거의 쏘지 못한다.다만, 리바운드를 누구보다 잘하여 실패한 슛을 항상 잡아준다.이들로 인해 주인공은 본인의 단점을 상쇄시키고 장점을 극대화시킬 수 있게 된다.블락 당하지 않을 위치로 정확하게 패스해주는 팀원이 있고실패한 슛은 항상 팀..
2024.07.20
-
결혼생활도 커리어처럼
다른 사람들이 쉽게 하거나 관심을 가지는 일상적인 것들에 대해 크게 관심이 없는 사람이라서 나 스스로가 어딘가 나사 하나가 빠져있다는 생각을 종종 한다.그래서 커리어 외에 다른 것에 대해 다른 사람들의 조언을 들을때면 크게 와닿지 못하고, 갸우뚱 할 때가 자주 있었다.결혼을 준비하면서도 앞으로의 내 결혼 생활을 어떻게 해야하나 여러 책이나 조언들을 들어도 추상적이여서 나 같이 뭔가가 부족한 사람에게는 머릿 속으로 잘 그려지지 않았다.어떤때면 어떻게 해라 라는 조언이 들릴때면 그럼 이럴땐 어떡하지? 저럴땐 어떡하지? 등의 생각이 자연스럽게 들어서 머릿속만 더 복잡해졌다.예전에 빈지노 & 미초바 부부의 연애/결혼 생활 영상을 보면서 "이 커플은 어떻게 이렇게 오래 만나고도 이쁘게 사랑할 수 있지?" 라며 되..
2024.06.24
-
[Mac] Java 21 & Gradle 8 설치하기
Java 21이 2023년 9월에 출시 된지 1년이 되어가고 있고, 여러 신규 기능이 패치 되었기도 하여서 개인 노트북에 JDK 21 설치를 하기로 했다.whichjdk.com를 보면 크게 2가지 버전의 JDK를 추천한다.Amazon CorrettoAWS의 Amazon Linux 2에서 Java 애플리케이션을 직접 실행하는 경우 최적화된 버전Adoptium Eclipse Temurin오픈 소스 소프트웨어에 대한 리소스와 전문 거버넌스 모델을 제공하는 Eclipse 재단 산하의 최상위 프로젝트Red Hat, IBM, Microsoft, Azul, iJUG 등 Java 기술에 전략적 관심을 갖고 있는 주요 기업 및 조직으로 구성이전의 AdoptOpenJDK 프로젝트는 Eclipse Adoptium으로 이전됨..
2024.06.23
-
[PostgreSQL] 단일 테이블 컬럼을 최대한 활용하기
PostgreSQL 14 에서 진행되었다.간혹 쿼리들을 보면 단일 테이블 (from 테이블)의 컬럼으로 모든 조회 조건이 완성 가능한데, join 테이블 의 조건을 함께 사용하여 성능 저하를 일으키는 경우가 종종 있다.데이터가 몇개 없을때는 큰 차이를 못 느끼지만, 수십만건 이상이 적재된 여러 테이블을 중첩 Join 할 경우 큰 차이가 느껴지게 된다.이를 비교해보자.문제아래의 쿼리는 review 테이블과 연관된 여러 테이블의 정보를 모으고, 이를 페이징 처리하여 제공해야하는 기능이다.select *from "review" as reviewleft join "users" as "user" on review."user_id" = "user"."id"left join "courses" as course on ..
2024.06.18
-
진짜 개발자
"주말이나 여가시간에 개발하고 공부해야만 흔히 말하는 진짜 개발자인것 같은데, 본인은 그렇지 않는 것 같아 개발자를 계속해도 될까요?" 같은 고민을 종종 듣게 된다.예전에 비슷한 고민을 한 적이 있어, 공감이 되었다.그러다가 나름대로 생각을 정리한 적이 있어 남긴다.친동생은 고등학생때 판타지 소설 단편을 써서 반 친구들한테 돌려보는 것에 엄청 재미를 느끼는 사람이였고, 그걸 계기로 문예창작학과로 진학을 했다.근데 막상 전문적으로 작가를 위한 학과를 가니 모든 교수님들이 작가란 순수문학을 해야하고, 판타지소설같은 대중문학은 작가로서는 지향해선 안된다라는 이야기를 많이 들었다.당시는 2008년~10년이다보니 아무래도 지금처럼 웹 소설과 같이 판타지, 로맨스 등의 소설 분야가 엄청난 인기를 끌던 때가 아니다보..
2024.06.15
-
실패한 내일과 완벽한 오늘
최근 신혼 여행을 가면서 비행기에서 와이프가 잠들때마다 오늘만 사는 기사 라는 웹 소설을 봤다.주인공은 예전에 본 영화 엣지 오브 투모로우 처럼 죽으면 그 날로 다시 되살아나는 저주에 걸려있는 채로 매일 하루를 반복하며 목표로 하는 기사가 되기 위해 노력하는 이야기이다.소울풍 작가님의 과거 작품을 좋아하기도 했고, 한산이가 작가님과 함께 하시는 유튜브를 통해 새 작품 소식을 듣고 봐야지 봐야지 하다가 짬이 되어 이제야 보기 시작했다.소설 45화에 기억에 남는 장면이 있는데,적진에 고립되는 높은 난이도의 상황에 처하게 되어 계속 죽게 된다.매일 똑같은 상황에서 죽고, 되살아나고, 노력하고 다시 시도하고의 하루를 반복하다가 결국 여러 운과 그간의 노력이 합쳐져 아슬아슬하게 그 상황을 돌파하게 된다.그리고 함..
2024.06.12
-
너무 똑똑한 사람이 되지 않기
좋아하는 아티스트가 2분 계시는데, 윤종신과 무라카미 하루키이다.두 분 모두 아티스트지만 번뜩이는 영감 보단 꾸준한 매일의 힘을 강조해서 굉장히 좋아한다.그러다 최근에 폴인에서 했던 윤종신님의 인터뷰를 봤다.제가 좋아하는 단어 중 하나에요.적당한 무딤?30대 초중반엔 엄청 섬세했던 것 같아요.근데 그때 무디고, 조금 덜 생각하고를 택했어요.너무 예민하고 너무 많이 알려고 하는 거를 포기했죠.그래서 이쯤에서 나 유리한 대로 그냥 생각하고 기본적으로 예상을 잘 안해요.그게 제가 약간 늦게 깨닫는 사람이라서 그런 것 같아요.조금 다른 각도의 얘기인데,제가 일찍 깨닫는 사람 별로 안 좋아해요.일찍 깨닫는 거는 그냥 그 사람이 아는 거거든요.경험하지 않고 뭔가 깨닫는 사람이 있어요.그거는 좋게 얘기하면 머리가 좋..
2024.06.03
-
[PostgreSQL] Nested Loop Join을 HashJoin으로 개선하기
RDBMS를 사용하다보면 Nested Loop Join 으로 인해 성능 저하를 겪는 경우가 많다.일부 RDBMS는 특정 버전에 따라 Nested Loop Join만 지원되는 경우도 있다.다만, 요즘의 RDBMS는 대부분 Hash Join등 여러 Join 형태를 지원하고 있고 이를 통해 성능 개선이 가능하다.MySQL도 8.0.18 부터 Hash Join을 지원한다.실제 사례로 성능 개선을 진행해보자.1. 문제 쿼리아래와 같이 여러 Join을 진행하는 실제 쿼리가 있다.SELECT i.id, i.titles[?] AS title, i.icon_url FROM institutions i INNER JOIN interested_corporations ic ON i.id = ic.institution_i..
2024.05.29
-
HTTP API 디자인 - URI편
마틴 파울러의 블로그를 가보면 Leonard Richardson이 제안한 HTTP API 성숙도 모델 (Richardson Maturity Model - RMM)을 소개한다.여기서는 다음과 같이 4단계를 설명한다.레벨 0: 하나의 URI를 정의하고 모든 작업은 이 URI에 대한 POST 요청레벨 1: 개별 리소스에 대해 별도의 URI를 만든다.레벨 2: HTTP 메서드를 사용하여 리소스에 대한 작업을 정의레벨 3: 하이퍼미디어(HATEOAS 등)를 사용Roy Fielding 의 정의에 따르면 레벨 3이 진정한 RESTful API에 해당한다.대부분의 RESTful API는 진짜 RESTful API는 아니며 보통 레벨2 부근에 해당한다.아래는 마틴 파울러 블로그에 나와있는 성숙도 레벨이 무엇을 의미하는지..
2024.05.21
-
어느 축구 선수의 은퇴와 선물
최근에 많은 분들을 뵙고 이야기 나누다가 빠르게 승진 중이신 분의 커리어 고민에 대해 이야기할 기회가 있었다.굉장히 큰 회사에서 나이나 연차에 비해 빠르게 승진과 리더십 기회를 얻은 분이셨다.최상위 리더의 평가만 좋은게 아니라, 같이 일하시는 주변 분들의 평가도 대단히 좋은 분이라서 "어떻게 하면 그 위치의 역할을 잘 할 수 있을까" 에 대해 고민 하시는 줄 알았지만, 그게 아니였다.오히려 너무 빠른 승진과 기회로 인해 비슷한 연차, 비슷한 나이대의 동료들과 거리가 멀어지고 있는 것에 대한 고민이였다.권한 혹은 리더십이 높아질수록 점점 조직의 사정을 더 알게 되기도 하고, 개인의 성과 보다는 팀의 성과, 팀원들의 성과, 조직에 더 도움이 되는 결정 등에 대해 고민하다보니 매일 하는 업무, 고민, 생각 등..
2024.05.09
-
어떤 감독이 될 것인가?
소라의 날개 25 ~ 27권을 보면 남녀 농구부의 방학 합숙 훈련 이야기가 나온다.새로 부임한 감독님은 농구부원들의 목표가 전국대회 진출임을 알고, 전국대회 진출을 위한 훈련을 준비한다.전국대회 진출팀이 되기 위한 훈련은 당연히 높은 훈련 강도를 필요로 하고, 훈련 메뉴를 본 매니저 등은 높은 강도로 인해 우려를 표한다.우리팀은 이 정도의 훈련을 처음 경험하니 낙오자가 너무 많고 효과가 적지 않겠냐고.이때 감독님의 이야기가 와닿았는데,이 훈련을 통과하고 못하고 보다 더 중요한 것은 처음 만나는 벽을 만났을때 어떤 마음가짐들을 하느냐가 훨씬 중요하다는 것이다."무리를 해도 불가능한 일이라면, 처음부터 주문도 강요도 하지 않아.솔직히 말하면 이 합숙의 메뉴도 상당히 무리하게 짜놨어.한 명도 빠짐없이 전원 해..
2024.05.02
-
의미에 매몰되지 않기
학생 시절에 좋아하던 이성이 있었다.좋아하니깐 더 잘해주고 싶었고, 내가 하는 행동의 순위에서 항상 최우선이였다.근데 고백을 하면 계속 거절했다.진심과는 별개로 인연은 아니였다.친구로서 계속 지내다가 어느날 그 친구에게서 아프다는 연락을 받았다.보통 같았으면 연락을 받자마자 걱정하고 달려갔을텐데, 그날은 그 연락을 받고 "근데 내가 약 들고 간다고 사귀게 되는 것도 아니잖아? 그럼 의미가 있나?" 라는 생각이 들었다.이런 생각을 했다는 것에 소스라치게 놀랐다.그 친구가 좋아서 해온 모든 행동을 나 스스로 의미가 없는 행동으로 만들어버린 것이기 때문이다.좋아서 무엇이든 해주고 싶었던 순수한 진심이 오염된 것 같았다.사귀는게 확실할때만 내가 해온 노력이 모두 의미가 있는 것이고, 사귀지 않을때는 어떤 ..
2024.04.24
-
Public API의 CDN 캐시
API의 캐시 중에는 모든 사용자 (로그인/비로그인 관계없이) 동일한 응답값을 줘야하는 것들이 있다. 로그인/비로그인에 관계없이 항상 일정한 데이터가 사용자 UI에 필요한 경우이다. 이를테면 인프런 서비스의 상단 헤더에 노출되는 강의 카테고리 (1 depth, 2depth, 3depth) 같은 경우. 이 캐시 데이터는 서비스의 모든 페이지에서 호출하고 있다보니 페이지 조회수 만큼 캐시 API를 호출하게 된다. Redis 캐시 -> 로컬 캐시 등으로 캐싱처리를 해도 결국 서버로 가는 조회 요쳥수가 개선되는 것은 아니고, 서비스 전체에서 가장 많이 호출되는 API 영역이 개선된 것이 아니다. SSR을 CDN으로 캐시 해도, SSG로 정적 페이지를 만들어도 헤더 영역은 사용자별 로그인 구분을 위해 CSR로 구..
2024.04.14
-
언제 이직할 회사를 고르면 좋을까?
연휴에 외부의 주니어 개발자분을 만나서 커피챗을 진행했다. 커피챗에서 받은 질문은 "향로님은 4개의 회사를 다니셨고 3번의 이직을 하셨는데, 3번다 이직이 만족스러웠냐?" 였다. 나는 3번의 이직이 모두 만족스러웠다. 그 타이밍에 그 회사들을 간 것에 대해 정말 잘한 선택이라고 생각하고 있고 실제로 이후의 커리어에도 계속 도움이 되었다. 어떻게 그럴수 있었을까? 에 대해 답변 드린 내용이다. 보통 "후회없는 이직을 하려면 어떻게 해야하느냐", "언제 이직하면 좋으냐" 라는 질문을 자주 받는데, 여기엔 여러 답변들이 있을 수 있다. 더이상 회사에서 성장하지 못한다고 느낄때 회사가 더이상 성장하지 않는다고 느낄때 회사의 조직 문화가 너무 안맞다고 느낄때 사람간의 관계가 너무 힘들때 등등 퇴사/이직의 트리거는..
2024.04.13
-
일의 힘듦
사내에 공유드렸던 내용을 기록차 남겨둡니다. 오늘 A Cell의 스프린트 플래닝때 이야기 드린 내용이긴한데, 글로벌 프로젝트를 진행하면서, 혹은 플레이어, 앱, (예상치못한) 데이터 엔지니어링 등 새로운 환경에 도전하는 제품팀 분들도 들으시면 좋을것 같아서 공유드려요. 저는 여자친구랑 대략 10년정도 연애를 했는데요. (2014년부터) 10년 내내 거의 안싸우다가 이번에 결혼식 준비하면서 10년치를 몰아서 싸우고 있어요. (어제도....) 10년을 만나는 동안 웬만한 커플이 싸우는 일에는 저희는 거의 싸우지 않아서 결혼준비도 무난히 잘 끝날것 같다는 생각을 했는데요. 막상 결혼식을 준비하다보니 상대가 피곤한 상황인걸 알고 있음에도 어쩔 수 없이 확답을 요구하고, 같이 움직여야하는 상황이 계속 생기더라구요..
2024.04.09