Education*
Devops
Architecture
F/B End
B.Chain
Basic
Others
CLOSE
Search For:
Search
BY TAGS
linux
HTTP
golang
flutter
java
fintech
개발환경
kubernetes
network
Docker
devops
database
tutorial
cli
분산시스템
www
블록체인
AWS
system admin
bigdata
보안
금융
msa
mysql
redis
Linux command
dns
javascript
CICD
VPC
FILESYSTEM
S3
NGINX
TCP/IP
ZOOKEEPER
NOSQL
IAC
CLOUD
TERRAFORM
logging
IT용어
Kafka
docker-compose
Dart
똑똑한 개발자와 현명한 개발자
Recommanded
Free
YOUTUBE Lecture:
<% selectedImage[1] %>
yundream
2022-10-26
2022-09-24
4624
## 영리한 개발자와 현명한 개발자  > 문제를 해결하는 것보다 피하는게 빠르다. 개발자는 코드를 만드는데 열정적이며, 코드를 만드는 것에서 희열을 느끼고 코드를 통해서 자기자신을 증명한다. 대부분의 개발자는 매우 영리하며 영리하게 코드를 작성한다. 영리하게 코드를 작성하는 것은 장점이지만 단점이 될 수도 있다. 이것을 불편하게 생각하지 말자. 똑똑한 것이 장점이 될 수 있지만 단점이 될 수 있는 것과 마찬가지다. 우리는 단점을 극복 할 수 있고, 이는 우리를 영리하면서 현명한 개발자로 만들어 줄 것이다. > 지혜로운 사람은 본 것을 이야기하지만 어리석은 사람은 들은 것을 이야기 한다. - Talmud 상식, 도메인 지식, **경험은 문제를 푸는 것 보다 문제를 회피하는 것에 도움**을 준다. 현명함은 코드를 만들어야 할 때와 요구사항을 거절해야 할 때, 요구사항을 다듬어야 할 때, 솔류션을 사용 해야 할 때를 아는 것이다. 현명한 개발자는 침묵할 때, 거절 할 때, 기다리거나 도망쳐야 할 때를 알고 있으며 이는 영리한 개발자보다 유리한 위치에 있을 수 있게하는 중요한 특성이다 ## 똑똑함과 현명함의 차이 > 무릇 간결은 지혜의 본질이요. - 윌리엄 셰익스피어 * 주니어 개발자는 간단한 요구사항으로 부터 복잡한 코드를 만들어낸다. * 시니어 개발자는 복잡한 요구사항으로 부터 간단한 코드를 만들어낸다. 주니어 개발자와 시니어 개발자의 눈에 띄는 차이는 기술, 경험과 지식에 있다. 이중 현명함은 경험에서 비롯되는 것으로 경험에서 얻는 것은 **실수를 피하는** 것이다. 개발자는 새로운 기술, 지식을 구현하며 실수를 하기 마련이다. 그리고 (유능한) 개발자는 그 실수를 피하는 방법을 알게 된다. 경험은 새로운 실수를 할 기회를 제공하고 시간이 지나면서 더 많은 실수를 피하는 방법을 알게 된다. > 한 가지 일을 경험하지 않으면 한 가지 지혜가 자라지 않는다. - 명심보감 - 소프트웨어를 개발하는데 있어서 실수에 따른 결과는 먼 미래에 발생하기 때문에 예상하기 힘들 수 있다. 하드코딩, 명확하지 않은 기획에 기댄 코드 등은 처음엔 단점이 없어 보이지만 나중에 전체 릴리즈를 수행하는 사태가 발생할 수 있다. 사소한 결정으로 많은 비용을 지불 할 수 있다. 그래서 경험있는 개발자는 정책과 프로세스를 만드는 것을 중요하게 여긴다. 짧은 주기로 반복되는 커밋, 리뷰, 지속적인 통합과 배포(CICD)로 멀리 있는 미래의 결과를 앞당겨서 확인해서 대비할 수 있게 한다. ### 문제를 피한다. > 똑똑한 사람은 문제를 해결한다. 현명한 사람은 그것을 피한다. - 알버트 아인슈타인 개발자는 똑똑한 코드를 만드는 것을 좋아한다. 이들은 황금망치를 가지고 있으며, 모든 것을 코드화 하며 이를 즐긴다. 경험있는 개발자는 코드를 작성해야 할 때와 코드를 작성할 필요가 없는 경우를 명확히 하고 식별한다. 한번 만들어진 코드는 개발팀의 소유가 되며, 지속적으로 유지/관리를 해야 한다. 코드가 늘어날 수록 복잡도도 따라서 늘어난다. 단기적으로 코드는 훌륭한 솔류션이지만 장기적으로는 복잡성을 증가시키고, 유지/관리 비용을 더한다. 경험있는 개발자는 코드를 만들기 전에 요구사항이 올바른지를 검토하여, 필수 요구사항만 포함하며 그렇지 않은 요구 사항은 무시하여 코드의 양을 줄인다. 경험있는 개발자는 기능을 추가하기 전에 비효율적인 비즈니스 프로세스를 변경하여 요구사항을 달성할 수 있음을 알고 있다. 모든 것을 자동화 할 필요는 없다. 때로는 메뉴얼한 방법이 최선의 선택일 수 있다. ## 단순함 똑똑한 개발자는 코드로 모든 것을 이룰 수 있다는 것을 알고 있으며, 이를 즐기기 때문에 고객이 요구하는 가치, 코드가 필요한 이유, 수행해야 하는 작업을 이해하기 전에 코드를 만들고 싶어한다. 경험있는 개발자는 가정을 세우고 요구사항을 검증한다. 잘못된 작업을 수행하는데 코드가 얼마나 아름다운지는 아무런 필요가 없다는 것을 알고 있기 때문이다. 요구사항이 검증되었을 때, 코드를 작성하면 소프트웨어를 더 빠르게 만들 수 있다. 물론 이를 위해서는 설계문서, 기능문서, API 문서, 테스트/빌드 정책, 릴리즈 정책등 코드 이외의 많은 추가적인 작업이 있다. 이는 코드의 작성을 느리게 할 수 있으며, 이것을 견뎌내기 힘들어하는 개발자도 있다. 하지만 더 느리지만 올바르게 시작해야 나중에 더 빠르게 진행 할 수 있다. ## 들어야 할 때와 말해야 할 때 > 목수는 두 번 측정하고 한번에 나무를 자른다. 똑똑한 개발자는 몇 가지 요구사항을 듣고 바로 코드를 만든다. 현명한 개발자는 소프트웨어의 목적을 이해하기를 원하며 비즈니스 목표, 고객가치를 확인하고 프로세스를 만드는 것에 중점을 둔다. 비즈니스를 이해하고 팀과 개인의 역할과 책임을 이해한 후에야 소프트웨어 만드는 것을 시작한다. 똑똑한 개발자는 일반적으로 긍정적인 경로를 따라서 요구사항을 읽고 개발한다. 현명한 개발자는 부정적인 경로를 함께 고려하여 개발한다. 고려해야 할 사항이 많으면 개발에 들어가는 시간도 늘어지게 마련이다. 현명한 개발자는 한번에 코드를 만들고 테스트를 통과 한다. ## 현명한 개발자가 되기 현명한 개발자는 실수를 피할 수 있다고 했다. 실수를 피하기 위해서는 실수와 실패를 해봐야 한다. 똑똑한 시절 실수와 실패를 경험해야 하고, 이를 경험할 수 있는 회사에서 일을하며 다양한 개인 혹은 협업 프로젝트를 수행해야 할 것이다. ## 마인드 셋  > 미래를 두려워하고 실패를 두려워하는 사람은 그 활동이 제한되어 손도 발도 움직일 수 없게 된다. 실패란 두려움이 아닌 오히려 그전보다 더 풍부한 지식으로 다시 일을 시작할 수 있는 좋은 기회다 - 헨리 포드 현명한 개발자가 되기 위해서 중요한 것은 실수와 실패를 바라보는 자세와 태도다. 실수에 직면 했을 때, 그 사람의 태도로 부터 그 사람의 가능성을 미루어 짐작 할 수 있게 됐다. 실수와 실패로 부터 성장하려면 있는 그대로 그것을 인정하고 실수로 부터 배워야 한다. 마인드 셋은 개발자들이 생각 하는 것 이상으로 성장에 큰 영향을 끼친다. 가장 쉬운 방법은 독서다. 개발서적으로 똑똑해지고 인문서적으로 현명해지기 위한 마인드 셋을 만들어보자.
Recent Posts
MLOps with Joinc - Kubeflow 설치
Vertex Gemini 기반 AI 에이전트 개발 05. 첫 번째 LLM 애플리케이션 개발
LLama-3.2-Vision 테스트
Vertex Gemini 기반 AI 에이전트 개발 04. 프롬프트 엔지니어링
Vertex Gemini 기반 AI 에이전트 개발 03. Vertex AI Gemini 둘러보기
Vertex Gemini 기반 AI 에이전트 개발 02. 생성 AI에 대해서
Vertex Gemini 기반 AI 에이전트 개발 01. 소개
Vertex Gemini 기반 AI 에이전트 개발-소개
생성 AI 모델 Flux.1 설치 및 사용
GPT를 이용한 Reranker 테스트
Archive Posts
Tags
developer
프로젝트관리
Copyrights © -
Joinc
, All Rights Reserved.
Inherited From -
Yundream
Rebranded By -
Joonphil
Recent Posts
Archive Posts
Tags