fragile and resilient

분류 전체보기 41

6월의 조각

#조각 1감정이 촉감으로 다가올 때가 있다.점자를 더듬듯 오돌토돌한 돌기들을 만지고 있는 것 같은 느낌이 든다.활자의 표면을 한 겹 벗겨내고 그 안으로 들어가려 할 때 증폭된다. 나는 왜 덤덤하게 우울한 책을 좋아하는지 생각했다.감정적이지만 감정적이지 않으려는, 무너질 것 같지만 무너지지는 않으려는, 몸부림에서 오는 위로가 있다. 의도적으로 고통 속에 머문다.실수하고, 외면하고, 후회하고, 반성하고, 나아간다. 그리고 이를 반복한다. 이 세계에서 진실되게 살기란 어려운 일이다. 저항하며 끝끝내 지키려는, 연약하고 부드럽지만 동시에 질기고 강인한 존재들을 사랑한다. #조각 2요 근래 운동 루틴에 변화를 주고 싶어서 요가 수업에 몇 번 다녀왔다.작년 휴양지에서 가족들과 함께 요가 클래스를 들었는데 나에게..

생각 2025.06.14

기준

행복 아침 일찍 일어나 빵과 함께 마시는 커피자연 속에 있는 것읽고 싶은 책이 있는 것가족들이 무탈한 것주말 아침에 햇빛을 바라보며 먹는 브런치할 일을 다 마치고 밤에 책을 읽는 시간생각을 나눌 친구가 있다는 것 행복의 다른 이름을 감사라고 칭하고 싶다.사소한 것에서 오는 행복을 아는 사람이 되고 싶다. 고개를 돌려 바라볼 수 있는 여유를 갖고 싶다. 친오빠를 포함해 나를 잘 아는 지인은 나에게 이야기한다. “너의 기준을 생각해, 우선순위를 정해봐.”얼마 전 지아 언니와의 대화가 떠오른다. “재작년부터는 조금 알 것 같았고, 작년에는 정말 잘 알고 있다고 생각했는데, 올해가 되니 다시 아무것도 모르겠더라.” 나는 항상 무언가를 기다린다. 기다림이 나에게 무엇을 의미하는지 고민했다.

생각 2025.04.13

지킬 앤 하이드

뮤지컬 '지킬 앤 하이드'를 보고 왔다. 너무 재밌어서 집에 오는 길에서부터 영상을 찾아보고 음악을 들었다. 인간의 내면을 선과 악이라는 두 인격으로 분리하고 이를 통제한다는 설정은 인간을 꿰뚫는 이야기 같다. 동시에 여러 우연이 겹쳐 운 좋게 진화한 우리 종이기 때문에 할 수 있는 생각이구나 싶었다. 인간의 이중적인 면모. 탁월한 친화력과 협력적 의사소통을 기반으로 큰 문명을 이룬 우리 종은 동시에 엄청난 잔인성을 지니고 있다.내가 속한 집단에 위험이 되는 정체성이 다른 타인에 대해서는, 놀라울 만큼 손쉽게 타인을 비인간화하고 잔혹해질 수 있다는 것을 역사가 말해준다. 지킬은 자신의 일부분인 악한 자아(하이드)를 인정하지 못한다. The Confrontation의 가사에서도 드러나듯 악행을 일삼는 하이..

생각 2025.04.12

요즘 읽은 글

어릴 때부터 나는 이미 본 영화나 글을 여러 번 다시 보는 버릇이 있었다. 요즘 여러 번 읽었던 글들을 기록하고 싶어서 남겨둔다. 이따금씩 최근 주의 깊게 읽었던 책과 구절을 기록해두면 내 의식의 변화와 나 자신에 대해 더 잘 이해할 수 있을 것 같다. 우리가 팔십 년을 건강하게 산다고 가정하면 약 삼만 일을 사는 셈인데, 우리 직관이 다루기엔 제법 큰 수입니다. 저는 대략 그 절반을 지나 보냈고, 여러분 대부분은 약 삼분의 일을 지나 보냈습니다. 혹시 그중 며칠을 기억하고 있는지 세어 본 적 있으신가요? 쉼 없이 들이쉬고 내쉬는 우리가 오랫동안 잡고 있을 날들은 삼만의 아주 일부입니다. 먼 옛날의 나와, 지금 여기의 나와, 먼 훗날의 나라는 세 명의 완벽히 낯선 사람들을 이런 날들이 엉성하게 이어 주..

생각 2025.03.24

[Redisson] Pub/Sub 기반 Redis Distributed Lock

분산락(Distributed Lock)은 분산 환경에서 공유 리소스에 대한 동시 접근을 제어하기 위한 동기화 메커니즘이다. 이를 통해 임계 영역에서 발생할 수 있는 경쟁 조건(Race Condition)을 방지할 수 있다. Redis를 활용한 분산 락 방법에는 대표적으로 Spin Lock 방식과 Pub/Sub 기반 Lock 방식이 있다. Spin Lock 방식은 Redis의 SETNX(Set if Not Exists) 명령어를 사용하여 락을 획득하는 방법이다. 락이 이미 존재하면 일정 시간 동안 락이 해제되기를 기다리면서 주기적으로 Redis에 요청을 보내 락 해제 여부를 확인한다. 구글링하면 많은 예제들이 존재하므로 어렵지 않게 구현할 수 있을 것이다. 해당 글은 Redis를 활용한 분산락 구현 방법에..

Storage 2025.03.13

지구 끝의 온실

집 근처에 작은 화원이 하나 있다. 회사에서 집을 오갈 때나 커피를 사러 갈 때마다 눈길이 가는 가게였다. 화려한 화원은 아니었고 통창 뒤로 아기자기한 초록 잎을 달고 있는 작은 크기의 화분들이 있는 단아한 가게였다.지나가면서 ‘언젠가 한 친구를 집에 데려가고 싶네.’ 라고 생각했다.레옹의 마틸다처럼 멋지게 화분을 들고 집까지 당당하게 걸어가는 이상한 상상을 하며 혼자 웃었다. 하지만 몇 개월째 그 친구를 집으로 데려오지는 않았다. 그 당시 꽤나 지친 상태였던 것 같다. 움직이지 않는 작은 크기의 식물 하나를 키우는 데에 필요한 책임감을 갖는 것도 쉽지 않았다. 우리 집에 나를 제외한 또 다른 생명체를 들인다는 것은 고민이 필요했다. 어렸을 적 잘 돌보지 못했던 전적도 있었고, 화원에서 생명력을 뿜어냈던..

생각 2025.01.07

숨결이 바람 될 때

제주도에 도착하니 매섭게 바람이 불었다. 도로와 가깝게 맞닿아있는 길을 걷는데 바람이 너무 세서 자꾸만 도로에 몸이 가까워졌다.조금이라도 힘을 놓아버리면 도로쪽으로 날아갈 것만 같아서 무서웠다. 주위에 있는 무거운 돌이나 가로등을 붙잡고 위태로운 내 몸을 고정하고 싶었다.하늘을 보니 새들이 날고 있었다. 새들은 바다로 나아가려는 듯 보였지만, 바다에서 불어오는 강한 바람 때문에 앞으로 나아가지 못하고 그 자리에 정지해 있는 것처럼 보였다.분명 앞으로 나아가려고 힘주고 있는 것처럼 보이는데 정지해있었다. 관찰하다가 힘이 풀리면 단박에 몇 미터는 날아갈 것 같아서 다시 정면을 응시했다. 카페에 도착하여 ‘숨결이 바람 될 때’ 라는 에세이를 읽었다. 작가는 의학 대학교를 졸업하고 레지던트 생활이 6개월 남은..

생각 2025.01.07

2024.12.10 일기

여러 형태의 작별이 있다. 내가 의도한 이별도 있고 의도하지 않은 갑작스러운 이별도 있다.좋건 나쁘건 슬프고 아쉬운 감정이 드는 것은 어쩔 수 없는 것 같다. 얼마 전 지아 언니가 나에게 말했다.“나는 작별할 때마다 파티를 해야 한다고 생각해, 헤어짐 축하 파티" 나는 작별하기 이전의 상태로 돌아갈 수 없어 그러니까 축하해 주는 거지 나의 변태를.이전의 나와 지금의 내가 절대 같을 수는 없어 나는 이미 압력이 가해져 형태가 변형되어버렸으니까. 문득 이런 생각이 들었다. '시작'과 '끝'은 각각 존재하는 형태가 아니라 '시작과 끝'이라는 하나의 형태로 이루어져 있다는 생각을.시작과 끝은 함께 포개어져 우리에게 다가온다는 사실을. 그 틈은 매우 촘촘하여 이것이 시작을 의미하는 것인지, 끝을 의미하는 것인지 ..

생각 2024.12.12

[Elasticsearch] Shard Allocation 은 어떻게 결정될까?

성능 테스트 과정에서 특정 데이터 노드에 샤드가 집중된 것을 발견했습니다.엘라스틱서치에서는 아래 상황에서 샤드의 배치를 결정하게 됩니다.클러스터에 인덱스를 추가하는 경우Node failure - 클러스터에서 노드가 drop된 경우 해당 노드에 존재하던 샤드들을 재배치클러스터 크기 조정 - 클러스터에 새로운 노드가 추가되거나 제거되는 경우 노드의 디스크 사용량이 전체의 90% 이상을 도달하는 경우샤드를 수동으로 라우팅하는 경우라우팅 관련 설정 업데이트ShardsAllocator는 샤드 배치를 담당하는 ElasticSearch 인터페이스입니다.해당 인터페이스의 구현체 BalancedShardsAllocator의 allocate를 보면 1. allocate unassigned shards, 2. move sh..

Storage 2024.04.10

[JPA] SimpleJpaRepository의 EntityManager는 어디서 생성될까?

JPA를 사용하면 보통 아래와 같이 선언해서 Repository를 사용합니다. interface JpaTestRepository extends JpaRepository, TestRepository {}여기서 JpaRepository 의 구현체인 SimpleJpaRepository 를 살펴보겠습니다. 데이터를 저장할 때 사용하는 save 메서드를 기준으로 보겠습니다.로직을 보니 entityInformation.isNew를 확인하고 true이면 em.persist(entity)를 실행하고, false이면 em.merge(entity)를 실행합니다. (이 로직에 대한 부분은 다른 포스팅에서 다루겠습니다.) 여기서 em을 통해 로직을 수행하는 것을 보니 EntityManager가 굉장히 중요한 역할을 하는 것으..

Spring 2024.02.24