프로그램을 읽는 기술
이와마츠 히로시 지음, 나민성 옮김 / 길벗 / 2025년 12월
평점 :
장바구니담기


AI시대에서는 프로그램을 잘 읽는 기술이 더욱 중요해졌습니다.

자동으로 생성되는 소스코드의 양도 늘어나고 있으며, 그것을 가이드 하고 요구사항도 잘 정리해야 하고

기존에 작성된 코드도 빠르게 분석해서 활용해야 합니다. 

예전에도 중요했지만, 지금은 조금은 다른 관점으로 더욱 중요하게 되었습니다 

프로그램을 잘 읽은 방법은 많은 프로그램 소스 코드를 보는 것이 제일 좋은 방법입니다.

하지만, 그 과정을 효율적으로 수행하는 방법은 있습니다. 

이책에서 그것을 배울수 있습니다.

책의 서문에 "AI가 만든 코드, 판단은 인간의 몫! 실무와 직결되는 읽은 힘을 길러라!"

지금 시대에 공감이 많이 되고, 정말 필요한 실력입니다. 책에서는 어떻게 그 방향성을 풀어내는지 살펴보려고 합니다

 목차를 살펴보기

1장 왜 프로그램을 읽는 힘이 필요한가?

2장 다른 사람의 프로그램을 읽는 것이 어려운 이유

3장 입력과 출력을 찾는 것이 요령

4장 프로그램 전체를 파악하는 요령

5장 코드를 한 줄씩 읽는 요령

6장 프로그램 읽기 실습(입문 수준)

7장 파이썬의 모듈 읽기

8 업무 시스템 읽기 실습

다 관심이 있는 주제이지만, 밑줄친 내용이 바로 실무에 활용할수 있는 부분으로 생각됩니다.

· 우리가 프로그래밍을 읽어야 하는 이유

1. 버그 수정/디버그

2. 기능 추가/사양변경

3. 소스 코드 리뷰

4. 코드 리팩토링

5. 다른사람의 코드 인수인계

6. 테스트 작성

7. 코드의 문서화

 

· 다른 사람의 프로그램을 읽기 어려운 7가지 요인

1. 설계할때 생각하는 방법의 차이

2. 프로그램 작성에 사용한 언어의 차이

3. 함수를 만드는 방법의 차이

4. 함수명, 변수명을 짓는 방법의 차이

5. 주석을 작성하는 방법의 차이

6. 입력과 출력을 생각하는 방법의 차이

7. 수준의 차이

7가지 사항에 하나하나 어떤 케이스인지 설명합니다. 우리는 코드를 읽기 어려운것이 모두 "수준차이"라고 생각할수 있습니다.

하지만, 경력이 많은 분들도 같은 어려움이 있을수 있습니다. 그러한 부분을 줄이기 위해서 7가지 요인을 살펴보면 좋습니다.

 

2장 까지는 왜 프로그램 분석이 필요한 이유를 살펴보았습니다.

 

 본적적으로 프로그램을 읽은 방법을 3장부터 살펴봅니다

· 전체를 파악하고 각각 그 근거로 각각의 코드를 살펴보는 것이 옳은 방식입니다.

 

· 분석전에 해야 할 일이 관련 문서를 찾아서 살펴보는 것이 중요하고 필요합니다. 다만 그런 문서조차 잘 관리되지 않는다면 어려움이 있을거 같습니다. 

 - 코드를 분석하기 위해서는 입출력을 분석, 변수 의미, 함수 읽기, 클래스 읽기 등을 코드 기준으로 케이스별로 살펴보고 어떻게 접근해서 해석해야 하는지 설명합니다.

 

· 숫자 맞추기 게임을 통해서, 코드를 기준으로 어떻게 프로그램이 개발되어 있는지 예측해보기도 하고, 읽어가면서 해당 코드를 각각 이해하면서 다른 관점으로 이해를 돕습니다.

· 파이션의 random모듈, calendar모듈로 작성된 randrange()함수, month()함수를 살펴보면서, 코드를 이해하는 것을 연습합니다.

현재 전세계에게 가장 많이 쓰는 python모듈을 살펴보는 것은 좋은 best practice를 분석하는것은 좋은 코드를 보는 방법을 살펴봅니다. 

다양한 오픈소스도 있고 살펴볼수 있는 좋은 소스는 매우 많이 있습니다. github 정말 좋은 소스가 많이 있습니다.

 

너무 서두를 필요 없고 하나하나 경험을 쌓이다 보면 실력으로 자연스럽게 수준이 올라갈수 있습니다.

책에서는 어떠한 부분을 주의깊게 살펴보고, 기존에 습관에서 놓치고 있다는 것을 체크할수 있습니다.

자신에게 맞는 방법을 계속 찾아보면서 실력을 늘릴수 있는 기준이 되는 책입니다.

다양한 언어가 새롭게 나와도 이러한 경험은 빠르게 적응할수 있는 경험을 가지게 됩니다.

출판사에서 도서를 제공받았습니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
한 걸음 앞선 일잘러가 지금 꼭 알아야 할 바이브 코딩 with 커서 - 웹 명함 제작부터 사내 스터디 관리 플랫폼까지 커서, n8n, MCP로 완성하는 나의 첫 바이브 코딩 올인원 실습서
김태헌 지음 / 길벗 / 2026년 2월
평점 :
장바구니담기


길벗 출판사에서 도서협찬을 받아서 리뷰를 진행했습니다.


바이브 코딩이 AI기술 발전으로 많이 알려지고 활용되고 있습니다.

누구나 이제 아이디어만 있으면 무언가를 만들어보고 시도해볼수 있습니디.

이 책은 프로그래밍 경험이 전혀 없고, 웹/앱에 대해서 몰라도 하나하나 설명해주기 때문에 큰 어려움이 없습니다.

결과물을 빠르게 확인하고 깃허브와 버셀에 실제 배포까지 진행을 하면서, 다양한 서비스를 만들어볼수 있는

경험과 자신감을 제공하고 있습니다.


실제 책도 취대한 쉽게 편하게 구성하시고, 이야기를 풀어 나가십니다.

바이브 코딩을 처음 접하면, 너무 많은 기술들이 소개되고 언급되고 있어서 혼돈이 생기게 되는데, 

이책은 그런 막연한 어려움을 딱 정리해서 소개해주는 내용이 많아서 초급자 분들도 정리가 쉽게 됩니다.

 

통합 도구형(IDE), 명령줄 터미널 형태인 에이전트 방식, 클라우드 형태 중에 이책에서는 가장 범용적은 IDE방식인 커서를 이용해서 

실습하고 구현합니다.

2장에서는 기본적으로 실제 개발에 필요한 개념들, 웹/앱의 서비스 동작 구조 이해, 프런트앤드 핵심 요소, 백앤드와 DB관련 기본 개념을 설명하는 것을 통해서, 단순히 바이브코딩을 통해서 나온 결과물을 경험하는 것이 아닌 실제 작업을 잘 시키기 위한 기본적인 소양을 쌓게 됩니다. 기본적으로 간단하게 개념을 잡고 가는 방향이니, 너무 부담스럽지 않습니다.

요즘 많이 사용되어지는 백엔드+DB의 통합기능인 파이어베이스, 슈퍼베이스라는 언급되어서 최신 기술 스택이 잘 반영되어 있습니다.

 

 

 실습 환경

· python, node, git을 설치합니다. 책의 예시는 윈도우 기반으로 설명됩니다. 맥에서 구성하는 것도 그렇게 어렵지 않습니다.

· 커서 환경

 

> AI모드 4가지 모드를 지원합니다.

 

> 각종 언어 모델을 연동하는 기능을 제공합니다.

  

 실습하기

· 명함만들기 기능 (커서에서 자체적으로 python으로 내부서버를 기동시킵니다)


 

쉽게 github에 올려서 배포하는 것을 쉽게 경험하실수 있습니다.

 

 다양한 실습 진행하기

· 바이브 코딩의 패턴 말하고(See) -> 실행하고(Run) -> 보는(See) 흐름을 가집니다.

· 간단한 패턴보다 복잡한 서비스를 하기 위한 Plan모드 사용법도 자세히 알아봅니다.

· 개인 브랜딩 사이트 만들기를 Plan모두로 작성하면서, github cli를 통해서 배포를 통해서 실습합니다.

 

사용하면서 발생될수 있는 다양한 에러상황을 정리한 내용은 뱌이브 코딩 사용시, 다양한 케이스를 살펴볼수 있어서 좋았습니다.

 

· 재무재표 시각화 및 AI분석하기

 - 우리는 다트DART, 전자공시시스템에 대해서 살펴본 경험이 많이 있으실겁니다. 

전자공시시스템에서도 오픈다트 키를 발급받을수 있습니다. https://opendart.fss.or.kr/

· 유튜브 댓글 AI분석 서비스

 - 구글 콘솔에서 API, OpenAI API키 발급받고 서비스 연동을 합니다.

 - 구현해야 하는 사항을 명확히 프롬프트 입력합니다.

 

PRD정의한 내용을 기반으로, 서비스 개발에 필요한 사항을 선택할수도 있고, 알아서 선택하게 할수도 있습니다.

 

이 책이 매우 좋은 점은 다양한 API를 활용하는 예시가 많다는 것입니다.

연동하는 사고를 확장하므로써 서비스를 기획하고 개발하는 확장성있는 생각을 가지게 됩니다.

API뿐만 아니라, 파이어베이스, n8n, github배포 및 cli확장, 버셀 등 다양한 부분을 실습하는 것이 좋았습니다.

입력 프롬프트가 잘 구성되어 있어서, 하나하나 실습하고 구현되는 모습을 눈으로 확인하며서 실제 바이브 코딩을 하게 됩니다.

기능을 좀더 구체화 해보고, 수정을 하면서 각자 원하는 기능을 추가할수 있게 처음 기본을 잘 학습할수 있는 책입니다.

책에서는 커서를 이용해서 진행을 하지만, 동일한 내용으로 클로드코드, Codex, 제미나이 cli를 이용해서 동일하게 프롬프트를 작성하고

실행해볼 수 있습니다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
기획에서 출시까지 FastAPI 개발 백서 - 서비스 요구사항 도출부터 TDD 방식의 개발, AWS/깃허브로 배포와 출시까지! 실무 흐름 그대로 따라가는 FastAPI 실전 프로젝트
차경묵(한날) 지음 / 길벗 / 2025년 11월
평점 :
장바구니담기


파이션 및 개발자로 유명하신 차경묵(한날)의 집필하신 책입니다.

FastAPI를 통해서 약속잡기 서비스를 기획하며, 개발을 진행하고 실제 운영환경에 배포하는 과정까지 모두 포함되어 있는 책입니다. 단순하게 FastAPI를 통한 API개발만을 다루는 책이 아닙니다. 실제 책의 장수는 600Page가 넘어갑니다. 

실제 선배님이 설명해주시듯이, 왜 이런 고민을 하고 이런 방식으로 개선이 필요한지, 다양한 파이션 환경에서 우리는 다양한 방식이 있고 라이브러리가 있는데, 저자분은 어떤 기준으로 이러한 것을 사용하게 되었는지 이전 히스토리도 설명해주는것이 좋았습니다.


fastapi에 대한 장단점 및 API 구현 방법 및 기능에 대해서 많은 설명이 있습니다.

서비스를 구성하는데 한가지만, 있어서는 불가능 합니다.

venv구성하는 방법 및 poetry, 기존 pip와 다른점과 비교

sqlmodel, sqlalchemy, pydantic를 사용하면서 기존 파이선 환경에서 어떻게 이런 다양한 연결고리가 있고

사용하는 방법, fastapi와 어떻게 개발을 할수있는지 친절하게 설명되어 있습니다.

alembic을 통해서 데이터 마이그레이션을 주기적으로 실습할수 있습니다.


중간중간 실습을 하게 되면, 그 과정별 작업된 사항을 체크하고 문제되는 부분을 파악하기 좋은 형태로 별도 커밋브랜치를 제공해주신느 것도 학습하는데 편리함을 제공합니다.

에시)  https://gilbut.co/c/25068686Dj



이책은 FastAPI를 사용해보려고 하는 분들만 보지 않고, 파이션 전체적인 환경을 살펴보기 위한 좋은 책입니다.

저자님이 경험하신 다양한 시행착오 및 좋은 가이드 방향이 책에 잘 녹여져 있어서, 어떠한 개발자든 한번 살펴보시면 도움이 되실 것 같아서 추천드립니다.





댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
코딩 자율학습 잔재미코딩의 파이썬 데이터 분석 입문 - Pandas, Plotly 사용부터 생성형 AI 활용법까지 한 권으로 배우는 데이터 분석 입문 코딩 자율학습
데이브 리 지음 / 길벗 / 2025년 4월
평점 :
장바구니담기


내용이 참 쉽게 구성되어 있습니다. 그래서 하나하나 실습하기도 좋고

파이션을 기본적으로 사용해야 할 내용이 잘 정리되어 있습니다.

데이터 분석을 위해서 다양한 라이브러리를 사용하는데, 

그것이 왜 필요하고 어떠한 목적으로 필요한지 설명되어져 있습니다.

그 과정을 통해서 실제 우리가 실제 분석해보고 싶은 실력을 경험할수 있습니다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
현장에서 통하는 도메인 주도 설계 실전 가이드 - 개발자 관점에서 설명한 실무에 강한 DDD 입문서!
마스다 토오루 외 지음, 이승환 옮김 / 길벗 / 2025년 8월
평점 :
장바구니담기


DDD에 대한 새로운 책이 출간되어서 살펴보려고 합니다.

일본에서 출간된 책이며, 저자분들은 총 6분이 공동집필을 하셨습니다.

예시로 나와있는 코드는 java코드이며, 책의 분량은 240Page정도 입니다.

 

우리는 새로운 방식으로 서비스 개발을 추구합니다. 기존에 널리 사용하였던 정형화된 방식에서 

서비스 규모의 확장성 및 유지보수 및 서비스 개발에 빠른 재활용성을 확보하기 위해서 노력을 합니다.

이러한 관점으로 도메인 주도 설계 즉 DDD가 요즘 많이 사용되고 있습니다.

 

새로운 업무로 이번에는 도메인 주도 설계 DDD방식으로 신규 서비스를 개발을 하는 것으로 정해졌다면

우리는 어떻게 해야 할까요? 무엇을 해야 좋을까요? java, python, node, Spring, Node같은 언어나 프레임워크가 아니여서 

관련 메뉴얼이 있을지? 어떤 방식으로 진행을 해야 원하는 방향대로 잘 설계가 된것인지?

어떻게 지식을 얻어야 할지 막연할것 같습니다. 그런 관점에서 이 책이 그러한 애로사항을 해결할수 있지 않을까 생각이 들었습니다.

 

 

 

■ 내용 살펴보기

· 책의 구성은 우선 개발서적이지만, 이론과 방향성을 설명하는 것에 많은 주안점이 있습니다. DDD가 프로그래밍 언어가 아니기 때문에 자연스럽습니다.

총 3개의 Chapter로 구성되어 있습니다.

 

1장 도메인 주도 설계 입문: 개념과 설계 방식 이해하기

2장 도메인 주도 설계 실천 가이드: 이론에 앞서 응용력을 기르자

3장 클린 아키텍처란 무엇인가: 개발에 활용할 수 있는 설계의 핵심을 알아보자

이론에 대해서 충분히 설명을 하고 다음 심화 단계를 통해서 업무에 활용할 수 있는 방향으로 구성되어 있습니다.

 

· 제일 중요한 도메인이 무엇인지 알아야 하고, 설명하고 있습니다.

바라보는 관점이 중요할것 같습니다. 애플리케이션 개발, 객체지향, 애자일 개발 세가지 관점으로 도메인 모델의 활용법을 살펴봅니다.

도메인 주도 설계는 프로그램 언어에 종속적이지 않습니다. 이 이야기를 풀어보면, java, python등 언어에 제약이 없는 부분입니다.

도메인을 학습할때 언급되는 다양한 키워드들이 있습니다. 유비쿼터스 언어, 경계 컨텍스트, 값 객체, 애그리게이트, 리포지터리 등 다양한  패턴은 소프트웨어를 설계하기 위한 도구 입니다.

 

확실하게 용어 및 개념을 이해하는 것이 중요한데, 이러한 것이 잘 정리되어있습니다.

 

 

비지니스의 복잡성과 난이도가 높아지면서, 이제는 자연스럽게 이러한 도메인 관점으로 접근하게 되는 것이라고 생각합니다.

결국 서비스 또는 프로젝트를 수행하는 이유는 그 목적에 맞는 비지니스를 적절한 시기에 제공하여서 원하는 것을 달성하기 위함입니다. 그것은 구매로 이어지는 매출생성일수도 있고, 서비스 편의성을 제공하는 관점일수도 있습니다.

 

 

· 도메인 모델과 다른 요소들을 연결시키는 다양한 개념이 있습니다. 이미 예전부터 이러한 고민들을 여러 사람들에 의해서 고민되고 있었습니다.

 - 도메인 모델 + 3계층 구조

 - 도메인 모델 + 포트 & 어댑터

 - 클린 아키텍처

우리는 도메인 주도 설계와 객체지향 프로그래밍 방식과 혼란이 있을수 있습니다. 이러한 부분도 책을 통해서 개념 정리가 되는 것도 도움이 됩니다.

 

· 업무 로직을 개발하는 관점에서 우리는 일반적으로 기존에는 트랜잭션이나 DB의 테이블을 기준으로 설계를 많이 하였는데, 도메인 모델은 다른 접근법인것을 알려줍니다.

 

비즈니스 활동을 모델로 만들기 위해서는 무언가 현장의 기준이 있어야 합니다.

 - 업무 프로세스 중점 두기

 - 업무 데이터에 중점 두기

 - 업무 규칙에 중점 두기

보통 어플리케이션 개발시 세가지 방법을 조합해서 사용을 하는데, 이러한 기준을 참고해서 우리는 모델 주도 설계의 구성 요소를 도출합니다. 서비스마다 모두 같은 정답을 가지고 있지 않고, 바라보는 관점으로 추출해내는 기준이 다르다보니 어려움이 있는 것은 자연스럽지만

우리가 각 요소를 어떻게 뽑아내고, 구성하는지 계속 구상을 해야 합니다.

 - 엔티티 : 기본 관심사

 - 값 객체 : 업무 규칙을 표현하는 기본 구성 요소

 - 컬렉션 객체  :다중성을 클래스로 표현

 - 애그리게이트 : 여러 객체의 조합

 - 분기 객체 : 조건 분기의 복잡성 표현

 - 모듈 : 전체를 정리하기

 

· MSA환경 및 쿠버네티스 환경이 확대되면서 자연스럽게 분산아키텍처 환경이 되고 있습니다. 서비스가 지금은 기존 모놀리식 아키텍처로 서비스 하지만, 사용빈도와 트래픽으로 변경될수 있습니다. 그래서 처음부터 모놀리식를 도입하지만, 향후를 대비해서 도메인 주도 설계를 통해서 개발을 진행한다면, 추후에 별다른 변경없이 분선환경으로 이관될수 있는 환경을 처음부터 도입하려고 하는 요구가 있습니다.

 

책의 제목처럼 현장에서 적용할수 있는 이런 케이스들에 대한 내용을 통해서 실제 업무 환경에 도입을 할때 검토시 도움이 됩니다.

이미 예상하고, 경험해보는 것이 시행착오를 줄이는 가장 좋은 방법이기 때문입니다.

 

· 도메인 주도 설계의 구현은 도메인을 깊이 이해하는 것부터 시작합니다. 그래서 바로 서비스에 도입하는 것이 어려운 이유이기도 합니다.

도메인을 이해하기 위한 몇가지 방법이 있지만, 쉽게 잘 적용이 되지 않습니다. 2장에서는 DDD의 개요을 다시 확인하고, 실제 사례를 통해 DDD의 주요 기법을  조금더 상세하게 설명을 합니다.

 - DDD의 근간을 이루는 '유비쿼터스 언어'

 - 도메인 발견을 위한 '이벤트 스토밍'

 - 이벤트 스토밍으로 얻은 지식을 코드화 하기 위한 '이벤트 소싱'

이 세가지 효과적인 기법을 통해 DDD적용 하기 위한 내용으로 구성됩니다.

 

코드적인 부분은 책에 많이는 없지만, 아래와 같은 예시들이 개발적으로 이해들 돕기 위해서 구성되어 있습니다.

우리는 전통적인 구현방식을 개선하려고 하는 것이기 때문에 코드적인 흐름은 AS-IS분석에 도움이 됩니다.

 

3장에서는 클린아키텍처가 나옵니다. 개발자분들은 어떤 부분이 클린 아키텍처 이고, 어떤 부분이 도메인 주도 설계인지 명확하게 구분할수 있어야 하며, 서비스별 도입하려고 하는 방향성이나 범주를 판단하고 잘 구분지어야 합니다. DDD프로젝트에 대한 하나의 정책이고, DDD를 하다보면, 클린아키텍처의 특징들이 곳곳에서 보이는데, 클린 아키텍처 자체가 DDD의 목표는 아니기 때문에, DDD가 개발 방향성이라면 클린 아키텍처는 자연스럽게 그 결과로 나온 구조적인 형태의 결과물입니다. 

 - 클린 아키텍처의 본질인 SOLID 원칙적으로 살펴보기

 - 소스코드로 클린 아키텍처 핵심 도출하기

 - 강한, 느슨한 결함 확인하기

새로운 도입 전에 고려해볼 사항들을 정리해봅니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo