Hot
-
우리에게 미래가 있다고 생각하지 마세요
만화책 소라의 날개 속 주인공 팀은 장/단점이 명확한 부원들이 모여있다.이를 테면 주인공은드리블도 엄청 낮고 빠르며, 3점슛을 만화 내에서 가장 잘 쏜다.다만, 키가 150이라 슛이 막히기 쉽고 수비 역시 불안하다.재밌는 것은 같은 팀의 다른 멤버들 역시 장점과 단점이 명확하다는 것이다.누군가는 발이 느려 다른 가드와 같은 역할을 할 수 는 없다.다만, 패스를 정말 잘하며 슛터가 슛을 쏠 수 밖에 없게 정확하게 전달한다.또다른 팀원은, 슛 정확도가 가장 낮아 게임 내내 슛을 거의 쏘지 못한다.다만, 리바운드를 누구보다 잘하여 실패한 슛을 항상 잡아준다.이들로 인해 주인공은 본인의 단점을 상쇄시키고 장점을 극대화시킬 수 있게 된다.블락 당하지 않을 위치로 정확하게 패스해주는 팀원이 있고실패한 슛은 항상 팀..
2024.07.20
-
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
-
진짜 개발자
"주말이나 여가시간에 개발하고 공부해야만 흔히 말하는 진짜 개발자인것 같은데, 본인은 그렇지 않는 것 같아 개발자를 계속해도 될까요?" 같은 고민을 종종 듣게 된다.예전에 비슷한 고민을 한 적이 있어, 공감이 되었다.그러다가 나름대로 생각을 정리한 적이 있어 남긴다.친동생은 고등학생때 판타지 소설 단편을 써서 반 친구들한테 돌려보는 것에 엄청 재미를 느끼는 사람이였고, 그걸 계기로 문예창작학과로 진학을 했다.근데 막상 전문적으로 작가를 위한 학과를 가니 모든 교수님들이 작가란 순수문학을 해야하고, 판타지소설같은 대중문학은 작가로서는 지향해선 안된다라는 이야기를 많이 들었다.당시는 2008년~10년이다보니 아무래도 지금처럼 웹 소설과 같이 판타지, 로맨스 등의 소설 분야가 엄청난 인기를 끌던 때가 아니다보..
2024.06.15
New
-
우리에게 미래가 있다고 생각하지 마세요
만화책 소라의 날개 속 주인공 팀은 장/단점이 명확한 부원들이 모여있다.이를 테면 주인공은드리블도 엄청 낮고 빠르며, 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
-
혼란하게 진행하기
요즘 픽사의 CEO 에드 캣멀이 쓴 "창의성을 지휘하라" 를 보고 있다. 여기를 보면 스타트업에 너무 적합한 이야기가 있다. "사람들은 효과가 검증된 것, 예컨대 과거에 통한 스토리, 방법, 전략에 안주하고 싶어한다. 새로 고안한 방법이 효과가 있다고 판명되면, 이 방법을 계속 사용한다. 조직은 이런식으로 학습한다. 조직은 성공을 거둬 성장할수록 기존 접근법에 집착하고, 점점 더 변화를 거부하게 된다." "안정적인 것을 추구한다고 안전해진다는 보장은 없다. 무작위성을 두려워하는 대신 인생에서 무작위성을 피할 수 없다는 사실을 인식하고, 무작위성을 긍정적으로 활용하는 선택을 내릴 수 있다고 믿는다. 예측할 수 없는 상황은 창의성의 산실이다." "픽사의 열 번째 장편 애니메이션 업(UP) 은 픽사의 작품 중..
2024.03.31
-
블로그 누적 1,000만 조회수 후기
2024.02.12에 블로그의 누적 조회수가 1,000만이 되었다. 전체글은 585개가 되었다. 2015.1.31에 첫 글을 작성했으니, 약 9년만에 1,000만이 되었다. 예전에는 6개월에 100만씩 증가했다면, 요즘은 7개월에 100만씩 증가하고 있다. 아무래도 기술 문제를 해결한 사례보다는 현재의 내 생각을 계속 정리하다보니 구글 검색을 통해 유입되는 비율이 낮아진 것 같다. 1,000만이 오면서까지 있었던 일들을 연도별로 정리해보았다. 2015년 2015년 1월 31일에 첫 글을 작성했다. 누가봐도 성의없는 글이다. 처음 시작은 아웃사이더님, 권남님 의 블로그/위키를 보고 나도 이렇게 되고 싶다는 마음에 시작했다. 당시에도 여러 블로그 플랫폼이 있었고, 특히 개발자는 이글루스를 많이들 사용하고 있..
2024.03.24
-
힘 빼지 않기
코인 노래방을 종종 다닌다. 스트레스를 풀기위해 다니는데 노래를 못해서 낮은 노래를 선택하고 음이탈이 나지 않으려고 최대한 조심해서 불러왔다. 스트레스를 풀러 간 어느 날, 노래방 밖에서도 들릴 정도로 엄청 큰 소리로 노래를 부르는 사람이 있었다. 음정 박자도 전혀 맞지 않고, 음이탈이 나도 그냥 기세로 밀어붙이면서 노래를 불렀다. 밖에 있는데도 듣기 힘들 정도로 고함치는 것에 가깝게 노래를 부르던 그 사람은 노래를 마치고 아주 개운한 표정으로 방에서 빠져나왔다. 남들이 어떻게 생각하든 본인은 아주 만족한 채로 노래를 마친 표정이였다. 그 분의 표정을 보면서 그간 부르고 싶은 노래 보다는 음역대가 맞는 노래에 맞춰 음이탈이 안나는 것에 급급하여 살살 부르던 것이 생각나 갑자기 짜증이 확 났다. "스트레스..
2024.03.16
-
운영 로그와 디버그 로그 분리하기
최근에 Pete Hodgson가 martinfowler 블로그에 기재한 글을 보면서 로깅도 하나의 기능으로 봐야한다는 생각이 더 강해져서 이 글을 쓰게 되었다. 시스템을 구축하다보면 다음과 같이 크게 두 종류의 로그를 남긴다. logger.error(`API Timeout: ${timeout} seconds`, e); logger.info(`Ordered Food Product Id: ${product.id}`); logger.debug(`Total Order Price Amount: ${sum(products.amount)}`); 이 로그들은 모두 필요한 메세지를 노출시키지만, 실상은 목적이 다르다. Error와 Info 로그는 운영 환경에서 장애를 디버깅하거나 실행 중인 시스템의 여러 진행 상황, 지..
2024.03.15
-
한 페이지
요즘 데이식스의 "한 페이지가 될 수 있게" 노래에 엄청 꽂혔다. 정확히는 꽂힌 가사가 있다. "아름다운 청춘의 한 장 함께 써내려 가자 너와의 추억들로 가득 채울래 지금 이 순간이 다시 넘겨볼 수 있는 한 페이지가 될 수 있게" 어떤 동시대를 함께 보내는 모든 그룹 혹은 조직의 일원들간에도 통하는 이야기 같았다. 특히 스타트업 안에서 일하는 동료들간에도, 조직과 팀원 사이에도 통하는 이야기인 것 같았다. 대학교때는 학과 생활보다는 동호회 생활을 동기들과 재밌게 했다. 졸업한 후에도 계속 연락하고 만날 정도로 오랜 인연을 이어가고 있다. 동기들과 동호회 활동을 하면서 이런 저런 행사도 준비하고 대회도 나가고 늦게까지 술도 마시고, 자취방에서 게임도 하고 그랬던 20대 이야기는 지금도 만나면 자주 꺼낸다...
2024.03.10
-
좋은 오프보딩
온보딩의 반대말로 오프보딩이 있다. 조직을 나가는 직원에 대한 퇴사 절차를 의미한다. 보통 퇴사 이후에도 회사에 대한 좋은 이미지를 남겨주기 위해 좋은 방향으로 퇴사절차를 밟는다. 여기서 중요한 것은 절차에 집중한다는 것이다. 이런 절차도 물론 중요하겠지만, 그 팀원이 정말 좋은 팀원이였다면 떠나는 이가 미안해 하지 않도록 하는 것이 중요하다. 그리고 이를 위해 떠난 이후에도 조직이 계속해서 더 잘되는 모습을 보여줘야한다. 소라의 날개 31권에서도 비슷한 이야기가 나오는데 많이 공감되었다. (오른쪽에서 왼쪽방향으로 읽어야 한다.) 떠나는 팀원이나 남은 팀원이나 서로에게 소중한 시간을 함께한 동료였다면 부정적인 감정이 전파되길 바라지는 않을 것이다. 만약 내가 떠나고 동료들이 더 힘들어하거나 망하길 바란다..
2024.03.04
-
혼란함에 익숙해지기
사내에 공유드렸던 내용을 기록차 남겨둡니다. 저는 혼란한 상황이나 환경을 계속해서 체계적으로 정리/정돈하는 것은 2순위이고, 1순위는 혼란한 상황/환경 내에서 적응하는 것이 가장 중요하다고 생각하는데요. 혼란함 그 자체를 못견디는 것은 계속해서 변하는 업계에서는 꼭 해결해야할 역량이라고 봐요. 혼란함이 있을때마다 매번 정리 정돈하고, 체계적으로 모든 것을 하려고하면 오히려 변화의 속도를 못쫓아가고 항상 뒤쳐지게 된다고 생각합니다. 빚이 없는 상태가 가장 마음이 편하겠지만, 목표를 달성하기 위해 빚을 내 대출자로서의 삶을 견뎌야하는 것처럼요. 절대 빚을 지지 않고 원하는 목표를 달성하려면 수십년이 걸릴 수 있겠죠. 개인이 감당 가능한 범위 내에서 빚을 내고 목표에 빠르게 도달하는 것을 레버리지 라고하는데,..
2024.02.09
-
신입 엔지니어를 채용하는 것
주말에 쉬는 중 다음과 같은 링크를 공유 받았다. 시니어만 고용하는 것은 소프트웨어 업계에서 최악의 정책입니다 글을 읽어보면 시니어를 뽑지말아야한다는 것은 아니지만, 시니어만으로 팀을 꾸릴려고 해서는 안된다는 이야기를 한다. 대체적으로 내용에 꽤 공감을 했다. 특히 "ambition, character and brains have little to do with experience." (야망, 성격, 두뇌는 경험과는 거의 관련이 없습니다.) 는 매우 공감이 갔다. 글을 읽다가 소라의 날개 10권에서 주인공 팀과 겨룬 신죠 토와 고교 농구부가 생각이 많이 났다. 신죠 토와 고교 농구부는 다카하시와 코지마 2명의 학생이 입학을 하면서 농구부가 없던 학교에 농구부를 신설하고, 부원들을 모집하면서 시작한다. 하..
2024.02.06
-
좋은 리더가 되는 방법
요즘 좋은 기회로 여러 리더분들을 뵙고 있다. 한달에 1~2번정도 CEO, CTO, CPO 분들을 뵙고 서로 궁금한 것들을 물어보고 이야기를 나누는 시간을 가지고 있다. 이 분들과 대화를 나누다보면 "오? 그러네요?" 라는 감탄사를 낼 때가 자주 있다. 그러면서 어떻게 이런 제품 아이디어를 가지셨을까? 혹은 이런 조직 관리 쳬계를 가지시게 된 걸까 궁금해서 사적인 이야기들로 이어진다. 그런 이야기들을 정리해보면 공통적으로 "인간의 본성은 어떠하다" 라는 본인만의 주관적인 정의가 내려진 분들이 좋은 제품 혹은 좋은 제품을 만드는 것 같았다. "아! 사람이란 이런 존재구나" 라는 것의 기준이 있는 사람들은 그 기준에 맞춰서 조직 관리나 제품의 방향성을 결정하는것 같은 느낌을 받았던 것이다. 데이터를 통해 결..
2024.01.20
-
2023년 개인 회고
직업적인 회고인 CTO 회고는 별도로 정리했다. 올 한해는 내가 해온 결정들에 대해 다시 한번 생각하는 일이 많았다. 0. 고민 사주 올해 점신 앱을 유료로 구매해서 한해 운수를 봤다. 종종 주변에서 사주를 봐주곤 했는데, "와 재밌다" 하고 듣고 한 귀로 흘리곤 했다. 근데 올해는 뭔가 의도한대로 작동하지 않는 것들이 많아서 "왜 이러나" 하는 생각들을 참 많이 했다. 지금의 이 결과는 왜 그런걸까? 내가 그때 그러지 않았으면 어땠을까? 등등을 참 생각을 많이 했었다. 의도와 다른 결과가 있을때마다 자책만하니 기분이 꽤 많이 다운되었다. 그래서 어딘가에라도 좀 기대보자는 생각에 앱을 통해 올해 운세를 봤다. 무료로 사주를 볼 수도 있는데, 그래도 이런 서비스를 사용할때는 합당한 비용을 지불해야한다고 생..
2024.01.08
-
2023년 CTO 회고
2021년 초에 합류했다가 벌써 만 3년이 다되어간다. 올해는 점점 내 역할을 팀원들에게 위임하는 한 해였고, 제품의 성적표와 회사의 매출이 연결되는 것을 증명하는 해였던것 같다. 개인 회고는 별도로 작성할 예정이다. 1. 조직 개발팀 미션 인프랩 개발팀의 미션과 가치을 작성해서 팀에 공유했다. 사내 Wiki에 먼저 기록하고 기술 블로그에 공개적으로도 공유했다. 매 주마다 진행하는 개발팀 스프린트에서 자주 하던 이야기들이 있다. 득점왕 보다는 팀을 우승시키는 팀원이 되자. 계몽보다는 전염시키자. 숙련도가 낮음을 기술의 문제로 돌리지말라. 기타 등등 이런 이야기들을 자주 하다보니 개발팀 전체가 어떤 사람이 우리팀에 어울리는지, 어떤 동료가 좋은 동료인지 추상화된 형태로 다들 이해는 하고 있는 상태였다. 다..
2023.12.28
-
지향하는 개발 문화
요즘 외부 개발자분과의 채용을 목적으로 한 커피챗을 하다보면 종종 받는 질문 중 하나가 CTO인 내가 지향하는 개발 문화가 무엇인지이다. 배민에 있을때 꽤 많은 팀을 옮겨다녔다. 그 중 가장 기억에 남는 팀이 있었는데, 이 팀의 만족도가 굉장히 높았다. 이 시기에는 우리팀이라면 회사의 어떤 문제든 풀 수 있을것 같다는 자신감이 있었다. 여러 기술 부채도 많이 해결했고, 여러 팀과 함께 협업하는 일도 많았다. 팀의 기술 부채 사례를 가지고 사내, 사외 공유도 많이 할 수 있었다. 당시엔 팀의 개발 문화에 대해서 크게 생각하지 않았다. 팀장님도 개발문화에 대한 언급을 그렇게 많이 하지 않으셨고, 가능하면 팀원들과 함께 회사의 여러 문제를 해결하는 것에 집중하셨다. 그러니깐, 팀의 개발문화를 위해 어떠한 액션..
2023.12.22
-
원 만들어 가기
오늘까지해서 하반기 개발조직 & 프로덕트 조직의 모든 워크샵이 끝났다. 팀의 인원수가 많지 않을때는 개발파트 전체가 한 회의실에 모여서 진행을 했고, 직군별로 어느정도 구성이 되고 나서부터는 같은 시간대에 모여 직군별로 서로 다른 공간에서 워크샵을 각각 진행했다. 개발 파트 전체가 같은 날에 진행하니, 각 직군별 워크샵에 1~2시간씩 정도만 참여할 수 밖에 없어서 내가 적극적인 참여는 하지 못했다. 이번에는 모든 직군의 워크샵에 참여하고 싶었다. 그래서 백엔드, 프론트엔드, 데브옵스 등 직군별로 별도로 일정을 잡고 진행했다. 각 파트별 워크샵이 어떻게 진행되는지 좀 더 체감하고 좀 더 건강하고 유의미한 워크샵 진행을 도와주고 파트별 Action Item이나 고민에 대해 좀 더 회사의 입장에서 도와주거나 ..
2023.12.16
-
경쟁력 있는 신입 포트폴리오
팀원들의 이력서를 글 하단에 첨부해두었다. 이 사이드 프로젝트를 진행한 멤버들에게 관심이 생긴다면 한번 커피챗을 요청해보자. 올해 대학생분들을 멘토링을 종종 했다. 자주 받던 고민이 "어떻게 해야 취업 경쟁력이 생기느냐" 인데, 나는 그럴때마다 아래와 같이 조언을 드렸다. "뭐든 괜찮으니 본인에게 필요한 것을 하나 만들고 실제 출시까지 해보라. CLI, 패키지, 웹, 앱 상관없이 출시를 하고, 100, 1000명의 고객을 만들고, 365/24시간 운영해보면 로그 메세지는 어떻게 남겨야하고, 에러 핸들링은 어떻게 해야하고, 쿼리는 어떻게 작성해야하고, SQL 인잭션, XSS 공격 등을 왜 막아야하고, 한정된 서버 자원을 어떻게 활용해야 하는지 등등을 배우게 된다. 운영하면서 배운 내용을 블로그에 정리하면 ..
2023.12.10
-
좋은 피드백 (절벽으로 몰아세우지 않기)
최근 술자리에서 "왜 혹독한 조언 혹은 높은 프레셔 등 개발팀원들의 성장에 대한 강한 피드백을 하지 않느냐" 에 대한 질문을 들었다. 그에 대해 다음과 같이 답변을 드렸다. “여러 회사를 거치면서 어떤 것이 진짜 성장인지 명확하지 않다는 생각을 하게 되었고, 지금 우리 팀에 필요한 것은 대기업에서 사용하는 기술을 적용하느냐 마느냐가 아니다. 특히 어떠한 한명의 슈퍼맨에 의지해서 조직의 기술력이 높아지는 것 역시 필요하지 않다. 그렇게 해도 팀 전체는 전혀 성장하지 못한 불안한 성장이기 때문이다. 가능하면 다 같이 성장해서 모두가 조직의 졸업까지 이탈자 없는 성장을 바라고 있다.” 만약 현재 우리 팀원들이 제대로 된 성과를 내지 못하고 있다면, 당연히 피드백을 했을 것이고, 잘못된 방향으로의 성장에 대해서..
2023.12.03