전체 글 312

gdbserver ptrace issue on Apple Silicon M1/M2

Docker's Multi-architecture support 애플 실리콘 칩을 기반으로 실행되는 macOS를 위한 'Docker Desktop For Mac'은 애플 실리콘 칩셋(이하 AArch64)에서 AMD64로 빌드된 이미지의 컨테이너 실행을 위해 Qemu 가상화를 사용한다. 'The Magic Behind the Scenes of Docker Desktop'와 4.1.3.0 Release note에서 관련 내용을 확인할 수 있다. 이 글은 이전 포스팅 'Full Remote Mode Of CLion With Docker'(이하 이전 포스팅 1번)와 'Remote Debug via GDB/gdbserver Of CLion With Docker'(이하 이전 포스팅 2번)에서 공유한 내용을 AArc..

Dev 2023.06.06

Sharing Containers Across Multiple Docker Compose

배경 실무에서 개발 중인 여러 프로젝트의 로컬 개발 환경에서 통합 테스트를 수행하기 위해 Docker Compose(이하 컴포즈)를 사용하고 있다. A라는 서비스를 실행하려면 MySQL, Zookeeper, Memcached가 필요하고, B라는 서비스를 실행하려면 MySQL, Zookeeper, Redis가 필요하다. 이렇게 서비스마다 필요한 외부 서비스(이하 컨테이너)들이 겹치는 것과 그렇지 않은 것이 있다. 중복되는 컨테이너들은 컴포즈의 컨테이너 네이밍 기능과 포트 매핑 기능으로 호스트에 노출하는 컨테이너의 이름과 포트를 서로 달리하여 각 프로젝트가 모두 자신만의 컨테이너를 사용하도록 구성되어 있다. 모두 A, B, C, D 이렇게 4개의 서비스가 이런 방식으로 구성되어 있고 서로 독립된 환경으로 그..

Dev 2023.05.29

JetBrains의 IDE에서 북마크 정보 마이그레이션

노후 장비 교체 이슈로 신규 M2 맥북을 받았다. 매번 맥북을 교체할 때마다 애플의 '마이그레이션 지원' 기능으로 편하게 작업했었는데, 이번에는 인텔 칩셋 환경에서 애플 실리콘 환경으로 넘어가는 것이라서 수동으로 세팅하기로 했다. 사용하는 앱들 하나씩 확인해서 새로 설치하고 설정 Export 하고 Import 하고 한 땀 한 땀 작업했다. JetBrains의 IDE는 'Settings Sync'라는 좋은 기능이 있어서 매우 편하게 끝나는 줄 알았는데, Bookmarks 정보는 Sync에 미포함이다. 코드 내비게이션에 북마크를 애용하고 있어서, 이걸 모두 버리고 갈 수는 없었다. 구글링으로 찾은 아래 문서에서 IntelliJ의 'Bookmarks' 정보를 추출하는 방법에 대한 기본적인 정보를 찾았다. 참고..

Dev 2023.05.22

자바 최적화 (Optimizing Java)

자바 코드 레벨의 최적화와 JVM, GC 튜닝 정도의 설명이 있으려나 했는데, 하드웨어 레벨의 이야기와 바이트 코드와 핫스팟에 대한 세부적인 이야기들로 매우 재밌게 읽었다. 개발하면서 코드 구현의 중요도는 가능하면 가독성과 테스트 용이성이 좋은 코드로 구현하는 것에 두고 있다. 최적화에 대한 고려는 적합한 자료구조를 선정하는 것, 불필요한 블로킹을 하지 않는 것 외에는 코드 구현 레벨에서 딱히 최적화에 신경 쓴 적은 없었던 것 같다. 심지어 명시적인 함수를 명시적으로 인라인으로 선언해 본 지도 좀 되었다. 대부분의 병목은 코드 구현 레벨보다 외부 연동에서 발생한다. 꽤 오래전에 사서 필요한 부분만 보고는 잊고 있다가 올해 다 봤다. 오래전에 리디북스에서 구매했었기에 PDF 형식의 eBook에서 텍스트 복..

Dev 2023.05.13

쏙쏙 들어오는 함수형 코딩

읽은 순서랑 정리하는 순서를 맞추기가 생각보다 어렵다. 작년에 읽은 책을 이제야 정리하네. "책 제목을 꼭 이렇게 해야만 했을까?"라는 생각이 스치지만 좋은 책이다. 참고로, 이 책의 예제는 자바스크립트로 되어있는데, 리팩터링 2판과 최근에 나온 SICP 등의 특정 언어에 국한되는 내용이 아닌 책에서 예제를 구현하는 언어로 자바스크립트를 선택하고 있는데, 개발 환경을 별도로 구성할 필요도 없고 간단하게 예제를 돌려볼 수 있어서 좋다. ‘부수 효과를 없애라!’라는 슬로건 때문에 너무 단순하게 생각할 수도 있지만, 사실 함수형 프로그래밍은 부수 효과 구성에 관한 내용입니다. 부수 효과를 잘 관리해서 코드의 아무 곳에나 있지 않도록 하는 것입니다. 이 책의 주제이기도 합니다. 이 책은 보통 함수형 프로그래밍이..

Dev 2023.05.06

좋은 코드, 나쁜 코드 (Good Code, Bad Code)

2023년 카카오 신입 공채 기술 온보딩에서 코드 리뷰어로 활동할 때 참고하려고 구매했던 도서다. 나름 신간이면서 표지가 마음에 들기도 했고, 코드 품질은 언제나 관심이 있는 주제다. 읽어보니 책의 내용도 내용이지만, 적절한 컬러 사용과 보기 편한 편집으로 가독성도 매우 좋다. 이 책의 특이사항으로는 일단 예제 구성하는 데 사용한 언어에 있다. 보통 하나의 언어를 정해서 실행할 수 있는 예제를 구현하는 다른 책들과 달리 의사코드를 사용하여 예제를 구성하고 있다. 저자가 자기 생각을 전개하는 방식도 책의 제목과 순서는 배치 순서는 다르지만, 저자가 생각하기에 나쁜 코드와 좋은 코드를 대비시켜서 보여주고 왜 나쁘고 좋은지를 친절하게 설명해준다. 그리고, 모든 상황에 맞는 정답은 없다는 것을 계속 상기시켜준다..

Dev 2023.03.04

ChatGPT를 영어 연습 챗봇으로 사용해보기

요즘 ChatGPT에 대한 소개, 활용법 등등 글과 영상이 여기저기 많이 보인다. 조심해야 할 점 하나는 ChatGPT가 모르면 모른다고 답을 주면 좋을 텐데, 어떻게든 문장을 만들어서 사실이 아닌 답을 주는 경우도 꽤 있으니 애매할 때는 추가 검증이 필요하다. 이 글에서는 영어 학습에 도움이 될만한 팁 하나를 간단히 공유하려고 한다. 2명의 대화 상대를 등장시키고, 영어 선생님이 내 영어 문장을 교정해주는 다자간 영어 연습 챗봇으로 ChatGPT를 사용해볼 수 있다. 가입 절차는 많은 곳에 소개되어 있으니 다른 자료를 참고 바란다. 우선, 아래의 화면에서 '프롬프트 입력 박스'이라고 표시한 부분이 ChatGPT에게 요청 사항을 적는 텍스트 박스다. 입력 텍스트를 프롬프트(Prompt)라고 한다. 일단 ..

I'm prostars 2023.02.22

싯다르타

오랜만에 읽은 소설이 고전이네. 짧은 소설이고 생각보다 잘 읽힌다. 불교에 관심이 없거나, 다른 종교를 가지고 있더라고 큰 부담 없이 읽을 수 있을 거라고 생각하지만, 개인차가 큰 부분이니까. 어느 한 사람에게는 소중한 보배이자 지혜처럼 여겨지는 것이 어떤 다른 사람에게는 항상 바보 같은 소리로 들린다는 사실에 대해서도 나는 동의하고 있어. 작품 해설에 나온 내용으로 소개가 충분할 것 같다. 싯다르타는 아무리 각성자라 할지라도 깨달음의 순간에 체험한 것을 말이나 가르침을 통하여 전달할 수는 없다는 사실, 즉 삶과 인식 사이에 가로놓여 있는 균열을 인지한다. 열반은 ‘이성적으로 파악되는 것이 아니라 한순간의 심오한 통찰 속에서 체험될 수 있는 것’임을 깨달은 싯다르타는 편력의 길을 계속한다. https:/..

Book Shelf 2023.02.11

도메인 주도 설계

꽤 오래전에 읽은 책이 eBook으로 새로 출간되었다. 2011년에 번역서가 나왔었는데, 2023년에 eBook으로 출간되었다. 꽤 어렵게 읽었던 기억이 있어서 다시 읽어보려고 구매했다. 개정판인가 기대를 살짝 했었는데 개정판은 아니다. 출간된 지 10년이 훌쩍 넘은 기술 서적이지만 지금 읽어도 좋은 책이다. 도메인 주도 설계의 목표는 기술보다는 도메인에 대한 모델에 집중해 더 나은 소프트웨어를 만들어내는 것이다. 이 책의 목표를 간결하게 보여주는 멋진 말이다. 상호의존성은 모델과 설계를 이해하기 어렵게 만든다. 또한 테스트를 어렵게 만들고 유지보수성을 떨어뜨린다. 그리고 쉽게 축적되는 경향이 있다. ... 객체 개념을 구성하는 데 필수적이라는 사실이 증명되기 전까지는 모든 의존성을 검토해야 한다. 이러..

Dev 2023.02.05

카카오 사내 Tech talk 발표

얼마 전에 사내 Tech talk에서 크루 300여명을 대상으로 발표했던 내용이 글로 다시 정리되어 카카오 테크 블로그에 기재되었다. 이쁜 굿즈도 주셨다. https://tech.kakao.com/2023/01/19/kakaotalk-java-app-server-refactoring/ 카카오톡 Java App Server Refactoring 후기 안녕하세요, 카카오톡 메시징 파트에서 메시징 서버를 개발하고 있는 Soo입니다. 취미가 직업이 된 지 어느덧 8,000일이 넘어가고 있는 개발자입니다. 2019년 말에 톡 메시징 파트에 합류하여 기술 tech.kakao.com

I'm prostars 2023.01.19
반응형