분류 전체보기 308

Remote Debug via GDB/gdbserver Of CLion With Docker

2023-06-06 추가: AArch64 환경에서 AMD64 바이너리를 디버깅할 때 발생하는 ptrace 이슈에 대한 내용을 정리했다. 이 글은 이전 포스팅에서 이어지는 내용이다. 전체 프로젝트는 여기에서 받을 수 있다. 이번에는 리모트 디버그에 대해서 정리할 것이다. 공식 문서에도 소개가 잘 되어 있지만, 이 문서를 보고 바로 따라하기에는 좀 어렵다. 여기서 정리할 내용이다. Docker Compose 설정 GDB 설정 Remote Debug via GDB/gdbserver Use Remote GDB Server Use GDB Remote Debug GDB Server로 Target Process를 실행 Target Process를 실행 후에 GDB Server를 해당 PID로 Attach Docker..

Dev 2020.05.07

serialVersionUID가 없는 Serializable Class를 수정해야 할 때

자바로 개발된 프로젝트를 유지 보수하다 보면 Object Serialization, Deserialization이 사용된 코드를 흔하게 볼 수 있다. 간단하게 Serializable 인터페이스를 구현했거나 Externalizable 인터페이스를 구현해서 JSON 등의 다른 포맷으로 영속화를 시켰는지는 여기서 중요하지 않다. serialVersionUID를 명시적으로 정의하지 않고 생략했다면, 모두 동일한 문제를 가지고 있다. 문제는 아래와 같은 상황에서 발생한다. A 객체를 직렬화하여 Redis나 DB 등 외부에 저장하고, 저장된 값을 A 객체로 역직렬화하여 사용하고 있다. 어느 날 A 객체에 필드를 추가하거나 삭제하는 수정을 한다. 새로 빌드한 서비스에서 수정된 A 객체로 외부에 저장된 값을 역직렬화하..

Dev 2020.04.23

Full Remote Mode Of CLion With Docker

게으름이 이렇게 무섭다. 이걸 포스팅하겠다고 메모해 놓은 지 반년이 지났다. (이렇게 밀린 메모가 더 있다는 건 비밀이다.) 서버 개발자로 일을 하다 보면 Linux 환경만 지원하는 서버를 유지보수 해야 할 수도 있다. 아마 epoll을 사용한 서버일 것이다. 어떤 개발 환경으로 세팅이 되어 있을지는 모르겠지만, 해당 서버에 직접 들어가서 vi로 작업을 하고 make로 빌드하고 gdb로 디버깅을 해도 된다. 또는, Docker로 같은 Linux로 개발 환경을 만들고 visual studio code를 리모트로 연동해도 된다. 방법은 다양하다. 하지만, 나는 에디터나 터미널에서 vi로 작업하고 make를 실행하고 git 커맨드를 직접 사용하는 진성 개발자가 아니다. 편리한 IDE를 선호한다. vi의 손맛을..

Dev 2020.04.14

여행의 이유

여행에 전혀 취미가 없어서, 굳이 시간과 비용을 들여 여행을 가고 주변에 권하는 일에 공감이 되지 않았다. 이 책을 구매할 때는 읽고 나면 나도 여행에 관심이 생기기를 기대했으나 이 책을 다 읽은 지금 별로 달라진 것은 없다. 가볍게 읽히는 책이었지만, 흐름이 툭툭 끊긴 부분이 있었는데 ‘카프카적’이라는 표현과 ‘코스모스로 재현’이라는 표현이 등장했을 때였다. ‘카프카적’은 찾아보니 프란츠 카프카의 소설을 읽어봐야 더 제대로 알 수 있을 거 같다. 다행히, ‘코스모스로 재현’은 사전적 정의로 이해가 되었다. 아래와 같은 문장은 짜증을 동반한다. 제작진은 출연자들이 겪은 카프카적 카오스를 시청자가 의미 있게 받아들일 수 있는 코스모스로 재현한다. 여행의 이유 | 김영하 저 좁은 의미로서의 여행, 즉 직접 ..

Book Shelf 2019.10.02

모던 C++로 배우는 함수형 프로그래밍

제목처럼 모던 C++로 함수형 프로그래밍을 할 수 있도록 안내하는 책이라 C++을 알고 있다는 전제하에 설명하고 있다. 함수형 프로그래밍에 매우 자주 등장하는 동작들 filter, map, fold 가 C++ 11에 추가된 기능 중 어떤 것과 매칭이 되는지 설명하고 고차 함수와 일급 객체의 차이도 설명한다. 아직 C++이 지원하지 않는 지연 평가는 직접 구현으로 처리하는 방법을 안내한다. 템플릿을 이용한 메타 프로그래밍이 컴파일 타임에 코드를 생성하니 불변이라는 이유로 함수형 프로그래밍과 연관시키지만, 딱히 와닿지는 않는다. 동시성 챕터는 뻔한 스레드 기초만 좀 언급하고 넘어간다. 함수형이 다시 수면위로 올라온 가장 큰 이유 중 하나가 상태를 갖지 않는 함수와 불변 객체들을 활용한 lock free 동시..

Dev 2019.09.24

수영하는 여자들

읽으면서 너무 뻔한 전개라서 영화화를 염두에 두고 썼을까? 장면 장면과 전개하는 방식이 영화 같다고 생각했는데 확인해보니 영화화한다고 하네. 이야기의 중심이 되는 수영장 매각 문제가 자본주의 사회에서 발생하는 문제 중 하나인 젠트리피케이션이라고 한다. 덕분에 하나 배웠다. https://ko.m.wikipedia.org/wiki/젠트리피케이션 그 외에 읽으면서 떠오르는 질문은 하나 ‘언제든지 찾아갈 수 있으면서 마음이 편해지는 곳을 누구나 하나쯤 가지고 있을까?’ 나는 딱히 떠오르는 곳이 없다. 물론 집은 논외다. 그리고 봤던 영화를 또 보고 읽었던 책을 또 보고하는 심리가 이것과 비슷했던가 싶다. 무슨 일이 일어날지 아는 상태에서 책을 읽으면 마치 자신이 그 이야기를 통제하고 있는 것처럼 마음이 평온했..

Book Shelf 2019.09.02

앤서블 철저 입문

챕터 5까지 자세한 설명과 따라하기식의 예제 구성이 좋다. 다만, 앤서블을 이용한 서버 재부팅 처리 예제에 포트가 잘못 설정되어 있어서 삽질하기에 딱 좋다. 책의 예제가 틀리게 들어가 있는 것은 에러를 찾으며 익숙해지라는 큰 그림일 것이다. 프로그래밍 서적에서도 컴파일이 안 되거나 런타임 에러가 숨어있는 예제는 독자의 실력을 키워주지 않았던가. 챕터 6 오픈스택에서 앤서블 활용에 들어가면 오픈스택 환경 설정에 대한 설명이 전혀 없어 당황스럽다. 기본적인 오픈스택 환경을 구성할 수 없다면 이 챕터는 무용지물이다. 챕터 6의 예제를 실행하기 위한 환경을 어떻게 구성해야 하는지 기본적인 안내는 있었어야 한다. 웃긴 건 챕터 7, 8 AWS과 애저 환경에서 앤서블을 사용하는 챕터에서는 AWS와 애저의 기본적인 ..

Dev 2019.08.30

Spider Man for PS4

최근 몇 년간 최신작을 바로 못 하고 좀 지나고 하게 되네. 예전처럼 몰아서 못하고 조금씩 플레이를 했더니 게임 하나 엔딩 보는 데 한두 달 걸리는구나. 배트맨과 비슷한 게임 시스템이라 그런지 첫 느낌은 밝은 버전 배트맨이란 느낌이 약간 있지만, 전반적으로 많은 점이 개선되어서 플레이하기 편하다. 특히 퍼즐 건너뛰기 좋네. 스토리를 진행하다 등장하는 퍼즐 콘텐츠는 흐름을 딱딱 끊는다. 단순한 액션 게임으로서가 아니라 영화를 보는 듯한 스토리가 매우 좋다. #게임 #PS4 #SpiderMan #스파이더맨 #추천게임

Hobby 2019.08.24

프로그래밍 루아 3판

재미난 스크립트 언어가 있었네. 게임 서버 개발할 때 게임 이벤트용으로 사용한다고 들었었는데 직접 사용해 본 적은 없었다. Lua Struct를 json 이나 yml 처럼 설정 파일 용도로 사용하면서 추가로 제어 구조를 넣을 수도 있고, 인터페이스만 열어두면 빌드 타임 없이 Lua를 통한 코드 인젝션도 가능하고 재밌는 언어다. C, Go, Java 등의 언어와 손쉽게 연동이 되니 보조 언어로 사용하기 좋다. 다른 Lua 책을 본 것은 아닌데 내 사용 범위에서는 이 책 하나로 충분했다. 두꺼운 책이 아님에도 문법만 다루는 것이 아니라 언어의 세부사항과 주의 사항을 모두 다룬다. #독서 #개발서적 #추천도서 #루아 #프로그래밍루아 #lua 알라딘 : 프로그래밍 루아 3판 프로그래밍 루아 by 호베르토 이에루..

Dev 2019.08.21

눈먼 자들의 도시

전적으로 작가의 시점에서 이야기를 전해준다. 외적으로 특이한 부분이 많은데 인물들 간의 대화를 따옴표로 표기하지도 않으며 등장인물들의 이름도 언급되지 않는다. 그래서인지, 글을 꾹꾹 눌러 담은 것처럼 보인다. 작가가 예전에 보았던 것을 이야기로 들려주는 것 같은 느낌이다. 그리고 미사여구로 치장하지 않았음에도 멋진 문장들이 많이 등장한다. 차들은 곧 내리꽂힐 채찍을 의식하여 신경이 예민해진 말처럼 앞뒤로 몸을 들썩였다. 눈먼 자들의 도시 | 주제 사라마구, 정영목 저 문 손잡이는 집이 내밀고 있는 손 같은 거니까, 의사의 아내가 말했다. 눈먼 자들의 도시 | 주제 사라마구, 정영목 저 모든 사람이 시력을 잃으며 생긴 익명성은 인간성이라는 것을 내려놓게 하고, 급격하게 아포칼립스로 향해가는 상황에서 인간이..

Book Shelf 2019.08.20
반응형