Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[강연주] 15장,16장 : 실용주의 장인정신, 소프트웨어 장인으로서의 커리어 #43

Merged
merged 4 commits into from
Dec 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions 15장/강연주.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## CH15. 실용주의 장인정신
### 좋은 품질은 비싸고 시간이 오래 걸릴까
좋은 품질은 그렇게 되기까지 오랜 시간이 걸린다는 고정 관념이 있다. 하지만 '고품질은 고비용' 이라는 것은 편견이다.
실행 관례 자체가 나빠서 개발자를 느려지게 만드는 것이 아니라, 무엇이든지 새로운 것을 배울 때는 시간이 걸리는 점이 문제다. 유능한 개발자라면 TDD 때문에 개발 일정이 지연되지 않는다.

### 리팩토링
리팩토링을 위한 리팩토링은 시간 낭비다. 코드는 테스트 통과에 꼭 필요한만큼한 작성된다. 리팩토링 단계는 TDD 라이프 사이클을 따라서 중복되는 모든 부분이 제거되고 문제 도메인에 적합하게 코드가 표현되었는지를 확인한다.

새로운 기능이 추가될 때, 기존 코드를 수정해서 코드를 추상화한다. 즉 새로운 기능을 자연스럽게 받아들일 수 있도록 기존 코드를 준비시킨다. 당장의 합당한 이유 없이 단지 '미래를 대비해야 한다'는 모호한 전제로, 초기부터 추상화를 하면 애플리케이션이 엉망이 된다.

### 장인정신과 실용주의
장인이 가장 중요하게 여기는 가치는 고객의 만족이다. 품질은 물론이고 시간과 비용도 고객 만족을 위한 구성 요소이다. 또한 항상 높은 품질의 코드를 생성해내지만 이는 과잉 설계를 의미하지 않는다. 비즈니스 요구에 맞추어 빠르고 안전하게 변경할 수 있는 것이다.

### 느낀 점
책을 읽기 전에는 TDD와 리팩토링 같은 XP 기술을 병행하면 시간이 더 오래 걸릴 것이라고 생각했다. 실제로 프로젝트에서도 그러한 경험을 했다. 처음에는 이러한 기술들을 도입하면서 시간이 더 드는 것은 불가피하고, 이후에야 시간 절약 효과를 볼 수 있을 것이라고 여겼다. 그러나 책을 읽으며, 시간이 오래 걸린 이유가 기술 자체가 아니라 내가 해당 기술에 익숙하지 않았기 때문임을 깨달았다. 유능한 개발자가 되기 위해 앞으로도 꾸준히 기술을 배우고, 고품질 코드를 작성하면서도 효율적으로 작업할 수 있도록 노력해야겠다고 다짐했다.
23 changes: 23 additions & 0 deletions 16장/강연주.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## CH16. 소프트웨어 장인으로서의 커리어
### 장인의 길
장인이 된다는 것은 열정. 이 단어 하나가 모든 것을 요약한다. 개발과 직무에 열정적이고, 배우고 가르치고 공유하는 데에도 열정적이다. 산업이 진화하도록 돕는 데도 열정적이다. 기술 커뮤니티 활동에도 열정적이다. 뿐만 아니라 겸손하다.

단순히 좋은 코드를 작성하고 비즈니스 가치를 전달하는 것만으로는 좋은 개발자가 될 수 있지만 장인은 될 수 없다. 항상 주어진 문제에 가장 적합한 도구를 찾고 단순한 해결책을 추구한다.

### 정직과 용기
정직과 용기 또한 장인이 갖춰야할 핵심적인 자질이다. 고객이 비현실적인 요구를 할 때, '아니오' 라고 말할 수 있고, 더 나아가 항상 대안을 제시해야한다.

### 여정과 이정표
장인은 무언가를 배우고 더 나은 프로페서널이 되기 위한 기회들을 찾는다. 새로운 직장을 찾는다는 것은 배우고 성장하는 장을 찾는 것이다. 이러한 과정을 이력서 채우기와 혼동해서는 안된다. 업무에 맞는 기술을 사용하는 것은 당연하다.

앞으로 나아가지 못하고 정체되어 있다고 느낀다면, 그때는 움직여야만 한다.

### 원하는 바를 모른다면 어떻게 해야할까
내가 원하는 것을 나도 모른다는 것을 일단 인정하라. 그 후 마음을 열고 사람들을 만나보아야한다. 최대한 많은 문들을 열어보고 더 큰 세상이 있음을 깨달아라.

### 느낀 점
이 책을 읽기 전에는 "이 책을 읽고 나면 나도 소프트웨어 장인이 될 수 있을까?"라는 기대감이 있었다. 하지만 책을 읽고 난 후, 장인이란 수십 년의 커리어를 쌓아도 쉽지 않은 목표라는 것을 깨달았다. 그럼에도 불구하고, 소프트웨어 장인이 되고 싶다는 열망이 강하게 생겼다.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저도 열망이 생겼습니다 🔥


장인이 되기 위해서는 먼저 꾸준히 공부하며 기본적인 기술들을 마스터해야 한다고 느꼈다. 또한, 다양한 컨퍼런스에 참여해야겠다는 다짐도 생겼다. 지금까지는 주변 동료와 친구들과만 소통했지만, 앞으로는 더 넓은 세상에서 시야를 확장하고, 열정을 얻기 위해 적극적으로 다양한 컨퍼런스를 찾아갈 것이다.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

컨퍼런스 다같이 다녀요~~!


무엇보다도 소프트웨어 개발을 단순히 '일'로 여기지 않고, 나의 인생에서 소프트웨어 개발이라는 역량을 마스터할 과업으로 선택했다는 것을 인지하도록 하자.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍🏻👍🏻👍🏻

Loading