좋은 개발자란 무엇인가?

Joonseung Jang·2022년 6월 26일
0

개발철학

목록 보기
1/1

각자 다양한 이유로 개발을 시작하게 된다.

누군가는 취미로, 누군가는 일로, 누군가는 배움의 일종으로 하게 된다.

무엇으로 해도 틀린 것은 없다만, 첫 포스팅인 만큼 부족하지만 개발 철학을 적은 뒤 그 부가적인 내용인 포스팅을 진행해보려 한다.

내가 지향하는 개발자는 어떤 개발자인가?

계속해서 근본적으로 나아질 수 있는 개발자

가장 직관적으로 설명하자면 위와 같은 내용이 되지 않을까?
적고나니 정말 식상하기는 하다..

그러나 이것만큼 개발의 본질을 잘 설명하는 키워드도 없지 않을까.
'배움'

개발은 점점 전세계적인 지능의 총체처럼 되어가고 있다는 인상을 받은 적이 있다.
이게 무슨 말이냐면 각자 독립적으로 개발되는 것이 아니라,
A가 개발한 모듈을 B가 사용하고, B가 사용하는 패러다임을 C가 이용해서
소프트웨어를 만들고, C가 만든 이론을 A가 사용하고...

굳이 비유하자면 이런 식으로 나아간다.
어느 분야든 이런 면이 없지 않겠냐 싶지만 개발은 더욱 변화 속도가 빠른 것 같다.

그런데 단순히 다른 사람이 만든 모듈을 잘 갖다쓰는 것으로는 충분하지 않다.
근본적으로 생산성이 나아져야 하는데, 그것은 어떻게 가능하다는 말인가?

좋은 집 짓기

개발을 잘 한다는 것은 좋은 집을 짓는 것과도 비슷하다.
처음에는 아름다운 궁전과 같은 집을 지으려고 한다.

개발을 시작하면 나는 아름다운 공원을 가진, 궁전과 같은 소프트웨어를
만들 수 있을 것이라는 착각에 빠지게 된다.

그러한 이상을 갖는 것은 좋다. 다만 처음 손에 쥐어지는 것은
C, Java와 같은 벽돌과 같은 재료가 주어졌을 것이다.

그래서 현실과 부딪히게 된다.
어떻게 집을 짓더라도(=소프트웨어를 만들더라도)
통풍도 안 되고, 문도 잘 안열리고, 습기도 차고 막 그런다
(= 속도도 느리고, 버그도 생기고, 충돌도 난다)

그렇다면 무엇을 해야 하겠는가?
통풍이 잘 안되면, 통풍이 잘 되게 만들면 된다.
문이 잘 안열리면, 문이 잘 열리게 고치면 된다.
습기가 차면, 습기를 뺄 수 있는 시스템을 만들면 된다.

한 마디로, 시행착오를 거치기 전에는 모른다.
다만 시행착오에는 분명한 목적이 있어야 한다.

모듈을 사용하고, 디자인 패턴을 적용하고, OOP를 사용하고..
다들 복잡한 개발에 목이 말라 있다.

중요한 것은 그런 것이 아니다.
가치있는 소프트웨어라는 목표에, 목표에 걸맞는 적절한 시행착오와 개선,
그리고 그것의 반복을 얼마나 잘 해낼수 있는가가 중요한 것 같다.

그렇게 생각하면 매우 단순해진다.

알고리즘/자료구조? 효율 측면에서 중요하다. 해야된다.
디자인 패턴? OOP? 코드 재사용성과 유지보수에 중요하다. 해야된다.
오픈소스? 모듈? 좋은 집을 짓기 위한 설계도는 항상 읽어봐야 한다.

결국 집을 짓는 이유는 누군가가 살기 위해서가 아닌가.
소프트웨어를 만드는 이유도 마찬가지다.

그것에 집중하면 다른 것들은 전부 부차적인 요소가 될 것이다.
좋은 집은 여러 요구사항을 충족하지 않는가.

개발자로서 갖춰야 하는 역량을 나열하자면 끝도 없다.
다만, 내가 생각하는 좋은 개발자의 역량은,

계속해서 더 나은 소프트웨어를 만들어내는 개발자

가 될것 같다.

앞으로 쓰게 될 포스팅은 전부 그 부차적인 내용이 될 것이다.

profile
개발일지

0개의 댓글