AI는 더 빠르게 만들지만 인간은 더 빠르게 이해하지 못한다. 무엇을 끝까지 이해하고 무엇을 블랙박스로 받아들일지 선택하는 일에 대하여.
a16z의 Joe Schmidt는 이 글에서 AI 시대의 엔터프라이즈 제품은 셀프서비스로 퍼지는 Product-Led Growth보다, 고객 현장에 들어가 시스템을 연결하고 워크플로우를 대신 세팅해주는 Services-Led Growth로 성장할 것이라고 말한다. 초기 마진은 낮아지지만 고객의 데이터와 업무 흐름을 붙잡는 해자가 생기고, 그 최전선에 Forward Deployed Engineer가 있다는 것이다. 읽으면서 최근 하던 생각이 자연스럽게 이어졌다. 최근 AI는 단순히 질문에 답하는 수준을 넘어, 실제 업무를 수행하고 결과를 만들어내는 방향으로 발전하고 있다. 이러한 변화는 소프트웨어가 작동하는 방식뿐 아니라, 기업이 소프트웨어를 선택하고 활용하는 방식까지 바꿀 가능성이 있다. 기존의 SaaS는…
물고기를, 자연을, 우주를 인간이 분류하고 이름 붙이는 데에는 결국 인간의 잣대와 주관이 들어간다. 물론 분류하고 이름 붙이는 능력 자체가 잘못된 것은 아니다. 오히려 자연을 이해하고 과학을 발전시키는 데 엄청나게 강력한 능력이다. 그런데 인간이 만든 분류에 권위가 생기고, 거기에 우열까지 붙이기 시작하면 이야기가 달라진다. 데이비드는 물고기를 분류하던 것처럼 인간에게도 등급을 매기기 시작했고, 그가 힘을 실었던 우생학은 실제 사람들을 강제로 불임시키는 정책의 토대를 만드는 데까지 이어졌다. 11장까지 읽을 때는 이 부분이 잘 이해되지 않았다. 책의 상당 부분이 마치 데이비드의 전기처럼 느껴졌고, 뒤로 갈수록 이 사람이 얼마나 잘못된 사람이었는지를 계속 보여주는 것 같았다. 그래서 '데이비드가 나쁜…
OAuth 2.0에서 2.1까지, 인가서버·리소스서버·클라이언트를 직접 구현하고 일부러 취약하게 만든 뒤 스스로 공격해보며 각 방어가 왜 존재하는지 익힌 기록입니다.
빅터 프랭클의 <죽음의 수용소에서>를 다 읽었다. 1부에서는 실제 수용소 생활이 생생하게 묘사되어 있어, 그들이 겪었을 고통이 어느 정도였을지 가늠조차 하기 어려울 만큼 강하게 와닿았다. 특히 모든 것을 빼앗긴 극한의 상황에서도 자신의 태도를 선택할 자유만큼은 인간에게 남아 있다는 점이 가장 인상 깊었다. 인간의 자유에 대해 이전과는 조금 다른 관점으로 생각해보게 된 부분이었다. 반면 2부부터는 로고테라피에 대한 학술적인 설명이 중심이 되면서, 1부를 읽을 때만큼 몰입해서 읽지는 못했다. 내가 이 책에서 기대했던 것이 이론보다는 경험 쪽이었기 때문인 것 같다. 책 전체보다는 1부에서 전달된 경험과 메시지가 오래 기억에 남을 것 같다.
처음 이 책을 읽게 된 계기는 표현력이 예전보다 많이 떨어진 것 같다는 생각 때문이었다. 그래서 챗GPT에게 책을 추천받았는데, 왠지 모르겠지만 박웅현의 책이 여러 번 언급됐다. 그중 가장 쉽게 시작할 수 있을 것 같은 <여덟 단어>를 골랐다. 처음에는 큰 목적 없이, 다짐한 대로 표현력을 올려보자는 가벼운 마음으로 읽기 시작했다. 읽어보니 이 책은 ‘삶을 어떻게 살아갈 것인가’에 대해 박웅현이 자신의 생각을 들려주는 책에 가까웠다. 그는 자신이 읽었던 책의 구절이나 딸에게 해주었던 말, 겪었던 경험 등을 엮어 여덟 개의 단어를 통해 삶의 태도를 이야기한다. 읽다 보면 가끔 앞뒤 연결이 잘 안 붙는다고 느낀 부분도 있었지만, 이야기를 끝까지 따라가다 보면 대체로 무슨 말을 하고 싶은지는 이해됐고, 충분히…
AX 인재전쟁 무신사 트랙 1위 수상자의 대회 회고다. 문제를 어떻게 정의할지, AI에 맡길 일과 사람이 직접 판단해야 할 일을 어떻게 구분할지에 대한 관점이 인상적이었다. 제약된 환경에서 AI를 쓰면서도 근거와 검증 가능성을 놓치지 않고 문제를 풀어간다. 내가 추구하던 그런 모습이다. 코드 없이 문제 자체에 대한 접근과 생각을 풀어낸 문장이 글의 99%다. 이게 진짜 AI 시대에 맞는 방식이 아닐까 싶다.
클라우드 환경에서 데이터베이스를 운영하다 보면, 단순히 개별 지표만 모니터링하는 것으로는 충분하지 않을 때가 있습니다.
배경문서화를 하고 중복적인 커뮤니케이션 비용을 줄이면 직접적으로 회사에 도움이 된다고 믿습니다. 커뮤니케이션 체계를 갖추면, 시간이 지나면 지날수록 새로운 기능을 개발하는 것 만큼 혹은 그 보다 더 많은 이윤을 남긴다고 생각합니다.
문제 발견 와탭은 자체 서비스를 모니터링하는 데에도 물론 와탭 제품을 사용합니다. 와탭에서 제공하는 다양한 모니터링 도구들 중에서 아래 트랜잭션 히트맵은 실시간으로 애플리케이션 트랜잭션 상태를 추적할 수 있습니다.
배경 이전 회사에서 신입으로서 VCS(Version Control System)를 사용하지 않아 많은 어려움이 있었어요. 부트캠프에서 처음 깃/깃헙을 배웠을 땐 개발 프로세스 중에 당연한 거라고 여겨져서 깃이 없을 때는 어떤 상황을 맞닥뜨릴지 전혀 몰랐습니다.
자바 "IllegalArgumentException: Comparison method violates its general contract!" 에러에 대해 알아보자.
long 타입에서 int 타입으로 형변환하는 과정에 대해 알아보자. long val1Long = 108095103513L; long val2Long = 108030648857L; int val1In...
먼저 public static final 을 사용하는 이유에 대해서 생각해보자. public static final int DEFAULT_SIZE = 16; 와 같은 형태의 쓰임새는 이해가 갈것이다.
현재 개발중인 서비스는 어떤 "미션" 이라는 것을 유저가 참여할 수 있다. 해당 "미션"을 정해진 시간 내에 완료하지 못하면 휴대폰으로 푸시알림이 가도록 했다. 이 과정에서 겪은 문제와 해결법을 적어보았다.
요즘 앱에서는 자동로그인 기능을 사용하기보단 앱을 설치하여 로그인하면 자동로그인과 같이 매 접속시마다 로그인이 유지된 상태를 가지고 일정 기간이 지나면 다시 로그인하도록 하는 구조로 되어있습니다.
들어가기 온라인 쇼핑몰을 생각해보자. 마음에 드는 물건을 카트에 담았다. 계속해서 둘러보고 다른 물건도 카트에 담아서 확인을 해봤는데 앞에 물건이 없다? 우리가 원하는 것은 내가 카트에 물건을 담아도 사라지지 않는 것이다. 그 상태를 유지하고 싶다.
타임리프로 개발하다보면 아래와 같은 예외를 무조건 만나게 될것이다. org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluati...
들어가기 처음에 예외처리하여(Exception) 클라이언트에게 원하는 데이터를 내보낼수 있다는 사실을 몰랐다. 그때 해결하려했던 생각은 ErrorMessage라는 객체를 만들어서 서비스층에서 조건에 걸리지 않으면 ErrorMessage 를 return 하려고 했다.
들어가기 인프런-스프링 핵심 원리에서 싱글톤 컨테이너에 대해 배우고 정리한 것입니다. 먼저 싱글톤이란 생성자를 통해 계속 인스턴스를 만들어 사용하는 것이 아니라 클래스를 한번만 메모리에 할당하여 그것을 계속 재활용하는 디자인 패턴을 말합니다.
VO를 이해하기 위해서 기발한 예시가 생각났음. 두 사람이 만원짜리 지폐 한장씩 들고 있다. 그것을 서로 교환했다. 지폐의 번호(메모리 주소값)는 달라졌지만 그들이 교환한 지폐의 본질(속성)에는 차이가 없다. 그리고 사람들은 이것을 "같다고" 말한다.















