글쓴이 이름: architeer

#24. Troubleshooting Java

자바 코드를 이해하고, 디버깅하고, 최적화하는 요령

자바 버그와 성능 문제를 찾는 프로파일링, 디버깅, 로깅 기법
 
실무에서 개발자는 기존 코드를 읽고 이해하는 데 가장 많은 시간을 쓴다. 이 책은 익숙하지 않은 자바 코드를 파악하는 시간을 줄여주는 실용적인 기법들을 소개한다. 프로파일링과 디버깅, 나아가 JVM 애플리케이션이 실제로 어떻게 작동하는지 이해함으로써 디펜던시나 충돌의 근본 원인을 찾고, 예상치 못한 결과를 해석할 수 있다. 디버깅의 기초부터 마이크로서비스 아키텍처에서 문제를 찾기 위한 고급 방법까지, 딱딱하지 않은 그림과 흥미로운 실제 사례와 함께 자바 코드를 ‘잘 읽는 법’을 알려준다.

제이펍, 2024년 5월 9일

원서 : Troubleshooting Java
저자 : Laurentiu Spilca
역자 : 이일웅

#23. Crafting Interpreters

내 손으로 직접 밑바닥부터 만들며 배우는 리얼 인터프리터와 컴파일러의 세계

매일 사용하고 있는 프로그래밍 언어가 어떻게 설계되고 구현되는지 알고 싶은가? 프로그래밍 언어가 어떻게 작동하고, 바이트 코드로 컴파일되고, 가상 머신에서 실행되는지에 관심이 있는가? 프로그래밍 언어가 어떻게 구축되었는지 더 깊이 이해해서 더 강력하고 유능한 소프트웨어 개발자가 되고 싶은가? 그렇다면 이 책은 당신을 위한 것이다. 이 책은 모든 기능을 갖춘 효율적인 스크립팅 언어를 구현하기 위해 알아야 할 모든 것을 담고 있다.

로버트 나이스트롬은 이 책에서 자신이 디자인한 작은 동적 언어인 Lox에 대해 두 가지 인터프리터를 구축한다. 첫 번째, 제이록스(jlox)는 Java 기반 인터프리터로 스캐닝, 재귀 하강을 사용한 표현식 구문 분석, 표현식, 제어 흐름, 함수 및 클로저, 클래스 및 상속을 평가한다. 아무것도 없는 밑바닥부터 시작하여 각 장의 주제를 구현해내는 모든 코드를 작성, 수정, 추가하며 설명한다.

두 번째, 씨록스(clox)는 C 기반으로 추상 구문 트리를 따라가는 느린 인터프리터 대신 스택 기반 가상 머신을 개발하며 관련 이론과 실제로 고려해야 할 사항을 다룬다. 두 가지 인터프리터를 구현하면서 비슷한 주제에 다르게 접근한다. 예를 들어 제이록스에서는 Java의 HashMap을 사용하여 식별자를 관리하고 Java의 가비지 수집에 의존했다면, 씨록스에서는 해시 테이블과 가비지 수집기를 직접 구현한다. 새로운 프로그래밍 언어를 구축하는 쉽지 않은 길을 위해, 책 전반에 걸쳐 복잡한 주제를 쉽게 이해할 수 있도록 세심하게 설명하고, 코드 역시 명확하고 따라하기 쉽게 넣고자 했다.

길벗출판사, 2023년 11월 30일

원서 : Crafting Interpreters
저자 : Robert Nystrom
역자 : 이일웅

지난 날 / 유재하


Song by 유재하
Recorded on Yamaha U1PE by Architeer

지난 옛 일
모두 기쁨이라고 하면서도
아픈 기억
찾아 헤매이는 건 왜일까
가슴 깊이 남은 건
때늦은 후회
덧없는 듯 쓴 웃음으로
지나온 날들을 돌아보네

예전처럼
돌이킬 순 없다고 하면서도
문득문득
흐뭇함에 젖는 건 왜일까
그대로 그 나름대로
의미가 있어
세상 사람 얘기하듯이
옛 추억이란 아름다운 것

다시 못 올 지난 날을
난 꾸밈없이
영원히 간직하리
그리움을 가득 안은채
가버린 지난 날
잊지못할 그 추억 속에
난 우리들의
미래를 비춰보리
하루하루 더욱 새로웁게
그대와 나의 지난날

언제 어디
누가 이유라는 탓
하면 뭘해
잘했었건 못했었건 간에
그대로 그 나름대로
의미가 있어
세상 사람 얘기하듯이
옛추억이란 아름다운 것
다시 못올 지난 날을
난 꾸밈없이 영원히 간직하리
아쉬움을 가득 안은채
가버린 지난 날
잊지못할 그 추억속에
난 우리들의
미래를 비춰보리
하루하루 더욱 새로웁게
그대와 나의 지난 날

생각없이 헛되이 지낸다고
하지 말아요
그렇다고 변하는 것은
아닐 테니까 지난 날
다시 못올 지난 날을
난 꾸밈없이
영원히 간직하리
그리움을 가득 안은채
가버린 지난 날
잊지못할 그 추억속에
난 우리들의
미래를 비춰보리
하루하루 더욱 새로웁게
그대와 나의 지난 날

다시못올 지난 날을
난 꾸밈없이
영원히 간직하리
아쉬움을 가득 안은채
가버린 지난 날
잊지못할 그 추억속에
난 우리들의 미래를 비춰보리
하루하루 더욱 새로웁게
그대와 나의 지난 날


#22. 소프트웨어 아키텍처 The Hard Parts

분산 아키텍처를 위한 모던 트레이드오프 분석

소프트웨어 아키텍처 문제-해결을 위한 지식과 실용적 프레임워크를 다루는 안내서

『소프트웨어 아키텍처 101』의 실무편에 해당하는 후속작이다. 분산 아키텍처를 구축할 때 서비스를 나눠야 하는 경우와 합쳐야 하는 경우를 각각 세분도(granularity) 분해인과 통합인이라는 두 가지 관점에서 바라보고, 어떻게 하면 아키텍트가 객관적으로 트레이드오프를 분석해서 올바른 의사 결정을 내릴 수 있는지 이야기한다. 전작이 소프트웨어 아키텍처의 중심 철학과 다양한 아키텍처의 세계를 빠르게 훑어보는 개론서였다면, 『소프트웨어 아키텍처 The Hard Parts』는 제목에 걸맞게 실무 아키텍처링을 할 때 가장 난해한, 그러나 한번 결정되면 바꾸기 어렵고 근본적인 영향을 미치는 부분(hard part)을 진지하게 살펴본다.

한빛미디어, 2022년 10월 1일

원서 : Software Architecture: The Hard Parts
저자 : Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani
역자 : 이일웅

위로 스크롤