JAMONGPROJECT
개발하는 이유에 대한 나의 견해 본문
개발자는 뭐하는 직업이야?
라는 질문에 대해 고민해보았다. 굉장히 즐거운 고민의 시간이었다.
가장 먼저 떠오르는 일차원적인 이미지는
'프로그래밍으로 무언가를 만드는 사람' 이었다.
나의 목표는 프론트엔드 개발자이므로
JAVASCRIPT를 바탕으로 웹 페이지를 만드는 사람이라고 소개할 수 있을 것이다.
그리고 좀 더 딥하게 고민을 해봤다.
최근에 어느 대기업 CEO의 인터뷰 영상에서
개발자가 하는 일이 무엇인가요? 라는 질문을 받았을 때
과거 개발자였던 그 CEO는 한 예시를 들어주었다.
엘리베이터를 기다리는 시간이 너무 지루하다는 문제를 해결하기 위해
두 가지 방법을 비교하였다.
첫째는 엘리베이터의 이동 시간을 단축시키기 위해 기술적 보강을 하는 것
두번째는 엘리베이터 앞에 거울을 설치하는 것
그 때는 두번째 방법을 듣고 '오.. 똑똑한데' 라고 생각했는데
그렇다면 왜 그렇게 생각했을까?
두번째 방법은 첫번째 방법에 비해 적은 비용을 투자하여 높은 효과를 끌어냈다.
즉, 최적화를 이루어냈다고 볼 수 있다.
최적화(optimization)의 정의는
허용된 자원 안에서
주어진 요구사항을 만족시키면서
최고의 결과를 이끌어내는 것이다.
컴퓨터의 발명 계기 역시 그렇다.
복잡한 계산을 빠르고 편리하게 하기 위해서이다.
최적화의 관점에서 해석해보면
요구사항 => 복잡한 계산하기
빠르다 => 시간단축
편리하다 => 에너지 소비 감소
허용된 자원 => 시간, 에너지
가 될 것이다.
나는 개발자의 지향점을 최적화의 전문가가 되는 것이라고 말하고 싶다.
컴퓨터, 인터넷, 스마트폰, 인공지능
이 모든 것들이 인간의 삶을 최적화하기 위해 만들어졌다.
GUI를 개발하여 컴퓨터를 좀 더 쓰기 쉽게 만들어주고
인터넷을 개발하여 물리적 거리의 제한을 줄여주고
스마트폰을 개발하여 라이프스타일을 최적화했다.
최적화는 인간의 본능이다.
최근 나는 나의 삶을 최적화하는 즐거움에 빠졌다.
해야할 공부는 많고, 건강하고 즐겁게 다양한 경험을 하고싶은 나에게 있어
시간이라는 자원의 관리는 무엇보다 중요하다.
그래서 생활계획을 짜고 공부 루틴을 만들고 건강 관리를 하여 시간적 효율을 올리기 위해 노력하고 있다.
지금도 이 글을 쓰기 위해 불필요한 단어와 문장을 지우고 가독성을 높이기 위해 노력하고 있다.
다른 사람들의 시간을 아껴주고 싶기 때문이다.
개발자는 이런 일을 하는 사람이라고 생각한다.
한편으로 또 다른 생각이 떠오른다.
최적화를 추구하는 이유는 뭘까?
나의 삶의 모든 것을 최적화하고 살아간다면
그것이 즐거운 인생일까?
이 질문에 대한 대답은 No 이다.
효율적으로 공부를 하려면
필수적으로 사용해야 할 에너지를 제외한 모든 에너지를 공부에 쏟으면
시간 대비 최고의 결과를 얻을 것이다.
그러나 대부분의 사람은 그러지 못한다.
우리에겐 감정이 있기 때문이다.
공부만 하루종일 하면 괴롭다. 지겨우니까.
따라서 우리는 감정의 최적화 역시 고려해야한다.
나의 삶에서는 감정의 최적화에 대한 부분도 크게 염두에 두고 있다.
오랜 기간 공부를 해야하는 나의 삶을 즐겁게 유지하려면
무엇보다도 스트레스 관리가 필수적이다.
이런 부분을 직관적으로 느끼고
어떻게해야 스트레스를 받지 않고 평생 즐겁게 공부할 수 있을 것인지
지금도 끊임없이 고민하고 있다.
그리고 이 고민은 내 삶을 조금씩 더 행복하게 해주고 있다.
개발 스킬이 뛰어난 사람은 물리적 최적화에 뛰어날지는 몰라도
감정의 최적화에는 상대적으로 약할 것이다.
우리 모두가 개발자가 될 수 있는 이유가 바로 이것이다.
감성적인 성향의 사람은 개발 스킬을 배우는 것에 어려움이 있을지 몰라도
개발 스킬이 뛰어난 사람이 보지 못하는 이면,
감성적인 부분을 캐치하고 최적화하는 일에 능하다.
어떻게하면 사람들이 더 행복할지, 더 즐거울지에 대해 고민하며 개발을 하면 된다.
웹 개발에 있어서 UI/UX 라는 부분도 이 영역에 속한다.
위의 엘리베이터 문제 해결 방식에서도 보았듯이
이성적인 해결책보다 감성적인 해결책이 더 나은 결과를 보일 때도 있다.
그리고 감성이라는 것은 경험과 주관에서 나온다.
경험과 주관이라는 것은 모든 사람이 다 다르기 때문에
한 사람 한 사람마다의 문제해결방식은 모두가 다를 것이고
어느 상황에서 어떤 문제해결방식이 최고가 될 지는 아무도 모른다.
당신이 자신있는 영역을 최적화하기 위해 뛰어들어보자.
그 분야에 대해서는 당신이 최적화의 전문가가 될 것이다.
이것이 곧 좋은 개발자가 되는 길이라고 생각한다.
개발자로서의 나의 지향점
- 사용자가 직관적으로 편리함을 느낄 수 있는 결과물을 만들자
- 사용자의 감성을 만족시킬 수 있는 결과물을 만들자
- 함께 개발하는 사람들이 편리함을 느낄 수 있도록 코딩실력을 키우자
- 조금이라도 불편한 점을 개선하다보면 이상적인 결과물이 나올 것이다
- 내 시간과 에너지는 유한하고 내가 잘하는 것도 한정적이다. 내가 가장 잘 할 수 있는 것에 포커싱하자
- 효율적인 것만이 정답이 아니다. 불편하더라도 감정을 자극할 수 있다면 의외의 해답이 나온다
'오늘의 생각정리 > 개발' 카테고리의 다른 글
개발 공부 1주년 기념 회고 (0) | 2023.02.19 |
---|---|
기록의 중요성 (0) | 2023.02.19 |
근황과 개발자로의 방향성에 대한 고찰 (0) | 2023.02.14 |
commit 안해서 벌받음 (0) | 2022.10.06 |
데이터 사이언스에 대해 공부하며 얻은 인사이트 정리 (0) | 2022.04.16 |