0w0

톱 엔지니어에게 배운 기술보다 소중한 것

톱 엔지니어에게 배운 기술보다 소중한 것

들어가기

'세계에 통용되는 강한 기술자가 되고 싶다'

이를 목표로 매일 분투중인 분이 많을 것이라 생각합니다.

저 또한 그 중 하나로, 기술이나 지식보다 소중한 것에 대해,

스스로의 주의시키기 위함을 담아 적어보겠습니다.

생각하는 힘?

문제 해결에 있어서 단초나 발상, 구상이라 할 수 있을까요

무엇을 만들기에 있어 철학같은 독자의 신념같이요

운이 좋아 Oracle Ace(일본 내에 수 명?) A 씨와 일을 한 적이 있습니다.

OS나 커널 등에 정통해서 이런 저런 기술력을 배울 수 있었습니다.

다만 기술이나 지식보다 감명받은 것은 문제해결에 대해 생각하는 힘

A 씨와 일하는 중에 느낀 것을 떠올리며 망라하겠습니다.

난제에 부딪치면, 3개 이상 안을 낸다.

생각나는 방법을 우선 3개 이상 적는다.

그리고 각각의 장단점을 분석/비교.

내용 장점 단점
1 XXX ... ...
2 YYY ... ...
3 ZZZ ... ...
... ... ... ...

단순 비교라면 2개라도 충분해 보이지만,

양자 선택은 좋은 방법을 못 볼 가능성이 높아서 같습니다.

소스코드의 아름다움을 추구

A 씨 소스코드를 읽으면 예술 작품이라 느껴집니다.

로직을 보지 않아도, 코드의 간결함, 주석 하나하나의 철저함을 추구합니다.

알기 쉬움,

낭비 없음,

읽고 있으면 유쾌해짐,

그래서 버그가 생기기 어렵습니다.

기본을 소중히

코딩 상 의문은 공식 문서나 도서를 읽어가며, 철저히 이해합니다.

예를 들어 통신 프로토콜을 사용한다면 RFC 정의를 주의 깊게 이해해 근거로 삼습니다.

설계는 디자인 패턴을 의식한다

Wikipedia에서 디자인 패턴이라 함은

제품 출시에 포함되는 기능에 욕심부리지 않는다.

프로젝트에서 고객은 이런저런 기능을 요구한다

개발자 자신이 마음에 드는 기능을 넣고 싶은 경우도 있다.

그러나, 여기서는 욕심부리지 않고 핵심 기능을 철저히한다(특히 초기 출시는)

이런 저런 기능을 넣다보면, 핵심적인 기본 기능을 소홀히 할 수 있기에

OSS에서 힌트를 얻는다

Github 같은 곳에 공개되어 있는 OSS는 프로그래밍 교재이기도 하다(가령 python 자체의 C코드)

A 씨도 OSS에 눈을 두며, 힌트를 얻었습니다.

물론 A 씨 자체도 Github에 유익한 성과물을 공개했습니다만(이것이 Oracle ACE 추전으로 이어졌습니다.)

맺음말

A 씨와 잡담할 때, 주말은 취미로 무엇을 합니까 물었습니다.

답은 좋은 아이디어가 떠올라 프로그램을 하나 썼습니다 였고요.

취미를 일로하며, 코드를 적는 즐거움이 너무 좋다,

이거야 말로 최강의 행복한 엔지니어 인생이라 느낀 순간이었습니다.