행복의 기원 - 인간의 행복은 어디서 오는가

국가란 무엇인가 지은이: 서은국 출판사: 21세기북스 감상 최근 들어 가장 재밌게 읽었던, 친구에게 선물로 받은 책. 인간은 행복하기 위해 사는게 아닌, 살기 위해 행복한 것이라는 저자의 말이 상당히 인상깊었다. 이를 기반으로 행복을 느끼기 위해서 어떻게 해야하는 지에 대한 이야기들이 나온다. 술술 읽히는 책이었고, 나는 일상을 어떻게 지내야 할지에 대해서도 많은 고민을 느끼게 해준 책. 하지만 난 ‘행복 압정’을 뿌리지 못하고 있다. 기억에 남는 구절 우리가 용돈을 받고 즐거워할 때 느끼는 행복 역시 돈 자체에 있는 것이 아니다. 사과의 빨간색처럼 행복감도 뇌에서 합성된 경험이다. ...

2025년 5월 30일 · 3 분 · 배준수

한글 논어 - 2023 개정증보판

한글 논어 - 2023 개정증보판 옮긴이: 이을호 출판사: 올재클래식스 감상 공자에 대해 꼭 알아보고 싶었다. 유교는 조선의 근간이자 현대 대한민국에 까지 영향을 끼치고 있다. 조선을 공부하다보면 늘 나오는 성리학. 어려서부터 역사적으로 정치적인 결정이나 사회적 흐름이 늘 성리학에 따라 결정되고 고수되는 것을 보면 많이 답답했고, 우리나라가 근대에 일제의 지배를 받게된 것이 그 놈의 성리학 떄문일 것이라고 생각했다. 성리학이 뭐길래? 500년 전의 선비들이 나보다 지능이 낮진 않을텐데 왜 성리학에 매몰된걸까? 공자는 도대체 어떤 말씀으로 이후의 동아시아의 학자들을 매료시켰을까? ...

2025년 5월 15일 · 2 분 · 배준수

12장 리소스 설명과 연결된 데이터

12장 리소스 설명과 연결된 데이터 표현 전략(Representation Strategy) 클라이언트가 GET 요청을 리소스의 URL로 보내고 해당 리소스의 표현을 받는 것을 말한다. 리소스가 자기 자신에 대해 말 하는 것. 이 책에서 다룬 데이터 형식지금까지 이 책에선 이걸 허용했다. 설명 전략(description strategy) 표현의 리소스보다 다른 리소스들에 대해 말하는 것 RDF(Resource Description Framework) 리소스 설명 프레임워크 설명 전략에만 집중한 형식 그룹 어떤 리소스에 대해 누가, 무엇을, 어떻게 설명했는지 구조적으로 표현하는 방식 이걸 기계가 이해할 수 있는 방식으로 정리하는 것 ...

2025년 3월 26일 · 3 분 · 배준수

11장 API를 위한 HTTP

11장 API를 위한 HTTP WWW가 기술스택이라면 3단계로 나눌 수 있다. 맨 아래: URL, 리소스 리소스 위: HTTP 프로토콜, 리소스 표현을 읽는 권한한과 기본적인 리소스 상태에 쓰는 권한 맨 위: 하이퍼미디어, 하나의 웹 사이트나 API의 프로토콜 의미 체계 ⇒ 이 책에서 지금까지 다룬 것 새로운 HTTP1.1 설계 명세서 RFC 2616 HTTP 프로토콜 의미 체계를 명확히 하는 것 응답 코드 엔티티 바디는 응답 코드에 대한 설명(문제가 무엇인지)이 담겨야 한다. 200(OK)와 에러 메시지를 함께 보내지 마라. RFC 2616에 있는 것 외에 새로운 것을 정의히지 마라 헤더 RFC 2616에 있는 것 외에 새로운 것을 정의하지 마라 표현들 사이에서 선택하기 서버가 하나의 리소스에 대해 다양한 표현을 제공할 때 클라이언트가 이것들을 어떻게 구분해야 할까? ...

2025년 3월 19일 · 3 분 · 배준수

모든 것을 기억하는 남자

모든 것을 기억하는 남자 지은이: 데이비드 발다치 옮긴이: 황소연 출판사: 북로드 감상 초반의 몰입력은 상당했다. 전혀 연결되지 않을 것 같은 사건들이 연결되어 나가며, 도대체 이 흥미진진한 이야기의 끝은 어떨까 기대했다. 그러나 용두사미.

2025년 2월 27일 · 1 분 · 배준수

웹훅의 재귀 원인 찾기

Today I Learned 날짜 2025년 2월 7일 금요일 내용 재귀의 원인 새로 구축한 웹훅 시스템에서 종종 재귀가 탐지되었다고 알람이 발생하고 있다. 루프를 탈출하지 못하고 계속 빙빙 돌고 있다는 건데.. 분명 내가 구현한 함수중에는 자기 자신을 호출할 일은 없기 때문에 이 문제가 이해되지 않았다… 우선 어떤 경우에 AWS가 재귀라고 판단하는지 알아봤다. 문서에 따르면 16회 정도 이상 호출되면 재귀라고 판단하는데, 이 판단은 헤더에 있는 특정 값으로 판단한다고 한다. 뭐 어찌됐든… 실제로 테스트서버에서 실태를 확인해봤다. 로직을 일부러 실패해서 총 몇번 재시도 하는지를 확인하면 된다. 웹훅을 2회(1번만 하려고 했는데 실수함) 호출하고 SQS 트리거 람다 함수와, Step Functions이 몇번 호출되었는지 확인해봤다. ...

2025년 2월 7일 · 2 분 · 배준수

인덱스와 쿼리 속도

Today I Learned 날짜 2025년 2월 6일 목요일 내용 is와 ==의 차이 네이버 커머스 솔루션 관련 버그를 고치던 중, 네이버 스토어 데이터에도 샵의 비활성화 여부를 나타내는 필드를 추가해야 했다. 따라서 NaverStore 테이블에 is_active 필드를 추가했다. 이제 스토어를 탐색하는 경우의 대부분은 ‘활성화된 스토어’를 기준으로 하는게 당연해졌으므로 탐색 함수에 is_active 필드가 True인 경우를 추가해줬다. 따라서 1 2 3 stmt = select(models.NaverStore).where( models.NaverStore.is_active == True ) 이런식으로 쿼리를 작성했다. 그런데 Flake8에서 경고 메시지가 떴다. ...

2025년 2월 6일 · 2 분 · 배준수

SQS 전송지연과 메시지 수명

Today I Learned 날짜 2025년 2월 5일 수요일 내용 SQS 메시지의 수명과 전송지연 어제 저녁부터 들어온 웹훅 메시지들을 아침에 확인해봤다. 메시지 수명이 뭔가 꺼림칙하다. 저 60초선에 닿으면 뭔일이라도 나는 것마냥 구는 저 그래프가 참으로 거슬린다. 혹시 저 시간이 지난 메시지들이 삭제되는 것이 아닌지 확인할 필요가 있다는 팀장님의 제보를 받고 확인해보았는데 데이터는 잘 들어오고 있다. 어제 오후 7시부터 SQS에 들어온 메시지의 갯수 그래프다. 38만 개 정도 된다. 7시부터인 이유는 어제 오후 7시에 Redis 를 한번 초기화해버렸으니까.. ...

2025년 2월 5일 · 2 분 · 배준수

이름을 잘짓자

Today I Laerned 날짜 2025년 2월 4일 화요일 내용 이름을 잘짓자 이번 웹훅 개선작업을 진행하면서 가장 뼈저리게 느끼는 부분이다. 그동안의 TIL에서도 꽤나 자주 말했던 부분이긴 한데, 타겟(?)이 약간 다르다. 그동안은 코드 내에서 함수나 변수 명명에 관한 이야기였다면 어제부터 오늘 느낀건 AWS 자원에 대한 이야기다. 첫번째 경험이다. 이번 웹훅 개선 작업에서 쓴 AWS Step Functions와 SQS는 처음 써보는 거라 이것저것 해볼 필요가 있었다. 안되는게 원래 안되는 건지 내가 못한건지 파악하랴, 있다느 기능을 어떻게 설정하는지 파악하랴, 이게 좋은지 저게 좋은지 파악하랴 만들다 삭제했다를 끊임없이 반복하다보면 이름따위는 안중에 두지 않게 된다. 왜냐면 ‘어차피 작동 되도 이건 삭제할거야. 잘 작동하면 이름 제대로 지어서 만들면 되니까’ 라고 생각하기 때문이다. 실제로 무조건 틀린 생각은 아니긴 한데.. 이번엔 틀렸다. 이번 웹훅 작업을 하면서 만든 AWS 자원을 보면 ...

2025년 2월 4일 · 2 분 · 배준수

Step Functions의 재시도 정책 구현

Today I Learned 날짜 2025년 2월 3일 월요일 내용 메시지 재시도 실패한 메시지를 처리하는 방법에 대한 고민이 계속되는 중… 요청이 몰렸을 때 적절하게 재시도하는 방법을 열심히 찾고 있다. 예시로 동시에 주문을 생성하는 웹훅 5천개가 들어왔다고 가정해보자. 동일한 업체의 주문은 동일한 메시지 그룹에 담기므로 1개씩 트리거 람다가 호출된다. 이 람다는 상태머신을 호출하고 종료된다. 이 과정은 매우 빨라서 3천개의 상태머신이 열리는데 몇 분이 걸리지 않는다. 카페24 API의 요청 제한이 1천개라면, 1천 개의 웹훅은 바로 처리된다. 그리고 나머지 2000개는 429 Too Many Requests를 반환받는다. 여기서부터 어떻게 처리할지를 고민하고 있는 상황이다. ...

2025년 2월 3일 · 2 분 · 배준수