반응형

전체 글 306

다른 의견

이런저런 비슷한 책들을 봤고 머리로 이해했다고 생각했으나, 매번 어렵다. 아니라고 생각하는 것에 동조해서 논쟁을 피하는 성격도 아니라서 의견을 개진하고 강한 저항이 등장하면 강 대 강으로 부딪쳤었다. 까칠하던 어린 시절보다는 많이 나아졌다고 자평하지만, 여전히 부드럽게 설득하지 못한다. 하여, 다시 이견 조율을 다룬 책을 또 하나 집어 들어봤다. 도서 미리 보기 기능으로 본 책의 도입부에 등장하는 ‘논쟁하는 법을 모르니 의견이 충돌하면 거기에 걸려서 앞으로 나아가지 못한다.’라는 문장이 와 닿아서 구매한 이 책은 계속 비슷한 논거가 반복되고, 심리학자분들이 참 다양한 이름 붙이기를 좋아하는 것을 다시 깨닫게 되지만, 재밌게 읽었다. 책 뒤에 요약편이 있으니 서점에선 요약편을 보고 읽을지 덮을지 판단하는 ..

Book Shelf 2022.08.23

하위 버전 CentOS Linux에 배포할 때의 glibc, libstdc++ 라이브러리 버전 문제

배경 최근에 읽은 ‘구글 엔지니어는 이렇게 일한다.’에서 컴파일러 버전업에 대한 이야기가 나와서 예전에 작업했던 GCC 컴파일러 버전업에 대한 내용을 정리해본다. 몇 년 전 새로운 팀에 합류했을 때 서비스 중인 서버군들 중에서 C++ 구현된 서버군이 GCC 4.4.7을 사용하고 있었고, 컴파일러 버전이 낮아서 모던 C++의 시작인 C++ 11를 사용할 수 없었다. GCC 4.4.7은 C++ 0x까지 지원한다. C++ 11을 사용하려면 최소한 gcc 4.7 이상이 필요하다. 버전업 타깃은 CentOS 7 Base repo에 있는 GCC 4.8.5 버전으로 맞추고 진행했었다. 작업 당시 오랜 세월의 흔적으로 개발, 배포, 서비스 환경 등 각각 OS 버전이 달랐다. OS 버전이 다르다는 것은 OS가 기본적으로..

Dev 2022.08.17

그림은 위로다 (개정판)

책을 읽고 독서 후기를 정리하다가 언젠가부터 그냥 읽기만 하고 정리를 안 했네. 올해도 벌써 8월이구나. 현재까지 20여 권을 읽었는데 이 책 후기를 적은 김에 하나씩 정리해봐야겠다. 아무튼, 동네 독서 모임의 지정 도서로 선정되어 읽은 이 책은 ‘그림은 위로다’라는 제목과 함께 표지에 ‘곁에서 친구처럼 위안이 되어주는 그림 이야기’라고 적혀있다. 평소 내 독서 취향에서 손이 가지 않았을 책이지만, 그림을 전혀 모르는 입장에서 그림에 대한 소개와 설명 등을 기대하고 읽었다. 읽으면서 이 책은 그냥 작가의 에세이인데 직업이 미술 쪽이라 그림 이야기가 부수적으로 등장하는구나 했는데, 다 읽고 보니 에세이 형식의 자기 계발서 같다. 개정판은 아직 eBook으로 출간되지 않아서 도서관에서 대출하여 읽었더니 글귀..

Book Shelf 2022.08.06

가변 Context 클래스는 신중하게 사용하자

2023년 8월 3일 추가: 이 내용을 포함한 카카오 테크밋에서 발표한 영상이 올라왔습니다. 요즘 라이브 서비스의 레거시 코드 리팩터링을 하고 있다. 흔히 가변 상태를 관리하는 Context 클래스가 레거시 코드에 있는 건 새삼스럽지 않았지만, 과도하게 사용하고 있어서 정리가 필요했다. 가변 상태 Context 사용 시 문제점 가변 상태를 가지는 Context 클래스가 2, 3개도 도 아니고 10개쯤 되면 과하다고 생각한다. 이렇게 많은 Context 클래스들이 서로 물고 물리는 종속성을 가지고 각기 다른 클래스에 넘기고, 넘겨받고, 가변 Context의 레퍼런스가 다양한 함수들로 넘겨져 전역 변수처럼 여기저기서 사용되면서 어딘가에서 A가 set을 하고 다른 곳에서는 B가 get을 하는 상황은 코드를 매..

Dev 2022.04.16

리디북스와 알라딘 ebook 리더 앱의 사용기

이사할 때마다 책이 가장 큰 짐이었고, 책장에 들어간 책이 다시 나오는 일은 점점 줄었다. 몇 년 전에 종이책을 대부분 ebook 으로 교체하면서 정리하고, 새로 구매하는 책들도 종이책 대신 리디북스에 있는지 찾아보고 리디북스에 있으면 해당 ebook 을 구매해왔다. 지금 보니 리디북스의 내 계정에 소장 도서가 300 여권으로 나오는데, 구매한 책들은 기술 서적, 소설, 만화 등 다양하다. 리디북스에서만 책을 구매했던 이유는 하나였다. MacBook, iPad, iPhone 이렇게 3개의 디바이스를 사용하는 환경에서 리디북스의 ebook 리더 앱의 사용성이 당시에 나와 있던 알라딘이나 yes24 등의 ebook 리더 앱들 보다 월등히 좋았다. 여기에 Ridi Paper 디바이스를 추가하여 그동안 잘 사용..

Book Shelf 2022.01.04

자바 직렬화(Java Object Serialization)에 유연성 더하기

자바 객체를 영속화하는 방법의 하나로 자바 직렬화를 사용할 수 있다. 단순하게는 Serializable 인터페이스를 구현하거나 더 확장성 있는 방법으로는 Externalizable 인터페이스를 구현하는 것을 선택할 수 있고, 자바 직렬화에 종속되지 않는 다른 방법을 선택할 수도 있다. 일단, Serializable 인터페이스를 구현한 클래스의 인스턴스가 외부 저장소에 영속화되면 호환성을 유지하면서 해당 클래스의 필드를 수정하기는 어렵다. (https://docs.oracle.com/en/java/javase/11/docs/specs/serialization/version.html) Serializable 대신 Externalizable 인터페이스를 구현하면 객체 직렬화 단계에서 객체 스트림에 읽고 쓰는 ..

Dev 2021.12.11

iPad를 노트로 사용할 때 Face ID 회피 팁

아이패드 프로 1세대 12.9 모델을 5년 정도 사용하다가 최근에 아이패드 프로 5세대로 교체하였다. 교체를 계속 미루고 계속 사용한 이유 중 하나가 터치 아이디의 부재였는데, 개인적으로 페이스 아이디를 좋아하지 않는다. 아이폰도 아직 터치 아이디가 있는 모델로 버티고 있다. 아이패드의 주 사용 용도 중 하나가 노트이다. 아이패드 에어와 53 Pencil 조합을 시작으로 종이 다이어리를 사용하지 않은 지 6년이 넘었다. 업무 중엔 책상 우측에 아이패드를 두고 애플펜슬로 정리하고 메모하면서 작업하는 스타일인데, 페이스 아이디는 이 작업 스타일을 만족하지 못한다. 노트를 사용하다가 맥북을 사용하면, 곧 아이패드의 화면은 잠긴다. 자동 잠금을 5분 설정으로 사용하고 있다. 마냥 켜둘 수는 없지 않은가. 다시 ..

I'm prostars 2021.08.17

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
반응형