골든래빗은 더 탁월한 가치를 제공하는 콘텐츠 프로덕션 & 프로바이더 입니다. 골든래빗은 취미, 경제, 수험서, 만화, IT 등 다양한 분야에서 책을 제작하고 있습니다.골든래빗은 더 탁월한 가치를 제공하는 콘텐츠 프로덕션 & 프로바이더 입니다. 골든래빗은 취미, 경제, 수험서, 만화, IT 등 다양한 분야에서 책을 제작하고 있습니다.

OAuth를 사용한 구글 로그인 인증하기 1편 – OAuth 소개와 준비하기

2023년 8월 7일조회 1403

이 글은 《요즘 바이브 코딩 안티그래비티 완벽 가이드》에서 발췌했습니다.

요즘 바이브 코딩 안티그래비티 완벽 가이드

요즘 바이브 코딩 안티그래비티 완벽 가이드

ISBN 9791194383734지은이 최지호(코드팩토리)28,000
교보문고예스24알라딘

본 글에서는 인증 정보를 외부 저장소에서 받아와서 인증하는 방법을 알아봅니다. 1편에서는 개방형 인가 표준인 OAuth를 알아보고, 구글의 OAuth 서비스를 우리 애플리케이션에 적용하겠습니다.

OAuth를 사용한 구글 로그인 인증하기 1편 – OAuth 소개와 준비하기

이 글은 [Node.js 백엔드 개발자 되기]에서 발췌했습니다.

골든래빗 출판사

본 글에서는 인증 정보를 외부 저장소에서 받아와서 인증하는 방법을 알아봅니다. 1편에서는 개방형 인가 표준인 OAuth를 알아보고, 구글의 OAuth 서비스를  사용하기 위한 준비 방법을 알아보겠습니다.

학습 코스

OAuth 소개

OAuth는 Open Authorization의 약자로서 2006년에 구글과 트위터가 만든 개방형 인가의 표준입니다. 최근의 웹사이트들은 네이버, 구글, 페이스북, 카카오톡 로그인을 지원하는 경우가 많습니다. 바로 소셜 로그인 기능입니다. 소셜 로그인은 유저가 해당 웹사이트에 가입한 ID와 패스워드 대신 다른 사이트에 있는 유저 정보를 사용해 인증하는 기능입니다.

▼ 소셜 로그인을 지원하는 서비스 예시

인증을 구현하기 위해 OAuth를 많이 사용하긴 합니다만, OAuth는 인증이 아니라 인가의 관점에서 보아야 합니다. 소셜 로그인 후 팝업이 뜨면서 권한을 요청하는 화면을 보신 적이 있을 겁니다. 이때 인증에 필요한 정보인 이름, 이메일 정보 등을 다른 사이트에 요청합니다.

▼ 인증 요청 예시

OAuth는 1.0, 2.0, 2.1 버전이 있으며 현재 2.0 버전을 가장 많이 사용합니다. 별도의 언급이 없다면 이 책에서 OAuth는 OAuth 2.0을 말합니다. OAuth 2.0 OAuth2로 표기해 사용하기도 합니다. 정확한 사양은 RFC 67491에 정리되어 있습니다.

OAuth2를 본격적으로 알아보기 전에 인증, 인가, 액세스 토큰(access token), 리프레시 토큰(refresh token) 등의 주요 용어부터 알아봅시다.

인증: 리소스에 접근 자격이 있는지 검증하는 과정입니다. OAuth에서 리소스는 보호된 정보를 의미합니다.

인가: 자원에 접근할 권한을 부여하는 과정입니다. 인가가 완료되면 리소스의 접근 권한 정보가 있는 액세스 토큰을 클라이언트에게 보내줍니다.

액세스토큰: 리소스 서버에서 리소스 소유자의 보호된 정보를 획득할 때 사용하는 만료 기간이 있는 토큰입니다.

리프레시 토큰: 액세스 토큰이 만료되었을 때 갱신하는 용도로 사용하는 토큰입니다. 액세스 토큰보다 만료 기간을 길게 가져갑니다.

리소스소유자(resource owner): 리소스는 사용자의 보호된 정보를 말하며 이런 정보에 접근하도록 자격을 부여하는 사람을 말합니다. 즉 ‘OAuth에서는 사용자가 리소스 소유자다’라고 생각하면 됩니다.

클라이언트: 리소스를 사용하려고 접근을 요청하는 애플리케이션을 의미합니다.

리소스 서버(resource server): 사용자의 보호된 자원을 가지고 있는 서버입니다.

인가 서버(authorization server): 인증/인가를 수행하는 서버로 클라이언트의 접근 자격을 확인하고 액세스 토큰을 발급해 권한을 부여합니다.

인가 서버와 리소스 서버의 조합을 OAuth2 프로바이더라고 부르기도 합니다.

OAuth 프로토콜 흐름

용어를 살펴봤으니 OAuth 프로토콜의 흐름을 알아보겠습니다.

▼ OAuth 프로토콜의 흐름

❶ 클라이언트가 리소스 소유자에게 권한 부여를 요청합니다. ❷ 클라이언트는 권한을 부여받습니다. 권한 부여 유형은 다음과 같이 4가지입니다.

인증 코드(Authorization Code) 사용하기

암묵적인(Implicit) 방법

리소스 소유자의 암호 자격증명(Resource Owner Password Credentials)

클라이언트 자격증명(Client Credentials)

구글 인증에는 인증 코드 방법을 사용합니다. ❸ 클라이언트는 ❷에서 받은 정보를 통해 액세스 토큰을 인가 서버에 요구합니다. ❹ 인가 서버에서는 클라이언트를 인증하고 유효성 검사를 합니다. 유효한 경우 액세스 토큰을 발급합니다. ❺ 클라이언트가 리소스 서버에 보호된 리소스를 요청합니다. 요청 시에는 액세스 토큰을 사용합니다. ❻ 리소스 서버는 액세스 토큰의 유효성을 검사하고유효한 경우 보호된 자원 정보를 보내줍니다.

액세스 토큰을 재발행하는 흐름

다음으로 액세스 토큰 만료 시 리프레시 토큰을 사용해 액세스 토큰을 재발행하는 흐름을 알아보겠습니다.

▼ 액세스 토큰 만료 시 리프레시 토큰을 사용한 액세스 토큰 재발행 흐름

❶ 클라이언트는 인가 서버에 인증을 하고 액세스 토큰을 요청합니다. ❷ 인가 서버는 클라이언트를 인증하고 유효성 검증을 한 후에 문제가 없으면 액세스 토큰과 리프레시 토큰을 발급합니다. ❸ 클라이언트가 리소스 서버에 액세스 토큰을 보내면서 보호된 리소스를 요청합니다. ❹ 리소스 서버가 액세스 토큰의 유효성을 검증하고 유효한 경우 리소스를 내려줍니다. ❸ 과 ❹ 단계는 액세스토큰이 만료될 때까지 반복됩니다. ❺ 액세스 토큰 만료 시에도 클라이언트는 액세스 토큰을 리소스서버에전달하기도합니다.클라이언트가액세스토큰이만료된것을알고있다면 ❼로 가게 되고, 모른다면 만료된 액세스 토큰을 전달합니다. ❻ 리소스 서버에서는 액세스 토큰이 만료되었으므로 잘못된 토큰 에러를 발생시킵니다.

❼ 클라이언트에서는 액세스 토큰이 만료되어 에러가 발생했으므로 리프레시 토큰을 인가 서버로전달해 새 액세스 토큰을 요청합니다. ❽ 인가 서버는 리프레시 토큰이 유효한 경우 새로운 액세스토큰을 발급해줍니다. 선택적으로 리프레시 토큰도 재발급합니다.

OAuth의 프로토콜의 흐름을 알아보았습니다. 이어서 Nest.js에서 OAuth를 사용해 어떻게 인증을 구현하는지 알아봅시다.

구글 OAuth를 사용하기 위한 준비하기

클라이언트에서 구글의 OAuth 인가 서버에 접속하려면 OAuth 클라이언트 ID와 비밀번호가 필요합니다. 이를 위해서는 ❶ 구글 클라우드에서 프로젝트를 생성하고, ❷ OAuth 동의 화면을 생성하고, ❸ 클라이언트 ID를 생성해야 됩니다.

구글 클라우드에서 프로젝트 생성하기

Todo

01 브라우저로 구글 클라우드(console.cloud.google.com/)에 접속해 로그인합니다. 가입하지 않은 분들은 안내에 따라 가입을 진행하고 나서 로그인해주세요.

02 ❶ [프로젝트 선택] → ❷ [새 프로젝트]를 클릭합니다.

03 프로젝트명을 ❶ 에 입력하고 ❷ [만들기]를 클릭합니다. 그러면 프로젝트가 생성됩니다.

OAuth 동의 화면을 만들기

Todo

01 프로젝트명을 ❶ 에 입력하고 ❷ [만들기]를 클릭합니다. 그러면 프로젝트가 생성됩니다.

02 OAuth 동의 화면에서 1 ‘외부’를 선택하고 2 [만들기]를 클릭합시다.

03 필수값인 ❶ 앱 이름, ❷ 사용자 지원 이메일, ❸ 개발자 연락처 정보만 입력하고 ➍[저장후계속]버튼을 클릭합시다.

04 ‘범위’에서는 설정 없이 [저장 후 계속] 버튼을 눌러주세요.

05 ‘테스트 사용자’에서도 설정 없이 [저장 후 계속]을 눌러서 진행해줍니다.

06 OAuth 동의 화면 설정에 대한 ‘요약’ 화면이 보이면 완성입니다. [대시보드로 돌아가기] 버튼을 눌러주세요.

OAuth 클라이언트의 ID와 비밀번호 만들기

Todo

01 왼쪽 메뉴에서 ❶ [사용자 인증 정보] → ❷ [사용자 인증정보 만들기] → [OAuth 클라이언트 ID]를 눌러서 인증 정보 설정 화면으로 이동합니다.

02 OAuth 클라이언트 ID 만들기입니다. ❶ ‘애플리케이션 유형’을 ‘웹 애플리케이션’으로 선택해주세요. ❷ ‘승인된 자바스크립트 원본’에는 서버 주소를 입력합니다(여기서는 https://localhost:3000으로 했습니다). ❸ ‘승인된 리디렉션 URI’에는 구글 인증 후 리디렉션할 URL을 입력해줍니다(여기서는 http://localhost:3000/auth/google로 했습니다). ❹ [만들기] 버튼을 클릭해서 OAuth 클라이언트를 생성합니다.

OAuth 클라언트가 생성됐다는 팝업이 뜹니다. 클라이언트 보안 비밀번호는 절대로 유출되면 안 되니 주의해야 합니다.

이제 구글 OAuth를 사용할 수 있는 준비가 되었습니다.

2편에서는 본격적으로 구글 OAuth 구현하고, 테스트해 봅시다.

2편을 진행하기에 앞서 《[되기] Node.js 백엔드 개발자 되기》의 9장과 10장을 참고하면 더 쉽게 학습 코스를 따라오실 수 있습니다.

《[되기] Node.js 백엔드 개발자 되기》 바로가기 →

박승규

아직도 개발이 재미 있는 15년차 천상 개발자입니다. 웹 개발, 게임 백엔드 개발, 플랫폼 및 인프라 개발 등 다양한 영역을 경험했습니다. 현재는 카카오엔터테인먼트에서 백엔드 개발자로 일합니다.

현) 카카오엔터테인먼트 페이지 서비스 개발팀

전) 트리노드 (포코팡, 포코포코) 서버 개발자

전) NHN Japan 플랫폼 개발팀

BACKEND BOOTSTRAP BSON DOTENV EXPRESS GOOGLEAUTHGUARD GOOGLESTRATEGY HTTP 메서드 HTTP 헤더 JAVASCRIPT JIT 컴파일러 JPA js JSON JWT LIBUV MONGODB MULTER NestJS NODE.JS NODEMON NOSQL NPM NPX OAUTH RDB REST API RESTFUL API SOCKET.IO SQLITE TYPEORM TYPESCRIPT V8엔진 VSCODE YAML 개발자 네스트제이에스 노드 노드제이에스 놉엔드 높엔드 롱폴링 리눅스 명령어 리포지토리 몽고DB 몽고디비 몽구스 믹스인 백엔드 백엔드개발 비동기 처리 비주얼 스튜디오 코드 서버사이드 세션 스레드 스프링 스프링부트 스프링부트3 습엔드 엔티티 웹 개발 웹 개발자 웹 프로그래밍 웹사이트 웹소켓 의존성 주입 이그니션 이벤트 루프 익스프레스 인가 인증 자바스크립트 채팅 컴공 코딩 콜백 콤파스 쿠키 타입스크립트 터보팬 토큰 폴링 프로바이더 홈페이지

Related News

[Agent] AI 에이전트 프로토콜, 구글 A2A 개념부터 원리 실습하기

[Python] 파이썬으로 엑셀 다루기 | ❷ 엑셀 데이터 사용하기

[Python] 파이썬으로 엑셀 다루기 | ❶ 엑셀 데이터 사용하기

[Python] 아나콘다 설치하기 | Anaconda, 파이썬, 주피터 노트북, 단축키

골든래빗 2023-08-07

📚 더 읽기

저자 소개

최지호(코드팩토리)

<p><strong>저자</strong> 최지호(코드팩토리)</p><p>임페리얼 한국 지사에서 소프트웨어 엔지니어로 일했습니다. 현재 주식회사 코드팩토리를 창업하여 개발을 하면서 초보자뿐만 아니라 현직 개발자에게도 유용한 개발 강의를 제작합니다. 〈2022 인프런 Rookie of the Year〉, 〈2023 베스트셀러〉, 〈2024 패스트캠퍼스 어워드〉를 수상했으며 2024년 기준 2만 명이 넘는 수강생을 보유하고 있습니다.</p><p><strong>_SNS </strong></p><p>__ Official : codefactory.ai</p><p>__ Facebook : fb.com/serendipity111011</p><p>__ YouTube : youtube.com/@codefactory_official</p><p>__ Blog : blog.codefactory.ai</p><p>__ GitHub : github.com/orgs/codefactory-co</p><p>__ : open.kakao.com/o/gg2S2GBc</p><p>__ : open.kakao.com/o/gDUhYNDh</p><p><br></p><p><strong>_주요 저서 </strong></p><p>__ 《코드팩토리의 플러터 프로그래밍(3판)》</p><p>__ 《요즘 바이브 코딩 클로드 코드 완벽 가이드》</p><p><br></p><p><strong>_주요 강의</strong></p><p>__ 코드팩토리의 Flutter 앱개발 초급</p><p>__ 코드팩토리의 Flutter 앱개발 중급</p><p>__ 코드팩토리의 9시간만에 끝내는 Javascript 풀코스</p><p>__ 코드팩토리의 8시간만에 끝내는 Typescript 풀코스</p><p>__ 코드팩토리의 백엔드 아카데미 : 한 번에 끝내는 NestJS 패키지 - 기초부터 MSA까지</p>

📚요즘 바이브 코딩 안티그래비티 완벽 가이드》 자주 묻는 질문

Q.안티그래비티라는 코딩 에이전트가 정확히 무엇인가요? 그리고 기존 코딩 방식과 어떤 차이가 있나요?

안티그래비티는 구글에서 개발한 차세대 코딩 에이전트입니다. 단순히 코드를 생성해주는 수준을 넘어, 사용자의 의도를 파악하고 디자인, 구현, 테스트, 배포까지 전 과정을 지원합니다. 기존 코딩 방식은 개발자가 직접 모든 코드를 작성하고 디버깅해야 했지만, 안티그래비티를 활용하면 AI가 코드 생성 및 문제 해결을 도와 개발 속도를 혁신적으로 향상시킬 수 있습니다. 특히, 구글 스티치와 연동하여 UI 디자인을 쉽게 구현하고, 제미나이, 클로드, GPT 등 다양한 AI 모델을 활용하여 더욱 강력한 기능을 제공합니다. 이 책에서는 안티그래비티를 활용한 바이브 코딩의 기초부터 고급 활용법까지 상세하게 다루고 있습니다. AI 에이전트를 200% 활용하는 TCREI 프롬프팅 프레임워크부터 아티팩트 시스템 활용법, 그리고 RAG 기반 챗봇 구축까지, 안티그래비티를 활용한 다양한 예제를 통해 실전 감각을 익힐 수 있습니다. 코딩 생산성을 극대화하고 싶다면 《요즘 바이브 코딩 안티그래비티 완벽 가이드》를 통해 안티그래비티를 마스터해보세요!

Q.AI 에이전트를 효과적으로 활용하기 위한 프롬프트 엔지니어링이 중요하다고 들었습니다. TCREI 프롬프팅 프레임워크는 무엇이며, 어떻게 활용해야 AI 에이전트의 능력을 최대한으로 끌어낼 수 있나요?

TCREI 프롬프팅 프레임워크는 Task(작업), Context(맥락), Requirement(요구사항), Example(예시), Iteration(반복)의 약자로, AI 에이전트에게 명확하고 구체적인 지시를 내리기 위한 프레임워크입니다. 각 요소들을 체계적으로 구성하여 프롬프트를 작성하면 AI 에이전트가 사용자의 의도를 정확하게 파악하고, 원하는 결과를 더욱 효과적으로 생성할 수 있습니다. 예를 들어, Task에는 '랜딩 페이지 디자인', Context에는 '스타트업 회사 소개', Requirement에는 '세련되고 현대적인 디자인', Example에는 '경쟁사 랜딩 페이지 URL', Iteration에는 '피드백 반영 후 수정'과 같이 구체적인 정보를 제공하는 것입니다. 《요즘 바이브 코딩 안티그래비티 완벽 가이드》에서는 TCREI 프롬프팅 프레임워크를 자세히 설명하고, 다양한 예시를 통해 실제로 어떻게 적용해야 하는지 보여줍니다. 또한, 제미나이 3 프로와 플래시를 오가는 효율적인 모델 스위칭 전략까지 제시하여, AI 에이전트의 능력을 200% 이끌어낼 수 있도록 돕습니다. AI 에이전트 활용 능력을 향상시키고 싶다면, 이 책을 통해 TCREI 프롬프팅 프레임워크를 완벽하게 이해하고 실전에 적용해보세요.

Q.스티치라는 도구가 UI 디자인에 활용된다고 하는데, 코딩 없이도 디자인이 가능한가요? 스티치를 안티그래비티와 함께 사용하면 어떤 시너지를 얻을 수 있나요?

구글 스티치는 코딩 없이도 직관적인 UI 디자인을 가능하게 하는 강력한 도구입니다. 드래그 앤 드롭 방식으로 컴포넌트를 배치하고 속성을 설정하여 웹사이트나 앱의 UI를 쉽게 만들 수 있습니다. 스티치의 가장 큰 장점은 디자인한 UI를 안티그래비티와 바로 연동하여 코드를 생성할 수 있다는 점입니다. 스티치에서 디자인한 내용을 안티그래비티에 전달하면, AI가 자동으로 해당 디자인에 맞는 코드를 생성해줍니다. 이를 통해 개발자는 디자인 작업에 소요되는 시간을 절약하고, 코드 구현에 더욱 집중할 수 있습니다. 《요즘 바이브 코딩 안티그래비티 완벽 가이드》에서는 스티치를 활용하여 랜딩 페이지, 블로그, 대시보드 등 다양한 웹 서비스를 디자인하고, 안티그래비티로 코드를 구현하는 과정을 상세하게 보여줍니다. 디자인 실력이 부족하더라도 스티치를 통해 멋진 UI를 만들고, 안티그래비티와 함께 빠르고 효율적으로 웹 서비스를 개발할 수 있습니다. 디자인과 개발 능력을 동시에 향상시키고 싶다면 이 책을 통해 스티치와 안티그래비티의 시너지를 경험해보세요.

Q.RAG 기반 챗봇 구축에 대한 내용이 있던데, RAG가 무엇이고, 챗봇 개발에 어떻게 활용되는 건가요?

RAG(Retrieval-Augmented Generation)는 검색 증강 생성 모델로, 외부 지식 베이스에서 정보를 검색하여 생성 모델의 답변을 보강하는 기술입니다. RAG를 챗봇 개발에 활용하면 챗봇이 단순히 미리 학습된 데이터에 의존하는 것이 아니라, 최신 정보나 특정 도메인 지식을 검색하여 답변에 반영할 수 있습니다. 예를 들어, 기업의 제품 매뉴얼이나 FAQ를 RAG 기반 챗봇에 연결하면, 고객 문의에 대해 정확하고 최신의 정보를 제공할 수 있습니다. 《요즘 바이브 코딩 안티그래비티 완벽 가이드》에서는 RAG 기반 챗봇을 구축하는 방법을 자세하게 설명합니다. 안티그래비티를 활용하여 RAG 파이프라인을 구축하고, 특정 데이터 소스에서 정보를 검색하여 챗봇의 답변을 풍부하게 만드는 과정을 단계별로 안내합니다. 또한, 챗봇의 성능을 평가하고 개선하는 방법, 다양한 데이터 소스와 연동하는 방법 등 RAG 기반 챗봇 개발에 필요한 모든 지식을 제공합니다. 챗봇 개발 능력을 향상시키고, 더욱 똑똑한 챗봇을 만들고 싶다면 이 책을 통해 RAG 기술을 마스터해보세요.

Q.책에서 랜딩 페이지와 블로그 구축을 다룬다고 하는데, 초보자도 쉽게 따라할 수 있도록 자세한 설명이 되어 있나요?

《요즘 바이브 코딩 안티그래비티 완벽 가이드》는 코딩 경험이 없는 초보자도 쉽게 따라할 수 있도록 랜딩 페이지와 블로그 구축 과정을 매우 자세하게 설명합니다. 단순히 코드만 나열하는 것이 아니라, 각 단계별로 필요한 개념과 원리를 명확하게 설명하고, 실제 화면을 캡처하여 시각적으로 이해하기 쉽도록 구성했습니다. 특히, 스티치를 활용하여 랜딩 페이지와 블로그의 UI를 디자인하고, 안티그래비티를 통해 코드를 구현하는 과정을 단계별로 안내합니다. 디자인 감각이 부족하더라도 스티치의 직관적인 인터페이스를 통해 멋진 랜딩 페이지와 블로그를 만들 수 있으며, 안티그래비티의 도움을 받아 코딩에 대한 부담 없이 웹사이트를 구축할 수 있습니다. 또한, 데이터베이스 설정, 배포 서비스 설정 등 초보자가 어려워하는 부분에 대한 자세한 설명과 문제 해결 방법까지 제공하여, 막힘 없이 따라할 수 있도록 돕습니다. 웹 개발 입문자라면 이 책을 통해 랜딩 페이지와 블로그를 직접 만들어보면서 웹 개발의 기초를 탄탄하게 다져보세요.

Q.결제 시스템 연동 및 권한 시스템 구현에 대한 내용이 있던데, 실제 서비스에 바로 적용할 수 있을 정도로 실용적인 정보인가요?

《요즘 바이브 코딩 안티그래비티 완벽 가이드》는 실제 서비스에 즉시 적용할 수 있을 정도로 실용적인 정보를 제공합니다. 단순히 이론적인 내용만 다루는 것이 아니라, 현업 개발자가 실제 서비스 개발 과정에서 겪는 어려움을 해결하고, 실제 서비스에 적용 가능한 수준의 코드를 제공합니다. 특히, 결제 시스템 연동 및 권한 시스템 구현 부분에서는 실제 서비스에서 많이 사용되는 결제 API를 활용하여 결제 기능을 구현하고, 사용자 역할에 따라 접근 권한을 제어하는 방법을 자세하게 설명합니다. 단순히 코드를 복사-붙여넣기 하는 수준을 넘어, 각 코드의 의미와 작동 원리를 명확하게 설명하여, 실제 서비스에 맞게 코드를 수정하고 응용할 수 있도록 돕습니다. 또한, 보안 취약점을 예방하고 안전한 서비스를 구축하기 위한 팁과 노하우도 제공합니다. 실제 서비스 개발 경험을 쌓고 싶거나, 현재 운영 중인 서비스의 기능을 개선하고 싶다면 이 책을 통해 결제 시스템 연동 및 권한 시스템 구현 능력을 향상시켜보세요.

Q.클린 아키텍처, 리팩터링, TDD 등 개발 방법론에 대한 내용도 포함되어 있나요? 좋은 코드를 작성하기 위한 원칙들을 배우고 싶습니다.

《요즘 바이브 코딩 안티그래비티 완벽 가이드》는 클린 아키텍처, 리팩터링, TDD(테스트 주도 개발) 등 좋은 코드를 작성하기 위한 다양한 개발 방법론을 다룹니다. 단순히 방법론을 소개하는 것에 그치지 않고, 안티그래비티를 활용하여 실제로 어떻게 적용할 수 있는지 구체적인 예시를 통해 보여줍니다. 클린 아키텍처를 통해 코드의 의존성을 줄이고 유지보수성을 높이는 방법, 리팩터링을 통해 코드를 개선하고 가독성을 향상시키는 방법, TDD를 통해 버그를 줄이고 안정적인 코드를 만드는 방법을 단계별로 설명합니다. 또한, 코드 리뷰, 코드 컨벤션, 디자인 패턴 등 좋은 코드를 작성하기 위한 다양한 원칙들을 소개하고, 실제 프로젝트에 적용할 수 있도록 돕습니다. 안티그래비티를 활용하여 빠르게 코드를 생성하는 것도 중요하지만, 생성된 코드를 개선하고 유지보수하기 쉽도록 만드는 것도 매우 중요합니다. 이 책을 통해 좋은 코드를 작성하기 위한 원칙들을 배우고, 안티그래비티를 활용하여 더욱 효율적이고 안정적인 서비스를 개발해보세요.