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

1장 프로의 마음가짐 #165

Closed
Tracked by #163
fkdl0048 opened this issue Oct 14, 2023 · 0 comments
Closed
Tracked by #163

1장 프로의 마음가짐 #165

fkdl0048 opened this issue Oct 14, 2023 · 0 comments

Comments

@fkdl0048
Copy link
Owner

fkdl0048 commented Oct 14, 2023

1장 프로의 마음가짐

그냥 웃어, 커틴 이 친구야. 신이 대단한 장난을 친 거야. 아니면 운명이거나 자연의 섭리인거지.
모든 좋을대로 생각해. 하지만 누가 됐든 유머 감각은 있구만 하하.

  • 하워드, <시에라 마드레의 황금>

숙련공, 프로에 대한 판단은 주관적인 부분과 객관적인 부분이 섞여있다.

언젠간 스스로 프로라고 말할 수 있는 날이 올까?

함부로 바라지 마라

프로페셔널리즘(professionalism)은 명예와 긍지의 상징이기도 하지만, 동시에 책임과 의무를 나타내기도 한다.

노블리스 오블리제

물론 두 가지는 뗄레야 땔 수 없다.

책임지지도 못할 일에서 명예와 긍지를 얻을 수는 없다.

읽다보니 몰입과 프로는 상당한 연관관계가 있다고 생각된다.

프로는 자신의 일에 책임을 져야하고 대부분의 편하게 살고 싶어하는 즉, 적당히는 자신이 정해놓은 선이 있다고 생각한다.

물론 후자로 사는게 당장은 편하다고 생각되지만, 자아실현의 욕구 그리고 하루의 3분의 1을 인생 전체에서 의미없는 시간으로 보낸다는 건 개인적으로 끔찍하다.

책임을 지더라도 주도적, 적극적으로 일을 하는 것이 더욱 행복하다고 생각한다.

책임감을 가져라

책임을 져보지 못한 사람은 평생을 회피하며 살아간다고 생각한다.

실로 얼마나 끔찍한가..

사례와 같이 실시간 서비스되는 애플리케이션의 경우는 더욱 그렇다.

책임이란, 어찌보면 불편한 어감이 느껴지기도 한다.

한국 사회가 책임에 대한 무게감을 부정적으로 둬서 그런건지, 스스로 무겁다고 느껴서 그런건지..

어떤 일에 책임을 질 수 있다는 것은 역설적으로 해당 일에 대한 주도권을 가지고 있다고 해석할 수 있다.

어떤 이는 책임질 일도 없을 수 있다.

따라서 개발자로써 책임질 부분이 있다는 것은 나름 프로페셔널리즘을 가지고 있다고 해석할 수 있다.

무엇보다 해를 끼치지 마라

소프트웨어 개발자는 기능과 구조 양쪽에 해를 끼친다.

기능에 해를 끼치지 마라

프로그래머가 매력적인 이유는 잘 돌아가는 소프트웨어를 만들었을 때의 쾌감에 나름 중독되기 때문일 것이다.

하지만 모든 소프트웨어가 그렇듯 완벽할 순 없다.

프로그래머는 당장에 최선을 다할 뿐 프로그램 자체가 버그가 1도 없는 완벽한 프로그램을 만들 순 없기 때문이다.

그렇다는 것은 완벽하지 않다는 사실에 책임을 져야 한다는 것이다.

프로라면 모든 오류에 책임을 져야 한다.

QA는 아무것도 찾지 못해야 한다

프로라면 QA가 아무것도 찾지 못하게 해야 한다.

제대로 작동하는지 아닌지 알아야 한다

코드가 잘 돌아가는지 알려면 어떻게 해야 할까?

간단하다 테스트하고 또 테스트하라

역시.. TDD의 창시자..

얼마만큼의 코드를 자동화한 단위 테스트로 테스트해야 할까? 대답할 필요조차 없다. 모조리 다 해야 한다. 모조리!!

자동화된 QA

데브옵스, CI/CD에 관한 내용으로 정리된다.

구조에 해를 끼치지 마라

전체 구조를 희생하면서까지 기능을 추가하는 일이 헛수고라는 사실은 프로라면 당연히 알고 있다.

구조가 좋아야 코드가 유연해진다.

구조가 위태로우면 미래도 위태롭다.

소프트웨어는 변한다는 생각은 모든 소프트웨어 프로젝트의 기본 가정이다.

요구사항에 따라 도메인이 변경되는 것은 당연한 일로 생각되어야 한다.

한마디로 변경을 할 때 비용을 치르지 않고 변경할 수 있어야 한다.

이해를 돕기 위한 게임 구조 자료를 첨부한다.

싱글톤 패턴의 구조를 가져가는 것에 대한 내용으로 작업 시간을 체크했을 때 토이프로젝트의 경우라도 feature가 늘어남에 따라 작업 시간, 버그 시간이 기하급수로 늘어날 수 있다.

이 책에서는 구조에 관한 기술적인 내용을 다루진 않겠지만 클린 코드나 리팩터링을 참고하면 좋을 것 같다.

돌아가서 바꾸기 쉽게 위해선 테스트 코드가 작성 되어 있어야 하고, 거버넌스/커플링이 적어야하고, 객체지향적으러 섥계되어 있어야 한다.

직업 윤리

자신의 경력은 자신이 책임져야 한다.

실무에서 통할 능력을 갖추는 일은 회사의 책임이 아니다.

자기 경력을 회사에 맡기는 개발자에게 재난이 있으라..!

한번 경력에 따라 개발자의 비율이 역 피라미드 형태로 많이 존재하는 이유에 대해 생각해보면 좋을 것 같다.

대부분 개발자는 3~4년차에 이직을 준비한다고 하는데, 이후에 이직을 준비할 때는 자신의 포토폴리어는 텅 비어있다고 말한다.

스스로의 경력을 관리하지 않기 때문에, 이직을 10년차까지 반복하다 보면 회사에선 10년차 개발자에게 다른 능력을 요구하게 된다.(프로젝트 매니저, 관리자 등등)

사실 그때는 늦을 수 있다.

자신의 여가 시간을 전부 바치라는 말이 아니다.

주에 5시간 만이라도 자기 개발을 꾸준하게 한다면 문제가 되지 않는다.

흔한 잘 작성된 테크 블로그의 마지막 post날짜가 취업 그 사람의 취업 날짜로 보면 쉽다.

전산 분야 지식을 익혀라

과거를 기억하지 못하는 자, 그 과거를 반복하는 저주를 받을지니..

전산 분야 지식보다는 새로운 기술을 익혀라가 더 적합해 보인다.

자신이 사용하는 도구와 다른 도구의 차이점, 장점을 비교해가며 계속 생각해야 한다.

이 분야에서 뒤쳐지는 것은 한 순간이다.

책에서 나오는 예시에서도 변하지 않는 고전은 존재한다.

디자인 패턴, SOLID, 방법론, 원칙등이 있지만 계속 발전하는 도구는 2023년 기준으로 사용하지 않는 부분이 더 많다.

즉, 개념적인 부분은 지금까지 형태를 유지하지만 기술은 계속 발전하기에 도구는 의심해야 한다.

회사에 들어갔는데 팀장이 강제적으로 git bash만 써야한다고 하면 그거 나름대로 끔찍할 것

끊임없이 배우기

IT는 미친듯이 바뀌기 때문에 어마어마하게 공부해도 간신히 따라잡는다.

개인적으로 정말 잘 생각해야 한다.

자신이 잘 할 수 있는 것, 하고 싶은 것, 당장 필요한 것을 잘 생각해서 학습해야 한다.

이때 부터는 학습하는 시간도 비용이기 때문에 무식하게 공부하는 것은 정말 비효율적이다.

과거에 매일 무식하게 공부했던 것 같다.

컨퍼런스에 끊임없이 참여하고, 새로운 언어를 익히고, 새로운 도구를 배워라.

연습

프로는 연습한다.

일상 업무를 연습이라고 부르면 안된다. 일상 업무는 연습이라기보다 공연이다.

이 부분은 함께 자라기의 의도적 학습을 참고하면 도움이 될 것 같다.

미하이 칙센트미하이의 몰입 그래프로 난이도와 실력의 2차원 그래프의 형태에서 스스로 몰입 채널에 들어갈 수 있도록 계속 노력해야 한다.

개인적으로 작성했던 글을 첨부한다.

함께 일하기

이 책을 다른 사람과 같이 읽듯이 소프트웨어 개발은 혼자할 수 없는 일이다.

혼자서 하는 일, 학습보다 같이 하는 일, 학습이 더 효율적이고 성장에도 더욱 좋은 영향이 간다.

사람의 대부분의 넘어야 하지만 쉽게 넘지 못하는 벽으로 남이 잘되면 배아프거나, 자신의 지식을 나누려 하지 않는 경우가 많다.

나도 과거에는 그랬기 때문에 왜 그런지 잘 알지만, 정말 짧게 보고 있다고 생각된다.

당장 비교를 주위 사람밖에 하지 못하는 시각과 더 먼 미래를 보지 못하는 시야는 전혀 도움이 되지 않는다.

멘토링

배우기에 가장 좋은 방법은 가르치는 것이다.

쓸모 있는 내용을 머릿속에 가장 빠르고 강하게 넣는 방법은 자신이 책임지고 담당하는 사람들과 이야기를 주고 받는 일이다.

가르치고 배울 때 더 큰 이득을 보는 사람은 선생쪽이다.

매우 동의..

그래서 만든 스터디가 브릿지 아카이브라는 스터디로 자신이 공부하고자 하는 내용을 남에게 쉽게 설명할 수 있는 글로 적는 아주 좋은..

업무 지식을 익혀라

프로 소프트웨어 개발자는 자신이 프로그래밍하는 제품의 업무 분야 지식을 알아야 한다.

즉, 요구사항과 도메인에 빠삭해야 한다.

비기능적인 부분을 스스로 Q/A를 통해 알아내고 예외를 처리해야 하기 때문이다.

자신이 뭘 만드는지도 모르고 코딩하는 것만큼 끔찍한 일도 없을 것..

공장의 부품과 다를 게 없다.

회사와 고객에 동질감을 가져라

회사의 문제가 자신의 문제다.

문제가 무엇인지 이해하고 최선의 해결책을 만들기 위해 일해야 한다.

겸손

프로그래밍은 창조 행위다.

다른 곳에도 많이 적었지만 프로그래밍은 단순 기술이 아닌 기예에 가깝다.

언제든지 틀릴 수 있기 때문에 프로그래밍 자체가 매우 오만한 행위다.

프로는 자신이 극도로 오만하다는 사실과 언젠가 불운이 닥쳐 목표가 무너질지도 모른다는 사실을 안다.(경험적)

목표가 무너졌을 때, 가장 좋은 방법은 그냥 웃어. 이 친구야

느낀점

확실히 오래된 책이라고 느끼는 부분도 있고, 고전책은 고전책으로 남는 이유도 있다고 생각된다.

그동안 개인적으로 생각했던 부분도 책과 비교해 가면서 정리하기 좋았던 것 같다.

논의사항

  • 자신의 현재에 가장 공감갔던 내용은 뭔가요?

저는 개인적으로 배우기, 연습, 멘토링 이 부분인 것 같습니다.

소프트웨어 개발자로써, 프로를 목표로 하기 때문에 평생 가져가고 싶기 때문에 지금이라도 저런 부분을 습관화하고 싶습니다.

재능이나 특출난 능력이 없기 때문에 항상 의도적으로 꾸준하게 해볼려고 하는 생각이 있어서 그런 것 같습니다..

혼자 하는 것 보다 남들과 같이 하는 게 좋다는 걸 알아서 몇년을 개발, 공부할 텐데 같이 꾸준히 나아갈 동료 한 두명만 있어도 성공했다고 판단될 것 같네요!

@fkdl0048 fkdl0048 mentioned this issue Oct 14, 2023
15 tasks
@fkdl0048 fkdl0048 added this to Todo Oct 14, 2023
@fkdl0048 fkdl0048 added the 2023 label Oct 14, 2023
@github-project-automation github-project-automation bot moved this to Todo in Todo Oct 14, 2023
@fkdl0048 fkdl0048 self-assigned this Oct 14, 2023
@fkdl0048 fkdl0048 added this to the The Clean Coder milestone Oct 14, 2023
@github-project-automation github-project-automation bot moved this from Todo to Done in Todo Oct 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

No branches or pull requests

1 participant