전체 글 47

되돌아보는 2023년

11월과 함께 찾아온 영하권의 날씨는 2023년과의 작별이 머지않았음을 알려주고 있다. 2023년 한 해를 돌이켜보기 위해 블로그를 확인해보았으나, 유감스럽게도 올해는 쓴 글이 얼마 없었다. 작년 한 해 동안 이 블로그에 적잖이 글을 썼던 것을 돌이켜보면 이러한 올해의 내 족적은 나태해진 나 자신에 대한 표상이 아닐까 싶기도 하다만, 변명의 여지가 없지는 않다고 생각한다. 이에 일종의 변명이나 핑계로써, 지난 11개월 간의 내 보잘 것 없는 행적을 술회하고자 한다. 나는 몇 차례의 인사 이동을 겪었다. 크게는 두 차례, 작게는 세 차례 정도 있었던 것 같다. 그 덕에 지금은 작년 9월 입사 당시에 있던 팀과는 다른 팀에서, 당시 맡았던 것과는 매우 다른 업무를 하게 되었다. 지금은 백엔드 개발자로서, 부..

일상/일기 2023.11.14

대체될 수 없는 사람

어떠한 맥락에서 이러한 얘기가 나왔는지는 기억나지 않으나, 사내 팀 회식 중에, 십수년차의 시니어 앱 개발자 한 분께서 이렇게 말씀하셨다. 대체될 수 없다는 건 없어. 우리도 언제든지 대체될 수 있어. 물론 한동안은 회사 입장에서는 불편한 점이 있겠지. 그렇지만 대체될 수 없는건 아니야. 이 이야기를 듣고나니, 아버지께서 하셨던 말씀이 떠올랐다. 예전에 이런 직원이 있었어. 남들이 어려워서 못하겠다고 하면 본인이 다 맡아서 하는거야. 뿐만아니라 다른 사람들이 할 일 중 사소한 것 까지 다 자기가 가져와서 해. 야근을 하건 주말에도 일을 하건 아무튼 혼자서 그 일을 해. 심지어 딸도 둘이 있어서, 매일 전화기에서는 "아빠 언제와요~" 하는 소리가 들려왔어. 그러고도 집에를 안가고 일만 해. 그 직원이 특별..

일상/일기 2023.09.24

파이썬 메소드 체이닝 구현

Djnago, Pandas 등 Python의 프레임워크/라이브러리릉 이용하다보면, 다음과 같은 패턴을 쉽게 접할 수 있을 것이다. Table.objects.filter(id__in=id_include_list).exclude(id__in=id_exclude_list).sort_by('id') df.drop_duplicates(subset='name').sort_values(by='id').reset_index(drop=True) 이렇듯 method가 객체를 반환하여 여러 method를 연쇄적으로 이어 동작시킬 수 있는 패턴을 메서드 체이닝(method chaining)이라 한다. 메서드 체이닝을 통해 코드가 불필요하게 길어지는 것을 방지할 수 있으며, 개발 간에 객체에 대한 관리를 더욱 용이하게 해준다는..

잠수교 산책

새빛 섬의 채끝퀴진에서 식사를 하였다. 제법 만족스러운 식사를 마치고, 새빛 섬에서 서빙고역까지 한강 산책을 나섰다. 그렇게 한강을 수면 위에서 가로지르는 잠수교를 건너갔다. 이 근방을 지날 때면, 부모님으로부터 들어왔던 몇몇 이야기가 떠오르곤 한다. 지금으로부터 60년 전, 반포대교와 잠수교의 북측 시작점에는 아버지 살던 집이 있었다고 한다. 당시의 서빙고역 근처 한강변에는 수변 공원이나 자전거 도로, 강변 북로 따위는 일절 없었다고 한다. 당연한 것이다. 대신 우거진 갈대밭이 있었다고 한다. 당시 집안에서는 매우 많은, 그리고 다양한 식물을 키우고 있었다고 한다. 그 덕에 일대 학교에서 식물원을 대신하여 당시 아버지 살던 집으로 현장학습을 가는 경우가 왕왕 있었다고 한다. 큰아버지는 당시 군생활을 한..

일상/일기 2023.07.30

1년이 다 되어가는 회사생활

현생이라는 핑계와 나태함이라는 두 가지 이슈로 인해 깃허브 잔디심기와 블로그 관리에 소홀해진 상황에서, 스스로에 대한 한 번의 피버팅은 피해갈 수 없는 과제가 되었다. 즉시 가용한 자원을 미루어 생각해보건데, 지금 상황에서 해볼만한 가장 좋은 것은 입사 초기의 나와 이제 곧 입사 1주년을 맞이하는 지금의 나의 상황을 한 번 돌이켜 보는 것이리라. https://joefortomorrow.tistory.com/45 1. 1년이 지난 지금, 나는 어떤 업무를 하고 있나? 입사 후 첫 일주일을 보내고 썼던 윗 글의 내용과 내 기억에 의하면, 첫 입사 당시 나의 업무는 데이터 엔지니어였다. 10개월이 지난 지금은 데이터엔지니어가 아닌 백엔드 엔지니어를 하고 있다. 하지만 업무의 성격을 보면 단순 백엔드 엔지니어..

2020년, 독일 여행에서의 교훈

요즘 회사 생활 간에, 특히 지난 주중에 느꼈던 바가 있었다. 그리고 그 경험은, 내 지난 날의 독일 여행을 떠오르게 했다. 2020년 1월, 학부생 시절, 학과 내 해외 탐방 프로그램에 참여하여, 교수님과 동행하여 독일에 다녀온적이 있었다. 일정 간에, 나는 모든 자유 시간을 미술관, 박물관, 유적지에서 보냈다. 그렇게 방문한 곳이 하이델베르크성, 뉘른베르크 전범재판 기념관, 뷔르츠부르크 레지던츠 궁전, 뮌헨의 알테 피나코텍 등이었다. 지난 주에 내가 떠올렸다고 말한 것은, 그 중에서도 뷔르츠부르크 레지던츠 궁전 방문과도 관련이 있다. 뷔르츠부르크의 궁전은 나폴레옹도 보고 감탄을 하였다고 전해진다. 원래는 주교가 살던 궁전이었는데, 지금은 개조되어 미술품을 전시하는 박물관으로 쓰이고 있다. 여담이지만 ..

일상/일기 2022.11.19

합스부르크, 매혹의 600년

1. 신성로마제국 고대 국가 로마 제국은, 중세 시대의 사람들에게 어떤 의미였을까? 바로, '기독교의 수호자'였다. 디오클레티아누스와 같이 기독교 신자라면 일단 죽이고 시작했던 시대도 있었음을 생각해보면 로마 제국이 기독교의 수호자라는 것이 모순처럼 느껴진다. 하지만, 콘스탄티누스 1세 치세에 기독교가 국교로 공인되면서 유럽인들의 마음 속에 로마는 기독교의 수호자로 자리잡게 되었다. 그랬던 서로마가, 476년 오도아케르에 의해 멸망했다. 동로마는 남아있었지만, 일련의 사건들로 인해 동로마의 교회와 서로마의 교회는 분열되어 있었다. 로마 교회는 구심점을 잃고 흔들리게 되었으며, 그러던 와중에 이베리아 반도에서는 이슬람인들이 침략하여 북부의 프랑스 지역까지 밀고 올라왔다. 이 상황을 타개하고 다시 기독교 세..

일상/일기 2022.10.29

NetworkX 패키지를 활용한 네트워크 시각화

데이터 분석을 하는 사람이라면, 기술 통계, 막대, 꺾은 선 그래프 등, 여러 시각화 자료를 준비해야 할 때가 많다. 하지만 우리가 흔히 접하는 산점도, 꺾은 선 그래프, 막대 그래프, 박스플롯, 히스토그램 등은 정형 데이터에 대한 시각화 결과물이다. 비정형 데이터 또한 시각화를 통해 나타낼 수 있다. GIS 정보를 담은 지도가 그 예가 될 수 있을 것이며, 워드 클라우드 또한 그 예일 것이다. 이 비정형 데이터에 대한 파이썬 시각화 패키지로써, 오늘 내가 이야기하고자 하는 것은 NetworkX이다. NetworkX, 줄여서 nx는 네트워크 분석 시각화를 위해 사용되는 패키지이다. 네트워크 분석이란? 구글에 의하면 네트워크 분석은 개인과 집단들 간의 관계를 노드(Node)와 링크(Link)로써 모형화하여..

파이썬 2022.10.23

사람의 기억력과 태세우스의 배

아쉽게도 출처는 기억이 안 나지만, 언젠가 이런 글을 본 기억이 있다. "한 달 전 내 코딩은 내 코딩이 아니다." 이에 떠오르는 철학 논쟁이 있었다. 미노타우로스를 죽인 후 아테네에 귀환한 테세우스의 배를 아테네인들은 팔레론의 디미트리오스 시대까지 보존했다. 그들은 배의 판자가 썩으면 그 낡은 판자를 떼어버리고 더 튼튼한 새 판자를 그 자리에 박아 넣었다. 커다란 배에서 겨우 판자 조각 하나를 갈아 끼운다 하더라도 이 배가 테세우스가 타고 왔던 "그 배"라는 것은 당연하다. 한 번 수리한 배에서 다시 다른 판자를 갈아 끼운다 하더라도 마찬가지로 큰 차이는 없을 것이다. 하지만 그렇게 계속 낡은 판자를 갈아 끼우다 보면 어느 시점에는 테세우스가 있었던 원래의 배의 조각은 하나도 남지 않을 것이다. 그렇다..

일상/일기 2022.10.08