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장 : 실용주의 장인정신, 소프트웨어 장인으로서의 커리어 #50

Merged
merged 2 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
14 changes: 14 additions & 0 deletions 15장/공예영.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
> “코드 타이핑 자체가 병목인 경우는 존재하지 않는다.”
>

막연하게 코드량과 작업량은 비례한다고 생각하고 있었는데 혼난 기분이었다. 프론트엔드 특성상 코드량이 많다 보니까 코드량이 더 늘어나는게 부담스러워 TDD도 어렵게만 생각하고 있기도 했다. 하지만 오히려 비용을 줄이기 위해 TDD를 해야한다고 설명하는 저자에게 설득되었다. TDD 자체가 비용이 드는 것이 아니라 새로운 기술을 배우고 습득하는 데에 비용이 드는 것이다. 실제로 개발을 할수록 테스트의 중요성을 느낀다. 공통 컴포넌트를 만들어 두면 꼭 수정해야할 일이 생기는데, 수정하고나면 종종 원래 쓰고 있던 곳에서 이슈가 생긴다. 이때 테스트 자동화를 만들어 뒀다면 영향이 가는 부분을 쉽게 체크하고 오류를 사전에 확인하고 수정할 수 있었을 것이다.

> “업무량이 정점을 지나고 있었지만 버그를 내버려두지 않았다.”
>

주니어로서 생각을 고쳐먹어야겠다고 생각했다. 너무 바쁘다 보면 버그를 못본 척 지나갈 때도 있었는데 잘 작동하는 소프트웨어에 중점을 두어야한다고 공감했다.

> 추상화는 필요할때만, 단순한 소프트웨어 만들기
>

작업하다보면 지금은 필요하지만 이정도는 필요해지지않을까? 하며 고려하며 만들 때가 있다. 이럴 때면 사실 내가 좀 더 많은 것을 고려하게 됐구나, 하고 성장한 기분이 들기도 했다. 하지만 오히려 이는 소프트웨어의 복잡도를 높이고 유지보수를 어렵게 할 수 있다는 시각을 알게 됐다. 언제든 필요한 기능을 붙일 수 있도록 하는 게 좋은 코드이고 리팩토링이 필요한 코드는 좋지 않은 코드라고 생각했었다. 하지만 어떤 기능이 필요하게 될지 모르기에 단순한 코드가 좋은 코드라는 것을 공감했다. 분석가능한 코드라면 리팩토링도 보다 쉬울 것이다. TDD 기반의 코드라면 안정성 또한 보장할 수 있으니 리팩토링의 부담감도 줄어든다.
Copy link
Member

Choose a reason for hiding this comment

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

YAGNI, KISS 와 같은 것들도 생각하면 좋을 거 같아용

You aint gonna need it, keep it simple, stupid

8 changes: 8 additions & 0 deletions 16장/공예영.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
> “열정. 이 단어 하나가 모든 것을 요약한다. 장인은 개발과 자신의 직무에 열정적이다. 문제를 단순한 방법으로 푸는 데 열정적이다. 배우고 가르치고 공유하는 데에도 열정적이다. 그들의 경험을 공유하는 데도 열심이다. 뿐만아니라 소프트웨어 장인은 겸손하다. 항상 더 나은 개발자에게 무언가를 배울 자세가 되어 있고, 경험이 적은 개발자를 돕기를 주저하지 않는다.”
>

내가 IT를 선택한 이유이기도 하다. 대학생땐 참 이상하다고 생각했다. 개발을 잘하는 사람일수록 타인에게 알려주는 것을 좋아하고 타인의 이슈를 궁금해 하고 개발을 좋아했다. 자신의 지식을 꿍꿍 숨기고 싶어하거나 내 개발 시간을 남에게 쓰는 것을 아까워할 수 있을 것 같은데, 진심으로 그러길 좋아했다.

이런 장인 정신이 있는 사람들이 결국 소위 실력있는 개발자가 될 수 밖에 없는 것 같다.

개발자는 급여보다 가치를 최우선으로 두어야 한다는 말에 공감했다. 돈을 최우선으로 두고 일하다 보면 만족감이 떨어지기 쉽다. 발전하지 않는 코드는 노가다처럼 되기 쉽상이다. 비지니스에 열정적으로 기여하는 개발자가 되고 싶다.
Loading