이미 소장하고 있다면 판매해 보세요.
옮긴이 머리말 xi
추천사 xiii 베타리더 후기 xvi 이 책에 보내는 찬사 xviii 추천 서문 xix 시작하며 xxii 감사의 글 xxx 표지에 대하여 xxxii CHAPTER 1 친환경 소프트웨어 소개 1 1.1 IT 업계에서 친환경이란 무엇을 의미할까? 1 1.2 우리의 신념 2 __1.2.1 2장: 구성 요소 3 / 1.2.2 3장: 코드 효율성 4 / 1.2.3 4장: 운영 효율성 8 / 1.2.4 5장: 탄소 인식 13 / 1.2.5 하드웨어 효율성 14 / 1.2.6 7장: 네트워크 16 / 1.2.7 8장: 좀 더 친환경적인 머신러닝, Al, LLM 16 / 1.2.8 9장: 측정 17 / 1.2.9 10장: 모니터링 17 / 1.2.10 11장: 부수 효과와 공동의 이익 17 / 1.2.11 12장: 친환경 소프트웨어 성숙도 매트릭스 18 / 1.2.12 13장: 나아갈 방향 18 CHAPTER 2 구성 요소 20 2.1 현재 우리가 여기에 있는 이유: 탄소 20 __2.1.1 온실가스 20 / 2.1.2 날씨 vs. 기후 23 / 2.1.3 지구온난화는 기후변화와 어떻게 관련 있는가? 25 / 2.1.4 기후변화 모니터링 25 2.2 전기의 기초 지식 27 __2.2.1 일, 에너지, 전기, 계산서 27 / 2.2.2 고탄소 및 저탄소 에너지 28 / 2.2.3 에너지 효율을 어떻게 개선할 수 있을까? 29 2.3 소프트웨어 엔지니어를 위한 하드웨어 101 33 __2.3.1 물리적인 측면 33 / 2.3.2 운영 측면 35 2.4 준비 완료 38 CHAPTER 3 코드 효율성 39 3.1 효율성이 전부일까? 39 3.2 코드 효율성이란 무엇일까? 40 __3.2.1 대부분의 코드는 왜 의도적으로 비효율적일까? 40 / 3.2.2 코드 효율성의 이점 42 / 3.2.3 개발자 생산성 43 3.3 배경: 초고효율 코드 45 __3.3.1 좋은 예시 46 / 3.3.2 성능 vs. 효율성 vs. 친환경 47 3.4 올바른 플랫폼 선택하기 52 3.5 친환경 디자인 패턴 사용 52 __3.5.1 너무 많은 계층 피하기 53 / 3.5.2 마이크로서비스를 주의하라 53 / 3.5.3 비효율적인 서비스와 라이브러리의 교체 56 / 3.5.4 너무 많이 수행하거나 저장하지 말라 57 / 3.5.5 사용자 기기의 활용 58 / 3.5.6 머신러닝 관리 59 / 3.5.7 효율성의 큰 문제점 61 __3.6 요약 64 CHAPTER 4 운영 효율성 67 4.1 기계와의 전쟁 67 __4.1.1 매력적인 방안 69 / 4.1.2 기술 69 / 4.1.3 머신 활용도 70 / 4.1.4 멀티테넌시 81 / 4.1.5 서버리스 서비스 82 / 4.1.6 하이퍼스케일러와 수익 82 / 4.1.7 사이트 신뢰성 엔지니어링 관행 83 / 4.1.8 라이트스위치옵스 84 / 4.1.9 위치, 위치, 위치 86 / 4.1.10 복원력의 반격 87 / 4.1.11 친환경 운영 도구와 기술 89 CHAPTER 5 탄소 인식 92 5.1 전력의 탄소 집약도 93 __5.1.1 탄소 집약도의 변동성 95 / 5.1.2 전력 수요 96 / 5.1.3 도구 98 5.2 수요 이동 100 __5.2.1 시간 이동 101 / 5.2.2 위치 이동 103 5.3 수요 형성 104 5.4 반대 의견 106 __5.4.1 위치 이동은 까다로울 수 있다 106 5.5 실제 사례 107 __5.5.1 구글 108 / 5.5.2 Xbox 108 / 5.5.3 아이폰 109 / 5.5.4 탄소 해커톤 22 109 5.6 탄소 인식 컴퓨팅의 팬이 되셨나요? 111 CHAPTER 6 하드웨어 효율성 112 6.1 내재 탄소 113 __6.1.1 장치 수명 114 / 6.1.2 소프트웨어 정의 노후화 116 / 6.1.3 클라우드 애플리케이션과 서비스 118 / 6.1.4 자체 호스팅 데이터 센터 120 / 6.1.5 특수 하드웨어 122 6.2 전자 폐기물 124 __6.2.1 하드웨어 제조 업체의 친환경 노력 127 6.3 요약 128 CHAPTER 7 네트워크 129 7.1 네트워크는 이미 충분히 친환경적인가? 129 __7.1.1 큰 그림 보기 130 7.2 인터넷의 정의 131 __7.2.1 이 전선들은 무엇일까? 131 / 7.2.2 컴퓨터와 저장 장치는 어떻게 적용될까? 133 / 7.2.3 인터넷은 부분의 합 이상일까? 134 / 7.2.4 인터넷 위성은 좋은가 나쁜가? 135 7.3 소프트웨어의 역할 139 7.4 왜 라우팅을 더 친환경적으로 만들 수 없을까? 140 __7.4.1 경계 경로 프로토콜 140 7.5 인터넷의 하향식 친환경화 143 __7.5.1 봉쇄에서 얻은 교훈 143 / 7.5.2 수요 이동 144 / 7.5.3 브라운아웃, 점진적 기능 저하, 수요 형성 145 7.6 2020년의 교훈 147 7.7 결론 148 CHAPTER 8 좀 더 친환경적인 머신러닝, AI, LLM 150 8.1 규모와 사용량 증가 152 8.2 프로젝트 계획 153 8.3 데이터 수집 154 8.4 ML 모델 설계와 훈련 156 __8.4.1 크기의 중요성 156 / 8.4.2 크기가 전부는 아니다 158 8.5 배포와 유지 관리 160 8.6 어디서부터 시작할까? 161 CHAPTER 9 측정 162 9.1 완벽한 측정 163 __9.1.1 완벽한 에너지 데이터 164 / 9.1.2 완벽한 탄소 강도 데이터 165 / 9.1.3 시장 기반 감축은 어디에 적합할까? 167 / 9.1.4 완벽한 내재 탄소 추적 169 / 9.1.5 완벽한 모니터링의 미래 171 9.2 충분히 좋은가? 172 __9.2.1 간접 지표 사용 172 / 9.2.2 불완전한 데이터를 지속적으로 사용하여 감축 달성하기 174 9.3 현재 방법론 검토 174 __9.3.1 온실가스 프로토콜 174 / 9.3.2 그린 소프트웨어 재단의 소프트웨어 탄소 응집도 규격 178 / 9.3.3 ISO 14064 표준 180 9.4 사용 가능한 도구 181 __9.4.1 하이퍼스케일 클라우드 제공 업체 도구 181 / 9.4.2 클라우드에서 사용 가능한 오픈소스 183 / 9.4.3 클라이언트 측 도구 185 9.5 결론 186 CHAPTER 10 모니터링 187 10.1 북극성으로서의 가용성 189 10.2 메트릭 기반 모니터링의 4기사 190 10.3 서비스 수준 191 __10.3.1 탄소 메트릭 192 10.4 관측 가능성 193 __10.4.1 기대되는 대결: 관측 가능성 vs. 모니터링 194 / 10.4.2 관측 가능성을 위한 준비가 되어 있는가? 196 10.5 결국 도달할 것이다 196 CHAPTER 11 부수 효과와 공동의 이익 198 11.1 돈이 문제인가? 199 __11.1.1 왜 친환경적인 것이 더 저렴할까? 199 11.2 신뢰성과 복원력 201 __11.2.1 예시 203 11.3 성능 204 __11.3.1 얼마나 빨라야 충분히 빠를까? 204 / 11.3.2 최적합과 성능 205 11.4 보안이 중요하다 206 __11.4.1 보안은 친환경이다 207 11.5 데이터는 어떤가? 208 __11.5.1 LLM 제어 209 / 11.5.2 데이터 모델 209 11.6 실제로는 지금까지 다룬 모든 것이다 210 11.7 준비 완료 212 CHAPTER 12 친환경 소프트웨어 성숙도 매트릭스 213 12.1 성숙도 매트릭스의 역사 214 12.2 친환경 소프트웨어 성숙도 매트릭스 216 __12.2.1 레벨 217 / 12.2.2 축 222 / 12.2.3 축 체크리스트 222 12.3 우리의 현재 위치는? 226 CHAPTER 13 나아갈 방향 227 13.1 왜 우리가 해야 하는가? 228 13.2 매트릭스를 통한 이동 230 __13.2.1 친환경 소프트웨어 50% 도전 230 / 13.2.2 다음 단계는? 232 / 13.2.3 모든 것에는 때가 있다 235 13.3 비용은? 235 13.4 모든 것! 236 13.5 그렇다면 어떻게 해야 할까? 237 __13.5.1 코드 재사용 237 13.6 그렇다면 친환경 소프트웨어란 무엇인가? 238 13.7 에필로그 239 미주 240 찾아보기 242 |
Anne Currie
Sarah Hsu
Sara Bergman
차건회의 다른 상품
기후변화는 현실이다. 2022년의 기후변화에 관한 정부 간 협의체(Intergovernmental Panel on Climate Change, IPCC) 보고서를 보면 확실하게 알 수 있다. 전 세계가 대응에 나서고 있으며, 기업들 또한 에너지 전환에 동참하지 않으면 뒤처질 것으로 보인다. 하지만 안타깝게도 우리 시대의 어느 현명한 문화 아이콘이 지적했듯이, 지속 가능한 지구를 위해 필요한 변화를 이루어내기란 결코 쉽지 않다. 다행히도 대부분의 공공 클라우드 제공 업체가 이미 넷제로(net-zero) 운영을 약속했다(이 약속이 지켜지도록 해야 한다). 우리 업계의 다른 지속 가능성 선도 기업뿐만 아니라 이들을 보고 배우고 따라 할 수 있다. 사실 우리가 필요로 하는 도구 중 일부는 이미 오픈소스로 제공되거나 상업적으로 이용할 수있다.
--- p.xxii 애플은 제품을 출시할 때 일반적으로 환경 제품 보고서를 발행하는데, 2022년 9월에는 아이폰 14의 제품 수명 주기 탄소 발자국을 발표했다. 보고서에 따르면 아이폰에서 발생했던 61kg의 탄소 배출량 중 82%는 생산, 운송, 폐기 과정에서 발생했으며, 나머지 18%는 휴대폰 사용 중에 발생했다. 이 수치는 기기의 최종 사용자인 소프트웨어 개발자에게 시사하는 바가 큰데, 그것은 애플리케이션이 새로운 버전으로 업그레이드되더라도 이전 버전의 기기와 역호환이 되도록 노력해야 한다는 점이다. 이렇게 하면 구형 하드웨어가 새로운 소프트웨어를 지원하지 못해 쓸모없어지는 경우를 최소화할 수 있다. 이를 통해 소프트웨어 개발자는 본질적으로 하드웨어의 수명 연장에 직접적으로 기여하는 셈이다. --- p.34 AI 모델이 커질수록 더 큰 데이터셋이 필요하다. 대규모 데이터셋은 여러 가지 이유로 매력적이다. 과적합(overfitting)을 방지하고 입력 데이터를 균등하게 확보함으로써 편향된 데이터로 인해 모델 정확도가 저하되는 부작용을 방지할 수 있다. 또한 데이터셋을 대규모로 구축하면 초기 계획 단계에서 미처 고려하지 못했던 상황도 학습할 수 있기에 가치가 있다. 문제는 이러한 생각은 린 낭비라는 점이다. --- p.59 가장 저렴하고 효율적이며 상품화된 서비스를 사용하여 호스팅 비용을 절감하는 것은 자신과 지구뿐만 아니라 고객에게도 이익이 된다. 그 결과 더 많은 돈을 벌 수 있는데, 이는 좋은 일이다. 돈을 버는 것이 잘못된 것이 아니라 에너지 중심의 기후 위기 속에서 에너지 비효율적인 것이 잘못된 것이다. 또한 효율성을 달성하기 위해서는 왜 운영 효율성을 추구해야 하는지를 보여준다. 즉, 데이터 센터 운영자도 큰 수익을 얻을 수 있다. 운영 효율성은 운영자의 이익과 일치하며, 이를 인지하고 자본을 투자할 수 있는 운영자를 선택해야 한다. --- p.83 리눅스 재단(Linux Foundation)의 핀옵스(FinOps)는 급증하는 클라우드 컴퓨팅 비용에 대한 통제권을 조직이 다시 가져오는 데 도움이 되고자 탄생한 것으로서 기술, 금융, 비즈니스를 포함한 여러 분야를 연결하여 클라우드 비용을 절감하기 위한 공동의 노력을 나타낸다. 핀옵스와 그린옵스(GreenOps)는 출발은 다르지만 결국 목적은 동일하다. 둘 다 소프트웨어 시스템을 최적화하여 기계 요구사항과 값비싼 전기 사용을 줄이는 것이다. 그린옵스 컨설팅 회사 리:싱크(re:cinq)의 피니 레즈닉(Pini Reznik)에 따르면 클라우드 사용자는 핀옵스, 그린옵스의 튜닝, 최적화 모범 사례를 사용하면 비용을 최대 50%까지 절감할 수 있다. 친환경으로 전환하면 실제로 돈을 절약할 수 있는 셈이다. --- p.201 다행히도 소프트웨어 업계가 깨어나기 시작했다. 5년 전만 해도 기술 콘퍼런스에서 친환경 소프트웨어에 대해 논의하는 것은 논란의 여지가 있었다. 왜냐하면 이 주제가 ‘정치적’으로 여겨졌기 때문이다. 하지만 지금은 친환경 소프트웨어 채택이 실용적이지 않다고 생각한다면 시대에 뒤떨어진 것이다. 이 책의 목적은 실용적인 것이다. 과거의 신뢰할 만하고 기술적으로 성숙하지만 탄소 집약적인 화석연료 기반 전력망에서 미래의 새로운 재생에너지 기반 전력망으로의 전환을 잘 처리할 수 있는 시스템을 구축하는 데 도움이 되고자 한다. 이러한 시스템은 하드웨어를 보다 효율적으로 사용해야 한다. --- p.227 |
개발자가 만드는 더 나은 미래, 지금 바로 시작해야 합니다
개발자들은 더 빠른 코드, 더 효율적인 시스템, 더 확장 가능한 서비스를 고민하며 개발합니다. 하지만 그렇게 개발하는 소프트웨어가 얼마나 많은 에너지를 소비하고, 환경에 어떤 영향을 미치는지 생각해본 적이 있나요? AI 모델을 학습하고, 클라우드 서버를 운영하며, 방대한 데이터를 저장하는 과정에서 막대한 전력이 소비됩니다. 데이터 센터는 전 세계 전력 소비의 상당 부분을 차지하고 있으며, 점점 더 많은 기업이 탄소 배출 감축을 목표로 친환경적인 기술 도입을 고려하고 있습니다. 이제 개발자도 환경을 고려한 개발 방식을 찾고, 탄소 배출을 줄이는 방법을 고민할 때입니다. 이 책은 소프트웨어 개발과 운영을 친환경적으로 전환하는 방법을 제시합니다. 환경을 보호하면서도 성능을 최적화하고, 비용까지 절감하는 지속 가능한 개발 방식을 알려줍니다. 단순한 이론이 아니라, 실제 개발과 운영에서 적용할 수 있는 실질적인 방법을 다룹니다. 친환경 소프트웨어 개발은 거창한 변화가 아닙니다. 작은 코드 수정, 최적화된 인프라 운영, 불필요한 데이터 줄이기 같은 작은 실천이 모여 큰 변화를 만듭니다. 효율적인 개발이 곧 친환경적인 개발이 될 수 있음을 깨닫게 될 것입니다. 개발자는 세상을 바꿀 수 있는 힘을 가진 사람들입니다. 코드 한 줄로 지구를 지키는 개발자가 되어보세요. 주요 내용 - 지속 가능한 소프트웨어 개발의 중요성 - 친환경 소프트웨어를 설계하고 운영하는 핵심 원칙 - 에너지를 절약하는 코드 최적화와 인프라 운영 방법 - 클라우드, 데이터센터, AI 모델이 환경에 미치는 영향과 해결책 - 친환경 소프트웨어 성숙도 매트릭스를 활용한 단계별 실천 가이드 |
이 책은 코드, 운영, 하드웨어, 네트워크, 인공지능 등 다양한 분야에서 우리가 배우고 실천해야 할 지침을 명확하게 제시합니다. 생김새로 사람을 판단하지 않도록 다문화 교육을 받는 것처럼, 결과물만 보고 모든 것을 평가하지 않기 위해 IT 분야에 몸담고 있다면 누구나 이제는 탄소 인식을 갖추어야 합니다. - 박해선 (Microsoft AI MVP, 《혼자 공부하는 머신러닝+딥러닝》 저자 )
|
책을 읽으며 개발 과정에서 고려해야 할 새로운 영역을 인지하게 되었고, 지속 가능한 소프트웨어 개발에 대해 고민하게 되었습니다. 특히 탄소 배출량을 줄이는 다양한 방법을 다룬 부분이 인상적이었으며, 적용할 수 있는 부분부터 실천해나가기를 추천합니다. - 변성윤 (카일스쿨)
|
책을 받아 들고 가장 먼저 떠오른 질문은 ‘당장 우리가 할 수 있는 일은 무엇일까?’였습니다. 다행히 이 책은 그린 소프트웨어의 개념과 필요성은 물론, 이를 실천할 수 있는 친환경 IT 전략과 구체적인 방법까지 상세하게 안내합니다. 덕분에 ‘친환경’과 ‘지속 가능성’이 거대 IT 기업이나 미래 세대만의 문제가 아니라, 지금 우리 모두가 고려해야 할 현실적인 이슈임을 깨달았습니다. - 개앞맵시 (《구글 엔지니어는 이렇게 일한다》 역자 )
|
로봇 소프트웨어 개발자인 저에게 ‘친환경 소프트웨어’ 또는 ‘그린 소프트웨어’는 낯선 개념이었습니다. 하지만 이 책을 읽고 나서, 그린 소프트웨어가 단순히 지구를 위한 착한 일이 아니라 ‘제품의 경쟁력’이라는 사실을 깨달았습니다. - 표윤석 (로보티즈 이사)
|