Swift개발

[Swift]3년차 개발자의 좋은 개발자에 대한 고찰기(?)

녹차맛고양이 개발강좌 및 IT리뷰 2022. 5. 17. 14:54

안녕하세요
3년 차 iOS앱 개발자

실력이나 전문성은 아직 부족하지만
참여한 프로젝트도 계속 늘어가면서 여러가지 일을 겪다보니 이런 생각들이 듭니다.

 

그저 한 사람이 스스로 생각하는 방향과 약간의 푸념이 있을 예정입니다..

1. 개발자도 제품을 만드는 사람입니다.


개발자도 어떤 서비스를 위해서
기획자나 디자이너와 협업을 통해서 나온 도면과 같은 것을 바탕으로
사용자에게 제공할 제품을 만든다고 생각합니다.

극히 일부의 사람에게는 뭔가 대단한 일이라 생각되는 경우도 있어 보입니다.

재미있는 일이고 지속적으로 자기 계발이 필요한 일하기 즐거운 분야이지만
어떠한 일과 비교해서도 절대 더 대단한 일은 아니라고 생각합니다.

2. 많은 분들이 순서 없이 최신 기술, 좋은 코드에 너무 매달린다.


결국 사용자에게 제공되는 제품에서
사용자 경험보다 최신 기술 또는 좋은 코드를 우선시하면서

그 부분에만 너무 집중하는 경우가 꽤나 많습니다.

근데 실제 그 일에 필요한 정보 분석도 따로 하지 않고
딱히 시간과 돈을 투자하지 않아
6개월이 넘도록 아무런 진척이 없는 경우가 한 두 군데가 아닙니다.

어떤 기술이든 그것을 사용해야 하는 경우에 사용을 해야 하는 것이고
지속적으로 발전 가능하면서 유지보수가 용이한 코드로 짜는 게 가장 좋다고 생각을 합니다.

그런데 무작정 기술이 우선시 되고, 기술에 대한 갈등이 생기지 않을 단계에서 너무 고민하고 집중합니다.

저는 우선순위를 이야기하는 것입니다.
유지보수가 편하고 확장하기 편하면서 수익에만 치중하고
실제 그것을 사용하는 사람의 사소한 경험은 생각하지 못하면 안 된다고 생각합니다.

당연히 최신 기술과 더 유용하고 편리하고 관리하기 좋고 지속 가능하고 재사용 가능하게 하는 것이 좋은 경우가 대부분입니다.

그런데 많은 곳이 이유로 가져오는 게
1. 다들 하니까.(다들 리팩토링 하니깐, 다들 rx와 mvvm패턴으로 개발하니깐 등…)
2. 기존의 문제를 파악하지 못한 상태에서 리뉴얼하면 해결될 거라는 생각.
3. 같은 서비스라면 AOS와 iOS에서 완벽하게 동일한 경험을 줘야만 한다.

저의 의견에 반박하기 쉽고 잘하시는 분들도 많은 것을 알지만
아무 기술도 쌓지 못하고 있으면서
처음부터 높은 수준을 바라는 곳이 생각보다 너무 많았었습니다.


3. UX 디자인에 대한 고민


단순하게 화면을 설계하고 보이는 요소를 디자인하는 것 이외에도
사용자 경험은 더 광범위하다고 생각합니다.

핵심이 되고 제공해주는 서비스나 기능을 제외하고도
단순하게 Alert가 표시되는 것만으로도 다른 경험을 줄 수도 있고
광고를 표출시키더라도 긍정적으로 볼 수 있게 만들 수 도 있고
Appstore 또는 PlayStore에서 앱의 업데이트 내역으로도 줄 수 있다고 생각합니다.

그런데 많은 곳에서 그 부분에 고민을 하지 않거나 의심을 해보지 않습니다.

사용자 경험에 대해서 고민하고 적용하는 곳은 확실하게 보일 정도로
그 차이가 크다고 생각됩니다.

왜라는 질문에서 끝나지 않고
그것에 대한 여러 답을 스스로 고민하고
그것을 구현하는 능력에서
그 사람에 대한 다름이 느껴지기 시작하는 거 같습니다.

4. 분야와 상관없이 다 할 수 있어야 한다.


이건 다르게 이야기하자면 분야가 조금 다르다고 못 할 거라고 생각하는 사람이 많습니다.

물론 경험이 있으면 더 수월하게 할 수 있고
분석에 시간이 절약되어 비용을 아낄 수 있기는 합니다.

처음 해본다면 프로젝트의 시작부터 개발을 하는 것이
시간이 더 걸리고 시행착오가 많을 겁니다.

저의 iOS로 예를 들면
카메라 관련 App 개발 경험과 alamofire에 경험이 있습니다.
그런데 HybridApp, 동영상 스트리밍, 채팅 등 못 할 이유는 없습니다.

 

실제 개발에 참여했던 경험으로는

엄청나게 기술력이 더 필요하거나 더 어려워서 접근이 쉽지 않다는 느낌도 거의 받아보지 못했습니다. 

 

새로운 것에 대한 배움과 적응 그리고 시행착오를 겪으면

대부분은 비슷한 수준의 업무로서 다가오게 되었습니다.

로우 레벨을 요구해서 아키텍처와 같이 구조적인 이해가 더 필요할 정도의 경우는 거의 없었습니다.

 

저는 이 부분에서 자신을 바라볼때는 물론이고

타인을 바라볼때도 동일하게 적용해야 한다고 느꼈습니다.


자신이 가진 기술에 자부심을 가지는 것은 아주 좋지만
자만하고 더 뛰어난 기술이라는 생각은 적극 지양해야 한다고 생각합니다.

5. 더 좋은 방법, 실수를 최소화하기 위한 고민이 부족하다.

 

어느 곳에 있더라도 정해진 방법이나 절차가 있을 겁니다.

 

근데 개선 가능한 부분이 명확하게 보이거나 

절차가 너무 번거롭고 난잡하여 실수가 나올 여지가 확실한 경우에

의견을 내서 어필해도 받아들여지지 않는 경우가 대부분이었습니다.

 

혹시라도 잘 못 된다면 누군가 책임을 짊어져야 하고

당장에 일이 더 늘어나는 것을 피할 수 없어서

어느정도는 이해는 가능하긴 하지만

 

처음부터 제대로 시스템을 정착시키지 않는 한

그런 과정을 피하면 현상 유지가 아니라

시간이 지날 수록 더 악화시킨다고 생각합니다.

 

 

6. 특출나거나 잘난 사람이 너무 없다

 

좋은 문화와 좋은 회사, 높은 연봉 등...

그 일에서 인정받는 가치가 있을 것이지만

 

이쪽 개발에서 1000가지중에 999가지는 누구나 할 수 있고

시간만 있으면 누구나 적응해서 잘 할 수 있어 보입니다.

 

아무리 적응하고 그 일을 잘하고 계속 발전한다고 해서

진정으로 특출나고 잘났다고 생각되는 사람은

 

여태 단 1명 정도 봤지만 그 마저도 확신은 없습니다.

다만 그 반대의 경우에는 확신을 할 정도로 정말 사람이 없습니다.

 

경력과 당장에 알고 있는 이론, 그리고 자신이 단지 노가다에 적응한 것을

특출난 것으로 오해하는 경우가 흔하디 너무 흔합니다.

 

물론 특출난 사람이 많으면 좋지 않고

그 들의 역할은 단순하게 개발을 잘하는 것도 아니고 기획을 잘 하는 것도 아니고

사용자 경험을 잘 디자인 하는 것도 아닙니다.

그리고 그 영역은 노력으로 되는 것이 아닙니다.

 

다만 어떤 집단이나 단체에서 그런 극소수의 사람으로

위기에서 생존할 수 있는 겁니다.

 

그런데 대다수의 사람들이 자신이 그런 사람이라 착각하며

많은 사람들과 많은 기회들을 강탈하고 내쳐버리고 낭비합니다.

 

어지간 하면 우월감이나 이상한 이론에 빠지지 말고

모두 그냥 성실하게 일하면서 개인의 행복을 추구하는 것이 가장 현명합니다.

 

 


=========================================================
지속적으로 업데이트하겠습니다.
=========================================================