처음 처음 | 이전 이전 | 1 | 2 | 3 |다음 다음 | 마지막 마지막
0과 1 사이 - 고수준 코드 아래 숨은 실행, 구조, 보안, 메모리의 비밀
가와타 아키라 외 지음, 진명조 옮김 / 한빛미디어 / 2025년 10월
평점 :
장바구니담기


"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

 

간략 소개

- 책 제목: 0과 1 사이
- 분야: 리눅스, 저수준, 보안
- 난이도: 上
- 분량: 712p (총 9챕터)
- 참고사항: "BINARY HACKS: 해커가 전수하는 테크닉 100선" 개정판

 

처음에 Hacks를 보고 "오호, 해킹을 위한 책이군.. 나도 보안 동아리 출신인데 엣헴"하면서 골랐는데,

Hacks가 해커의 hack은 아니고, 그냥 Life Hack(생활의 꿀팁) 같은 의미로 쓰였다.

물론 해킹/보안 영역에 적합한 것도 맞는데, 저수준에서의 프로그래밍 노하우라 보면 된다.

 

 

내가 본 책 중에 가장 저수준이었고, 가장 어려웠다 (다 읽어보지도 못 함)

일단 리눅스를 사용하지 않거나 모른다면 이해하기 쉽지 않을 것이다.

애초에 제목부터 Binary인 만큼 매우 저수준이고, 모든 코드도 C언어 기반인 점 참고하자.

 

한 마디로 요약하면, 옛날 스타일의 진짜 개발자(혹은 해커)를 위한 책이다.

 

 

 

 

상세 소개

 

앞서 말했듯 리눅스에 대해 잘 모르면 읽기 어려울 정도로 진득한 리눅스 내용이다.

그래도 리눅스를 잘 모른다고 모든 내용을 이해할 수 없는 정도까지는 아니다.

 

 

 

그리고 재미있어 보이는 파트나 이해 가능한 부분만 찍어 먹어도 된다고 한다.

나도 이 방식으로 흥미있는 부분만 발췌독한 상태다.

 

 

아무래도 바이너리하면 많은 사람들이 거부감을 가지기 쉽기 때문에,

앞 부분엔 매직넘버로 파일 확장자 맞히기라든가 Hello World! 어셈블리어 분석으로 가볍게 시작한다.

 

#1: 매직 넘버 이야기로 산뜻하게 시작 🌼🌺🍀

 

한번쯤 들어봤을 파일 매직 넘버 관련 내용으로 시작하는데,

HEX로 파일을 살펴보면 시작이나 끝 부분에 파일 형식을 나타내는 매직 넘버나 시그니처가 있다.

이걸로 파일 형식을 식별해서 복구 작업이나 악성 파일 업로드 방지에 활용할 수 있다.

 

바이너리의 세계로 입장하기 전에 가볍게 몸을 풀어주는 느낌이다.

 

 

#70-75: 부동소수점만 집중적으로 패기

 

7챕터는 수치표현과 데이터 처리를 다루는데, 부동소수점을 집중적으로 파헤치는 게 인상적이었다.

그도 그럴게 부동소수점 처리에서 실수하기도 쉽고, 계산에서 많은 예외가 발생할 수 있기 때문일 것이다.

 

수학과 출신의 저자인 아라타 미즈키 (荒田實樹) 상이 이 파트를 맡은 듯 하다.

저자 소개 中
... 수치 계산에도 손을 대보려다 길을 잘못 들어 부동소수점의 늪에 빠지고 말았습니다.  

 

 

IEEE 754 부동소수점 수 기본 개념부터 시작해서 예외 처리, 반올림 방식 변경까지 살펴보다가

지금까지의 부동소수점 환경 조작이 최종적으로 컴파일러 최적화때문에 무시되지 않게 하는 법까지 알려준다.

 

 

#55: ASLR 동작/구현🛡️ 근데 이제 이걸 회피해서 공격하는.. ⚔️

 

배열과 인덱스를 다루면서, 오버 플로나 언더 플로같은 메모리 취약점에 대해 들어봤을 것이다.

UAF든 더블 free든 의도된 메모리 영역이 아니라 다른 메모리 영역에 접근하게 되는 취약점이 되는데,

이게 전통적인 프로세스 제어권 탈취의 시작점이 되겠다.

 

 

버퍼 오버플로 계열 공격을 막으려고 스택 카나리NX같은 방어 기법들이 도입됐는데,

이런 방어를 우회해 코드 주입 없이도 공격하는 ROP가 등장했고,

그런 ROP 조차 어렵게 만들기 위해 정확한 메모리 주소 자체를 흐트러뜨리는 ASLR이 나오게 된 것이다.

 

 

뭐, 그렇다고 ASLR이 무적인 건 아니다.

#55에서는 이 ASLR의 동작과 구현을 설명하면서도 ASLR을 회피해 공격하는 방법도 알려준다.

아마 밥먹듯이 CTF를 풀고, DEFCON 결승에 최연소로 참가했다는 고이케 유키 (小池悠生) 상이 맡은 듯하다.

 

아무튼 ASLR과 ROP에 관심있다면 이 책의 #55와 #56를 참고하자.

 

 

#48: 리눅스 퍼포먼스 분석 📊

 

리눅스 성능 분석의 모든 걸 알려주마!!! ← 이런 느낌은 아니고, 이런 게 있습니다~ 정도다.

제목 그대로 리눅스 퍼포먼스 분석 '입문'이다.

 

그래서 간략한 개념과 핵심만 있어서 분량도 적어 가볍게 읽을 수 있어서 좋다.

이벤트 카운트, 프로파일링, 트레이싱의 차이를 알 수 있고, perf로 직접 실습해볼 수도 있다.

 

 

 

perf record로 샘플링하고 이걸 플레임 그래프로 프로파일링하는 방법도 마지막에 간략히 알려준다.

이 그래프로 호출한 함수와 스택 트레이스의 깊이, 샘플 수, 소요 시간 등을 시각화해서 볼 수 있다.

 

 

#40: user 권한으로 root처럼 행동하기 😈

 

사실 목차를 살펴보다가 제일 먼저 눈에 들어온 제목이었는데..

권한에 제한을 둬서 취약점이 발견되더라도 피해를 줄이는 방법에 대해 설명한다.

 

 

더 자세한 이야기가 궁금하다면, 교보문고에 가서 읽어보거나 구매해서 읽어보자.

그 밖에도 총 89가지 이야기들로 구성되어 있으니, 이런 저수준 주제들에 대해 관심있다면 추천한다.

 

 

 

한 줄 평 ✏️

진짜 개발자라면 이 책을 이해할 수 있어야 하겠지..

출처: https://zzaekkii.tistory.com/48 [int main(){:티스토리]


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
정지훈의 양자 컴퓨터 강의 - AI 다음의 게임 체인저 양자 컴퓨터의 모든 것
정지훈 지음 / 한빛미디어 / 2025년 8월
평점 :
장바구니담기


"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."



서론

요즘은 전공자가 아니더라도 Chat GPT, Gemini 등 AI 이야기가 빠지지 않는데,

이젠 그다음 시대를 준비하는 기술로 ‘양자 컴퓨팅’이 거론되고 있다.

사실 난 이게 지금 가능할까 생각했는데 말이지..



양자 역학? 물론 어려운 얘기지만 막상 책을 펼쳐보면 생각보다 술술 읽힌다.




본론

책은 총 8장으로 구성되어 있다.

처음에는 양자 컴퓨터가 왜 중요한지와 기존 컴퓨터와 어떤 차이가 있는지 이야기한다.


‘큐비트’라는 양자 컴퓨팅 쪽에서 한번쯤 들어본 단어로 시작하는데,

중첩이나 얽힘 같은 원리를 어렵지 않게 비유로 설명해준다.



그리고 큐비트가 초전도부터 이온 트랩까지 여러 길로 개발되고 있다는 점이 흥미로웠다.

초창기 컴퓨터가 진공관에서 반도체 칩으로 발전해온 것처럼,

아직 초기인만큼 양자 컴퓨터도 여러 경로를 거쳐 성장 중인 것 같다.



3장엔 양자 소프트웨어와 알고리즘 이야기가 나온다.

쇼어 알고리즘, 그로버 알고리즘 같은 유명한 예시들이 등장하는데,

확실히 고전 컴퓨터랑은 계산 방식이 다르다는 걸 느낄 수 있었다.



정보 보안 동아리 소속으로서 할 말은 아니긴 하지만,

예전에 양자컴퓨터 나오면 다 뚫릴텐데 블록체인이고 암호고 다 뭔 소용이여~ 했는데

양자컴퓨터는 벌써 나와버렸고..




그 대비책으로 양자 내성 암호도 나오고 있다는 부분인데,

솔직히 이건 너무 궁금하지 않나?



궁금하면 한번 직접 읽어보자!





그리고 개발 환경 얘기가 나오는데, 또 파이썬으로 뒤덮여있었다.

AI도 양자 컴퓨터도 파이썬 천국인 건 비슷한가보네.



아, 그리고 컬러도 예쁘고 그림 자료가 풍부해서 더 좋은 것 같다.

양자컴퓨터 입문용으로 읽어보기 좋은 이유 중에 이것도 크다.




결론

양자라는 낯선 주제를 처음 접하는 사람도 부담 없이 한번 읽어 볼 수 있는 책이다.

개념과 원리, 응용, 전망까지 균형 있게 담아내서 읽고 나면 '나도 조금은 안다'는 자신감이 생긴다.

AI 이후의 게임 체인저라고들 하는 양자 컴퓨터를 알고 싶으면, 입문용으로 괜찮은 것 같다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
코드 너머, 회사보다 오래 남을 개발자 - 소프트 스킬·개발문화·퍼스널 브랜딩으로 확보하는 결정적 경쟁력
김상기 외 지음 / 한빛미디어 / 2025년 6월
평점 :
장바구니담기


한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.

 

# 오늘의 책 📖

 

어느 분야에 종사하든, 일만 잘한다고 좋은 동료가 된다고 생각친 않는다.

결국 어떤 일이든 사람이 하는 것이니, 함께 하고 싶은 사람이 되는 게 먼저라고 생각한다.

(물론 일도 잘해야지) 

 

 

 

특히 개발 쪽은 코딩 잘 하고 설계 잘하면 장땡아니냐? 할 수 있지만,

실제로 팀 프로젝트를 해보면 자주 회의를 하면서 의견을 조율해가야하는 일이 많다.

 

기본적인 소통이 안 된다면, 개발을 얼마나 잘 하든 같이 프로젝트 하기 꺼려질 것이다.

내 생각엔 "개발을 잘 한다"는 말에는 커뮤니케이션이 원활하다라는 의미까지 포함인 것 같다.

 

 

그런 의미에서 빅테크 소속 선배님들로부터 소프트 스킬 뿐만 아니라

커리어를 쌓아가는데 도움이 될 조언들을 얻을 수 있다면 어떻게 하겠는가?

 

『코드 너머, 회사보다 오래 남을 개발자』를 통해 7명의 선배님들께 한 수 배워보자

 

 

 

# 목차 📋

 

1장부터 7장까지 있고, 장을 넘어갈 때마다 다른 빅테크 소속의 선배님의 조언으로 넘어간다.

총 3부에 걸쳐 소프트 스킬 + 커리어 성장 + 퍼스널 브랜딩에 대한 팁을 얻어갈 수 있다.

 

 

 

# 인상적이었던 부분 ✨

- 추천사에서 (박재호 CTO님, 이동욱 CTO님)

 

본격적인 조언이 이어지기 전에, 추천사에서 인상에 남았던 구절들이 있었다.

 

'사람을 위해 사람이 하는 일'

예전에 학교에서 박재호 CTO님 특강을 듣고 프레젠테이션에 더욱 자신감이 붙었었는데,

이번 추천사에서도 개발도 결국 사람이 하는 일이라는 걸 깨닫게 해주셨다.

 

 

'한 영역이라도 과락이면 불합격 → 최소 과락만은 면하자'

내가 평소에도 애용하는 인프런의 CTO 이동욱님이 남기신 말인데,

하나만 깊게 파면, 다른 게 약해도 괜찮지 않나? 라고 생각했던 나를 반성하게 만들었다.

일단 모든 영역에서 기본은 하자, 과락은 면해야한다는 태도를 잊지 않으려 한다.

 

 

- 각 장에서 (배문교님, 이수형(리사)님)

 

회의? 그거 그냥 사람들 모여서 하면 되는 거 아닌가? 라고 생각했다면

보이지 않는 곳에서 이미 누군가 매끄럽게 진행되도록 힘썼기에 알아차리지 못 한 것이다.

 

불편함없이 매끄럽게 회의가 진행되기 위한 사전 세팅과 안내, 진행같은 팁들을 알려주셨는데,

오.. 너무 좋아서 나도 취업하고 회의 준비할 때나 지금 진행하는 팀프젝 회의에서 써야겠다고 느꼈다.

 

이건 궁금하면 한번 직접 사서 읽어보는 걸 추천한다.

봐도 까먹을테니까 그때마다 보면서 체크리스트로 사용하면 좋을 것 같다.

 

 

 

두 번째는 우테코 리사 코치의 2장인데, 우테코 수료생 제우스와의 인터뷰에서 인상깊은 부분이 있었다.

 

중요한 건 완벽한 선택이 아니라, 그 선택을 믿고 책임지려는 태도

이 구절이 참 마음에 들었다.

 

 

그리고 제우스의 인터뷰를 읽으면서 나 또한 이전에는 혼자 해결하려는 성향이 강했는데,

팀프로젝트를 해보면서 팀원에게 도움을 요청하고, 고민을 나누는 게 좋다는 걸 깨닫게 됐다.

 

그럼에도 선택은 자기 몫이니, 자신을 믿고 선택에 책임을 지려는 태도가 가장 중요하다고 생각한다.

 

 

 

 

- 에필로그에서 (이동현님, 황성재님)

 

자기 PR에 무작정 나만 드러낼 게 아니라 회사의 가치까지 함께 연결할 수 있다면,

서로 win-win이고, 흐름이 더 자연스러워지지 않을까라는 말인데

자기 PR에서조차 이기적인 태도로는 내가 바라는 최고의 결과를 낼 수가 없구나를 또 깨닫게 됐다.

 

 

그리고 요즘 '내 회사도 아닌데 알게 뭐람'같은 태도가 만연한데,

주인 의식을 사장님 마인드가 아니라 프로로서의 태도로 받아들여 내 커리어를 대하자.

프로는 내가 만든 결과물에 책임을 져야 하고,
내가 하는 일에 책임지기 위해 그 일에서 최고가 되기 위해 노력해야 한다.

 

항상 이 구절을 떠올리면서 주인의 관점을 갖기 위해 노력해야겠다.

 

 

 

# 추천 독자

 

1. 취업이나 이직을 준비하는 사람,

2. 시니어로 성장하고 싶은 주니어,

3. 시니어 개발자

각각의 상황에 맞게 필요한 순서를 이미 책에서 구성해놓았더라

 

난 1번이긴 하지만, 그래도 다 가져가고 싶어서 1장부터 7장까지 다 읽었다

 

 

 

# 최종평 ✏️

개발 커리어뿐만 아니라 인생 철학에도 맞닿아있는 중요한 구절들이 많아서 좋았다.

모든 일은 결국 사람이 하는 것이고, 자신의 일과 선택에 책임을 지기 위해 최선을 다하자

출처: https://zzaekkii.tistory.com/42 [int main(){:티스토리]


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
다크 심리학
다크 사이드 프로젝트 지음 / 어센딩 / 2025년 7월
평점 :
장바구니담기


너무 내 취향인데? 마음에 든다

댓글(0) 먼댓글(0) 좋아요(3)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
실무에서 SQL을 다루는 기술 - PostgreSQL부터 MySQL, SQLite까지
마크 사이먼 지음, 조은옥 옮김 / 한빛미디어 / 2025년 6월
평점 :
장바구니담기


한빛미디어 서평단 <나는 리뷰어다> 활동을 위해 책을 협찬 받아 작성된 서평입니다.



1. 이 책은 어떤 책인가?


서두에서 기초 SQL 지식을 간략히 설명하고, 데이터 '가져오기 → 가공 → 분석' 흐름으로 이어진다.

특히 뷰, CTE, 윈도우 함수, 트리거, 피벗 테이블 등을 정리해 예제로 익힐 수 있다는 게 포인트다.




2. 어떤 부분이 특히 흥미로웠나?


윈도우 함수와 CTE(Common Table Expressions) 이건 학부생 수업에서는 잘 안 다루는 기능인데,

뷰, 서브쿼리, CTE 등 모듈형 쿼리 작성법과 복잡한 SQL을 구조화할 수 있게 설명하고 있다.


트리거, 피벗 테이블, 변수 활용같은 부분도 수업에서 다루지 않는 요소들이라 이 책을 통해 좀 더 알 수 있었다.




3. 추천 대상은 누구인가?


학부 데이터베이스 기초 과정을 막 수료한 학생이나,

SQL 초심자 혹은 주니어 개발자가 실제 쿼리를 작성하는 법을 익히기에 좋을 것 같다.

이 책 읽고 프로그래머스 SQL 코딩 테스트 문제들 쭉 풀어보면 아주 좋을 듯.




반면,

인덱스 설계, 실행 계획 분석, 쿼리 튜닝, DB 내부 구조 최적화 같은 성능 최적화 중심의 주제를 기대한다면 내용이 다소 부족하다.

인덱스 관련 언급은 거의 없는데다, 실행 계획 분석이나 리소스 최적화는 다루지 않기 때문이다.



사실 나는 이런 부분을 기대했던 터라 살짝 실망하긴 했지만 전반적으로 나쁘지는 않은 책이라 생각한다.

제목처럼 이 책은 이론과 성능 최적화 사이, SQL 활용에 초점을 맞추고 있는 단계의 책이다.


학부 DB 전공 수업 >> SQL 활용 (이 책) >>>>>>> DB 내부 구조 및 동작 방식 + 인덱스, 파티셔닝, 샤딩


실무에서 성능 측정, 인덱스 튜닝, 고급 DB 엔진 특성 이해가 목적이라면 

이 책보다는 Real MySQL이나 친절한 SQL 튜닝 같은 책이 더 알맞을 듯 하다.


그러나 SQL 작성에 익숙치 않고, 이제 막 이론을 배운 사람에겐 아주 좋을 것 같다!




4. 한 줄 평

SQL 입문자에게 실무 감각을 익히게 해주는, 그러나 내부 구조나 성능 튜닝을 기대했다면 조금 아쉬운 책


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
처음 처음 | 이전 이전 | 1 | 2 | 3 |다음 다음 | 마지막 마지막