What We Got Right, What We Got Wrong
Commandcenter
Rob Pike님의 GopherConAU 2023 세션 트랜스크립트를 의역/요약한 글입니다. 이전 글은 아래 링크에서 확인하실 수 있어요.
https://careerly.co.kr/comments/97031
https://careerly.co.kr/comments/97244
---
패키지 관리
Go의 패키지 관리는 정말 쉽지 않았습니다. 패키지 디자인 자체는 아주 훌륭했습니다. Plain string으로 import에서 패키지를 불러와서 관리하는 방식은 유연하다고 생각했습니다. 다만, 내장 라이브러리에서 웹으로 확장시키면서 생각지 못한 문제들이 발생했습니다.
첫 번째로, Go 개발 팀은 구글의 모노레포 형식에 익숙했고 패키지 관리자로 여러 버전의 라이브러리를 관리해본 경험이 없었습니다. 패키지 관리자를 다루면서 마주할 문제들이나 의존성 그래프를 관리하는 일이 흔하지는 않지만 이는 핑계일 뿐입니다. 적어도 사내에서 비슷한 프로젝트에 테크 리드로 참여한 경험이 있던 저는, 어떤 식으로 패키기 관리를 해야 할 지 예상했어야 된다고 봅니다.
두 번째로, 커뮤니티의 기대를 저버린 것 입니다. 패키지 관리를 잘 하기 위해 커뮤니티의 인풋을 받은 것은 좋았으나, 막상 결과물을 보고 기대했던 것과 달라 많은 이들이 실망했습니다. 이는 커뮤니티와 어떤 방식으로 소통해야 하는지 큰 교훈을 주었습니다.
다행히 지금은 많은 부분이 해소되어서 훌륭한 패키지 관리 기술을 도입했다고 생각합니다. 다만, 그 과정이 고통스러웠을 뿐입니다.
문서와 예제들
우린 초기 Go 언어 문서들이 상세하고 좋았다고 생각했습니다. 다만, 우리가 예상했던 달리 커뮤니티는 다른 형태의 문서를 원했습니다. 그들은 상세함도 좋지만 실제로 돌아가는 예제들을 원했습니다. 우린 이를 받아들이는데 또 오랜 시간이 걸렸습니다.
결론적으로, 현재 문서에는 많은 예시들이 포함되어 있습니다. 물론, 대부분 오픈 소스 기여자 덕분입니다. 그리고 웹에서 코드를 돌릴 수 있도록 빠르게 구현 했습니다. 당시에 Go처럼 컴파일 언어를 웹에서 돌리는 기술은 생소했습니다. 이후, 블로그, 공식 문서, Playground에 까지 도입하면서 커뮤니티가 Go 언어를 쉽게 접할 수 있도록 했습니다.
결론
돌이켜보면, 옳은 선택을 한 것도 많았지만 더 잘 할 수 있었던 것도 많았습니다. 무엇이 됐든 선택한 것에 책임을 지고 배우면 됩니다. 제 발표를 통해 그동안 우리가 왜 이런 선택을 했는지 어느 정도 설명이 됐길 바라고 얻어가는게 있었으면 좋겠습니다.
Go 언어의 성공에는 - 더 나은 소프트웨어 개발 방식을 도입하자 - 는 철학이 중요했다고 생각합니다. 그리고, 어느 정도 기여했다고 생각합니다. 여기까지 올 수 있었던 이유는:
서버 구성에 필요한 거의 모든 것이 있는 표준 라이브러리
동시성을 주요 기능으로 내세운 것
상속보다 구성을 중점으로 한 설계
의존성 관리를 효율적으로 한 패키지 관리
내장 빌드와 테스트 툴
내장 코드 포매팅 툴
잔재주보다는 가독성에 중점을 둠
호환성 보장
그리고 무엇보다 다양한 Gopher들의 기여와 도움 덕분입니다!
---
원글: https://commandcenter.blogspot.com/2024/01/what-we-got-right-what-we-got-wrong.html
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 1월 10일 오후 6:56
최근에 친구가 추천해준 데일 카네기의 인간관계론을 읽던 중 고액 연봉을 받는 엔지니어들의 특징에 대한 흥미로운 내용이 있었다.
... 더 보기큰 것을 하는 것보다 매일 작은 것을 완벽하게 해내는 노력이 더 중요하다. 내가 성격 장애의 하나인 자기애성 성격장애자(NPD, Narcissistic Personality Disorder)를 만나면서 느낀 것은, 처음에는 그런 사람도 "정상인"처럼 느껴진다는 것이었다. 다만 그의 미친짓은 내가 매일매일 "사소한" 사건들로 상대방에게 익숙해졌을 때 발생한다.
최
... 더 보기좋
... 더 보기어제 AI 시대의 개발자 토론회에서 내가 대 AI 시대에는 버전관리 시스템이 필요없을 수도 있다고 생각해야한다는 말을 했는데, 그정도로 파격적인 생각을 해야한다는 이야기긴했지만, 진짜 그럴까?를 다시 한 번 생각해봤다.
우선 버전관리 시스템의 목적은 크게 다음 세 가지다.
스트레스를 잘 관리하면서 건강하게 살아가고 싶다면, 우선 살아있는 한 우리가 해야 할 일들은 영원히 없어지지 않을 것이므로, 해야 할 일을 100% 해내면서 할 일 목록을 완전히 없애는 데 많은 노력을 들이기보다는 70% 정도만 해내도 만족할 필요가 있다.
... 더 보기