소프트웨어 엔지니어로 산다는 건 미친 짓이야
(0x1.pt)- 다른 직업들도 이런지 자주 생각하게 됨
- 소프트웨어 엔지니어는 처음부터 여러 프로그래밍 언어와 도구들을 알아야 함
- 하지만 그것만으로는 부족하며, 회사가 사용하는 특정 프레임워크도 익혀야 함
- 예: Rails, Django, Laravel 등
- CSS도 필수인데, 레이아웃이 깨지는 이유는 평생 배워도 알기 어려움
- 적당히 아는 정도로는 살아남을 수는 있음
JavaScript와 프론트엔드 생태계의 진화
- JavaScript를 피할 수 있는 경우는 드묾
- 레거시 앱에서 jQuery만 사용하는 경우는 운이 좋은 경우
- React가 나오면서 프론트와 백엔드가 구분되기 시작했음
- 하지만 회사들은 인력은 늘리지 않고 전체를 다루는 '풀스택 엔지니어'를 요구함
- React 학습 필수
- REST API 구현도 필요
- 타입이 필요하다는 얘기가 나와 TypeScript도 학습해야 함
- 상태 관리는 Redux로 해결하라는 분위기
- 도구 설정도 필요: webpack, esbuild, rollup, Prettier, ESLint 등
기술 선택의 자유? 사실상 없음
- 기존 방식대로 해도 괜찮지만, 현실은 그렇지 않음
- React만 써본 신입에게 서버 사이드 렌더링을 가르칠 여유가 있는지 고민해야 함
- 스타트업은 빠르게 움직이고 돈도 태우는 구조라 표준에서 벗어나기 어려움
시스템 관리의 변화: DevOps의 등장
- 과거에는 시스템 관리자(System Administrator)가 따로 있었음
- 인프라 관리, DB 업그레이드, 데몬 관리 등을 맡았음
- 현재는 DevOps 문화로 인해 엔지니어가 모든 것을 맡게 됨
- Docker 학습 필요
- Docker가 필요 없는 구조라도 Ansible, SystemD 같은 도구를 익혀야 함
클라우드와 인프라 관리 도구의 필요성
- 이제 AWS도 필수로 다룰 줄 알아야 함
- GUI를 사용하는 것은 초보 취급이라 Terraform이나 Pulumi 같은 IaC 도구 학습 필요
승진하면 끝일까? 새로운 시작임
- 매니저가 되면 완전히 다른 업무를 배워야 함
- 마감일 추정
- 작업 분배
- 작업 정의 작성
- 연례 평가 참여
- 제품 회의에서 피드백 제공
- 회사 규모가 커지지 않았다면 여전히 엔지니어 업무도 병행해야 함
요구 사항은 끝없이 늘어남
- 최근 어떤 비밀스러운 회사에서 연락 옴
- 요구 기술: Rails, Hotwire, 네이티브 모바일 개발
- 커널이나 컴파일러 개발도 요구할 기세
- 소프트웨어는 점점 더 복잡해짐
- 복잡함에는 이유가 있지만 전문화가 사라지고 있음
- 집을 짓는 데에도 다양한 전문가가 필요함
- 그런데 소프트웨어에서는 모든 역할을 한 명에게 요구하는 상황임
미래의 희망: 프롬프트 몇 개로 앱 개발하는 세상
- 이렇게 복잡한 현실이라면, 몇 개의 프롬프트로 앱을 만드는 미래도 나쁘지 않음
최근 몇 년간 소프트웨어 개발자 공급이 크게 늘면서 소프트웨어 개발에 대해 업계 종사자가 아닌 분들도 많이 알게 되고, 그러면 소프트웨어 업계 종사자들의 엄살과 동료 직군 사람들의 과도한 띄워주기가 어느정도 줄어들지 않을까 하는 기대가 있었는데, 그 저변에 공급부족으로 인한 대우 개선이 깔려있다 보니 오히려 소위 “잘나가는” 직업으로 여겨지면서 어쩌면 더 심해지는 것 같다는 생각이 듭니다.
네, 소프트웨어 개발이 인기 없는 직업이고 남들이 관심없고 하고싶어하지 않아 하던 소수의 직업일 때는 그래도 상대적으로 괜찮았습니다. 그런 게 일종의 동기부여가 되고, 소수 직업군으로서 직업 정체성을 형성하는 데 기여할 수도 있었지요. ‘내가 속한 그룹은 특별해’ 라는 감정은 사람이 소속감을 느끼고 심리적 안정감을 갖게 되는 중요한 요소이기도 합니다.
그런데, 이미 제가 프로그래머가 되기로 결심한 시절에도 이미 소프트웨어 개발은 다분히 대중적인 일이었지만, 이제는 정말로 그런 시대는 지나지 않았나요? 한국 기준으로 매년 배출하는 소프트웨어 전공자 인구도 이전과는 비교할 수 없을 만큼 크게 늘었죠. 더이상 소프트웨어 개발은 신비로운 일이 아닙니다. 그 밖에도 인력 조달 실패로 인해 벌어졌던 수년간의 비전공자 재교육 붐이 이어진 결과로, 취향과 사고방식만 맞으면 비전공자도 독학으로 배워서 손쉽게 아마추어를 벗어나 프로가 될 수 있다는 것도 온 사회에 널리 알려져 있잖아요.
소프트웨어 개발이 어려운 일이라는 사람들은 본인이 그 일을 하는 이유가 뭘까요? 고되고 힘든 일이지만 보람있는 일이라서 하시나요? 이 업계에서 그런 분들은 그리 많지는 않았던 것 같습니다. 남들이 못하는 것 같으니까 어렵다고 주장하는거지, 실상은 그게 본인한테 가장 쉬운 일이니까 하시는 것 아닌가요? 남들이 좀 띄워준다고 자화자찬하면서 나만 특별한 양 여기면서 눈을 가리지 말고 주위를 봐야합니다. 이공계에서 어떤 분야가 방구석에서 인터넷 좀 보고 독학한다고 (잘 하면) 몇달만에 현업에 투입할 수 있는 전문가가 됩니까?
수요 증가와 인력 양성 정책의 불일치로 일시적인 시장 이익을 누린다고, 운 좋게 남들과 달리 이 일을 꺼리지 않는 사고 방식과 교육의 기회를 얻었다고 해서, 거기에 대단한 의미 부여를 하지 않으면 좋겠습니다.
현대 산업의 관점에서 소프트웨어는 아직 고도의 전문화도 대량 생산도 제대로 이루어지지 않은 상태입니다. 수공업과 제조업 사이에서 수공업에 훨씬 가까운 단계이고, 많은 수공업이 그렇듯이 소프트웨어 프로그래머 역시 아직 취미와 직업의 경계가 흐릿하지요.
우리가 하는 일이란 산업의 측면에서 대장간에서 쇠를 두들기고 톱을 들고 목공을 하고 사포를 들고 유리를 연마하는 것과 비슷하다는 것을 받아들여야 합니다. 이건 현대산업이 나무를 집어넣으면 제지공장이 종이를 찍어내고 석유를 부으면 석유화학공장이 플라스틱을 뽑아내고 실리콘을 비싼 기계에 넣으면 공장이 반도체를 찍어내는 것과는 명백히 다른 것입니다. 여타 제조업과 달리 아직 소프트웨어 개발에는 손재주를 가진 사람이 필요한 것이죠.
물론 남들이 가지지 못한 훌륭한 손재주를 가진 사람은 존중받아 마땅하지만, 약간의 손재주를 연마했다고 해서 소싯적 배워둔 손재주로 평생 먹고 살면 좋을텐데 왜 그럴수 없을까, 나는 이런 훌륭한 손재주를 가졌는데 다른 사람들처럼 힘들게 일하지 않아야 하는 것 아닐까, 나는 남들은 쉽게 하지 못하는 대단한 재능을 가진 것이 아닐까 등등의 특별한 나에 심취하는건 교만에 가까운 일이 아닐까 합니다.
누구나 도전할수있다는 말은 부정하지 않겠습니다. 하지만, 누구나 프로가 쉽게 된다는 말은 거짓입니다. 현실에서 누군가한테 그런말 하고 다니시지 않았기를 바랍니다. 그건 사기이니까요.
밑에 적절한 비판들이 있네요. 컴퓨팅 기술이 접근성이 높은것도 SW엔지니어들에 기여가 크죠. 접근성이 높다는게 프로가가 되기 쉽다는것도 아니고요. 요리에 대한 접근성이 높다고 요리전문가 되는게 쉽나요?
•배우기 쉽다. 인정하지만 진입장벽이 낮은 것이 전문성이 낮다를 의미하지는 않습니다. 다른 산업군, 특히 제조업의 다른 기술 직군에 비해 배우기 쉬운 이유는 개발 자체가 쉬워서라기보다는 오픈소스 문화나 낮은 위험성이 아닐까 생각합니다. 앞서 말한 개발자의 다양성 측면에서 빨리 배워 할 수 있는 일들이 있고 전문성을 기반으로 해야 하는 일이 있는 것이죠.
•그림 좀 배우고나서 만화작가 조수로 들어갔다고해서 프로라 하고 다니실건가요. 아니면 요리학원 좀 다녀서 주방에 취업하면 요리전문가, 쉐프라고 하고다닐겁니까? 그거랑 비슷한 수준이에요. 하시는 말이. 그렇게 간단한거면 그걸 프로라 안하죠
•제조업과 직접 비교가 유의미할까요? 산업의 고도화가 충분히 되지 않았다는 관점에서 그 비교 대상은 제조업으로 보이는데요. 제조업의 패러다임으로 소프트웨어 업을 이해하려고 하면 수공업이나 취미 개발로 보일 수 있지만 반대로 이런 부분이 소프트웨어 개발만의 유연하고 창의적인 문화를 만들고 이를 발판으로 성장하고 있다고 생각합니다.
•과거에 비해서 한명의 엔지니어에게 기대하는 바가 넓고 커진 것은 맞습니다. 그리고 과거에 비해훨씬 많은 현실세계가 컴퓨터 시스템 안으로 들어왔고, 그만큼 추상화와 구현 난이도도 급속도로 높아지고 있죠. 현실에서의 더 어려운 일들을 나열한다고 해서 이 일은 안 힘든 일이다... 라고 주장할 필요가 있나 싶네요
•환경이 변화했습니다. 과거보다 시장에서 개발자에 대한 기대와 보상이 커지는 이유가 단지 그들의 기술, 숙련도, 전문성이라고 생각하지 않습니다. 인류의 삶에 IT가 깊숙하게 들어갈수록 소프트웨어가 중요해지고, 많은 인프라를 떠받치고 있죠. 각 개발자의 역량이 커져서 보상이 많아지는 것이 아니라 그냥 일 자체가 비싸졌다고 생각합니다. 과거보다 중요해졌으니까요.
•SW개발이 단순히 코드생성,API생성하는것이라 착각하시는거 같은데. SW개발의 본질은 현실을 추상화해 프로토콜과 인터페이스를 만들고 거기에 끼워 맞추는 데 있습니다. 서로 다른 방식으로 작동하는 것들을 연결해서 하나처럼 작동시키는 데 있다는말입다. 이게 생각보다 더 복잡한 지적활동이고 그래서 생각보다 SW엔지니어 육성하기가 힘든겁니다. 지금 사람이 많다는데 그중에 제대로 일할수 있는 인력이 얼마나 됩니까? 대부분 툴 한반 써봤다인데 그게 SW엔지니어의 핵심이 아닙니다.
어디가서 로보틱스, OS같은 분야로 박사학위라도 받으면 학위과정만 마치고도 최소한 그 부분에서는 전문가 프로 소리 들을수는 있겠네요. 프로의 기준은 최소 그정도는 되야 한다는 말입니다.
그림 좀 배우고나서 만화작가 조수로 들어갔다고해서 프로라 하고 다니실건가요. 아니면 요리학원 좀 다녀서 주방에 취업하면 요리전문가, 쉐프라고 하고다닐겁니까? 그거랑 비슷한 수준이에요. 하시는 말이. 그렇게 간단한거면 그걸 프로라 안하죠
요리, 그림 누구나 할수있는일이니까. 몇 달 배우면 프로될수있다는 소리랑 비슷한 소리하시네요. SW엔지니어가 대우받는건 그만큼 SW영향력이 커져서죠. 그일이 힘드냐가 아니냐가 중요한게 아니고. 마음에 안들면 다른 일 하시던가요. 다른 분야가서도 저런 소리하고 다니시면 좋은 소리 못 듣습니다. 그 분들이 기분 나빠할거요. 대단한일 한다고 자만에 빠지는것도 금물이지만 가치를 깍아내리는것도 제대로 된 행동이 아닙니다.
이공계에서 어떤 분야가 방구석에서 인터넷 좀 보고 독학한다고 (잘 하면) 몇달만에 현업에 투입할 수 있는 전문가가 됩니까? <- 어떤분야든 이런 엔트리 레벨 구직자는 누구도 전문가라 안합니다. 어떤분이 먼저 비판했네요 벌써. 정말 이렇게 생각하신다면 당신이 생각 수준이 낮고 프로의식도 없는겁니다.
SW개발이 단순히 코드생성,API생성하는것이라 착각하시는거 같은데. SW개발의 본질은 현실을 추상화해 프로토콜과 인터페이스를 만들고 거기에 끼워 맞추는 데 있습니다. 서로 다른 방식으로 작동하는 것들을 연결해서 하나처럼 작동시키는 데 있다는말입다. 이게 생각보다 더 복잡한 지적활동이고 그래서 생각보다 SW엔지니어 육성하기가 힘든겁니다. 지금 사람이 많다는데 그중에 제대로 일할수 있는 인력이 얼마나 됩니까? 대부분 툴 한반 써봤다인데 그게 SW엔지니어의 핵심이 아닙니다.
다른 댓글처럼 삼성, 네이버 등에서 일하다가 AMD, Google등으로 이직하는 사람들이 나중에 경험가지고 한국에 돌아오면 큰 자산이 될텐데 이런 분위기에서 돌아오기는 커녕 계속 나가겠네요. 단순 돈문제가 아니라 환경이랑 인식이 열악한데.
전체적으로 하고싶은 말이 뭔지? 엔지니어들 대우가 좋은건 아닌데 한국이? 본인이 일하는것보다 많이 받는거 같으면 어디 기부라도 하시면 되겠네요. 한국이 엔지니어들이 교만해서 문제가 되는 환경인가요? 해외보다 열악해서 잘하는 사람들이 이직하고 안돌아오는게 문제인데(교만한 사람도 있을수 있지만)
남들도 본인하고 비슷할거라고 멋대로 단정하는거 보면 확실히 님은 교만하시네요. 어려운 문제에 도전하시는걸 좋아해서 이 일을 하시는 분들도 많습니다. 본인의 경험이 전부라 생각하지 마세요.
이공계에서 어떤 분야가 방구석에서 인터넷 좀 보고 독학한다고 (잘 하면) 몇달만에 현업에 투입할 수 있는 전문가가 됩니까? <- 어떤분야든 이런 엔트리 레벨 구직자는 누구도 전문가라 안합니다.
이댓글처럼 본인은 전문가라고 생각하는 기준이 무척 낮은가보네요. 보통은 저런 경우를 전문가라 안합니다. 다른데가서 그런 소리 하지마시길
웃기는 분이네요. 교만한건 당신이 아닌지. 저 분은 그냥 자기 힘든점을 토로 했을 뿐입니다. 저분이 누군가를 비하한것도 아닌데 당신이랑 느끼는 점이 다르다 해서 그게 비난받아야 할 이유가 되나요? 본인이야말로 SW엔지니어로서 자부심을 느끼는 분들을 까내리고 싶어하는듯하네요. 본인일에 자부심이 없고 만족을 못하는거 같은데 그런 감정은 알아서 정리하세요. 헛소리 하고 다니지말고.
다른 분 댓글이 적절한 비판같아 첨부합니다.
" 과거에 비해서 한명의 엔지니어에게 기대하는 바가 넓고 커진 것은 맞습니다. 그리고 과거에 비해훨씬 많은 현실세계가 컴퓨터 시스템 안으로 들어왔고, 그만큼 추상화와 구현 난이도도 급속도로 높아지고 있죠. 현실에서의 더 어려운 일들을 나열한다고 해서 이 일은 안 힘든 일이다... 라고 주장할 필요가 있나 싶네요"
저 분은 저게 힘들수도 있죠. 힘든건 주관적이니까.
저 분이 왜 저리 욕먹는지 모르겠네요. 다른 직업을 비하했으면 비판받을수 있지만 그것도 아니죠. 실제로는 당신이 오히려 글쓴이를 과하게 비난하고 있죠 비난받을일도 아닌데. 진짜 교만한건 당신이에요. 앞으로는 입 좀 무겁게하고 다니시길. 솔직히 본인이 프로의식 없고 자부심없는걸 포장하고 싶어하는 느낌이네요. 누구나 도전할수있는 일은 맞지만 그게 프로 의식이랑 자부심을 가지지 말라는 이야기가 아닙니다. 더이상은 이야기 하지 않겠습니다.
"나는 프로그래밍이 쉬워서 시작했다. 온종일 눈앞에 놓인 문제를 해결하고 5시 반쯤 퇴근해 집으로 돌아가 친구들과 어울렸다. 하지만 20년이 지난 지금도 소프트웨어 분야에서 일하는 것은 이 일이 어려운 일이기 때문이다.
쉬웠던 일이 이제 와서 어려워진 이유는 문제를 해결하는 역할에서 제품을 성장시키는 역할로, 이미 정해진 올바름만 추구하는 역할에서 변화를 위해 무엇이 올바른지 최적화하는 역할로 바뀌었기 때문이다." - 제시카 커(Jessica Kerr),
<자바 개발자를 위한 97가지 제안>의 여러 글 중에서 "퍼즐에서 제품까지"라는 제목을 제시카 커가 쓴 글의 시작 부분
소프트웨어 개발이 어려운 일이라는 사람들은 본인이 그 일을 하는 이유가 뭘까요? 고되고 힘든 일이지만 보람있는 일이라서 하시나요? 이 업계에서 그런 분들은 그리 많지는 않았던 것 같습니다. <-이것도 웃기는 말이네요. 복잡한 문제 풀이등에 재미를 느껴서 하시는 분들도 많습니다. 본인이야말로 본인이 한 경험으로 일반화를 엄청하고있네요.
밑에 좋은 말이 있어서 여기도 남기겠습니다.
제조업과 직접 비교가 유의미할까요? 산업의 고도화가 충분히 되지 않았다는 관점에서 그 비교 대상은 제조업으로 보이는데요. 제조업의 패러다임으로 소프트웨어 업을 이해하려고 하면 수공업이나 취미 개발로 보일 수 있지만 반대로 이런 부분이 소프트웨어 개발만의 유연하고 창의적인 문화를 만들고 이를 발판으로 성장하고 있다고 생각합니다.
한가지 더 말하면 SW도 분야가 넓습니다. 빨리 배워 할 수 있는 일들이 있고 전문성을 기반으로 해야 하는 일이 있는 것이죠. 본인의 경험이 전부라 생각하지 마세요. 그것도 교만이니까.
앞에서 말한것처럼 SW엔지니어 대우가 달라진건 그 일이 힘들고 어려워서가 아닙니다. 그건 주관적인 감정이고 그런게 직업의 대우를 결정하지 않죠. 다른 댓글처럼 소프트웨어가 중요해지고, 많은 인프라를 떠받치고 있죠. 각 개발자의 역량이 커져서 보상이 많아지는 것이 아니라 그냥 일 자체가 비싸졌다고 생각합니다. 과거보다 중요해졌으니까요. 여기서 그일이 힘드냐 아니냐는 크게 중요한 문제가 아닙니다.
당신이 쉬운일은 누군가한테 어려운 일이될수도 있고 다른 이에게 쉬운일이 당신한테는 어려울수 있죠. 당신이 하는 말은 전부 주관적이죠. 다시 말하지만 힘들고 어렵다는건 주관적인 감정이고 그런게 직업의 대우를 결정하지 않죠. 교만떨지 말라하는데 주관적인 이야기로 교만떠는건 당신 같네요.
운 좋게 남들과 달리 이 일을 꺼리지 않는 사고 방식과 교육의 기회를 얻었다고 해서, 거기에 대단한 의미 부여를 하지 않으면 좋겠습니다.<-세상에 안그런 직업이 있나요? 이런게 겸손을 과장한 까내리기 입니다.
그냥 할수있는거랑 잡을 구해서 돈을 받고 일을 할수있는거랑은 완전히 다르죠. 그쪽분야에서 완전 무지한분이 단기 교육받고 제대로 된 잡을 구하기는 쉽지않죠.(무지하다는건 수학/산업공학/전자공학 등 관련 이공계 출신이지만 SW지식이 없는 분들을 말하는게 아니라 아예 엔지니어링 베이스가 없는 분들을 말합니다.)요리 그림도 단기로 몇달 배우면 할수있습니다. 그런데 그걸로 제대로 된 잡 구하기 쉬울까요?
이공계에서 어떤 분야가 방구석에서 인터넷 좀 보고 독학한다고 (잘 하면) 몇달만에 현업에 투입할 수 있는 전문가가 됩니까? <- 어떤분야든 이런 엔트리 레벨 구직자는 누구도 전문가라 안합니다. 글에 헛소리가 너무 많아서 지적할 부분이 많네요.
그리고 물론 남들이 가지지 못한 훌륭한 손재주를 가진 사람은 존중받아 마땅하지만, 약간의 손재주를 연마했다고 해서 소싯적 배워둔 손재주로 평생 먹고 살면 좋을텐데 왜 그럴수 없을까, 나는 이런 훌륭한 손재주를 가졌는데 다른 사람들처럼 힘들게 일하지 않아야 하는 것 아닐까, 나는 남들은 쉽게 하지 못하는 대단한 재능을 가진 것이 아닐까 등등의 특별한 나에 심취하는건 교만에 가까운 일이 아닐까 합니다. <- 원론적으로 맞는말이지만 엔지니어와 과학자한테만 유독 이런 잣대를 들이대는 분들이
많이보이네요. 겸손을 과장한 까내리기로 보이는데.
글쎄요. 심취하는건 금물이지만 본인은 반대로 까내리고 있네요. SW엔지니어링을. SW엔지니어 대우가 달라진건 그 일이 힘들고 어려워서가 아닙니다. 그건 주관적인 감정이고 그런게 직업의 대우를 결정하지 않죠. 다른 댓글처럼 소프트웨어가 중요해지고, 많은 인프라를 떠받치고 있죠. 각 개발자의 역량이 커져서 보상이 많아지는 것이 아니라 그냥 일 자체가 비싸졌다고 생각합니다. 과거보다 중요해졌으니까요. 여기서 그일이 힘드냐 아니냐는 크게 중요한 문제가 아닙니다.
그리고 그냥 할수있는거랑 어느정도 일을 해낼수있는거랑은 천지 차이라. 특이 케이스 제외하고 생초보가 몇달 단기 교육으로 제대로 된 잡 구하기가 쉽나요.
공감합니다. 건축은 2~3년짜리 프로젝트도 일주일 내외의 일정 추정이 가능하다고 들었습니다. 그런 측면에서 아직 소프트웨어는 갈 길이 멉니다.
소프트웨어 엔지니어가 되는 것은 어렵지 않음. 소프트웨어 엔지니어링은 가장 쉬운 직업 중 하나임. 우리는 너무 보호받고 있어서 이 글에서 설명된 것이 어렵다고 생각하는데, 이는 우리의 직업이 얼마나 어렵지 않은지를 보여주는 증거임
저는 이 의견에 동감합니다. 훨씬 더 어려운 일들을 하지만 소프트웨어 엔지니어만큼 보상을 받지 못하는 다른 직업들이 많습니다.
무슨말도 안되는 소리하시네요. SW엔지니어라고 인터넷업계에서 전부 일하나요? 반도체 업계도 있고 자율주행, 로보틱스 분야에도 있습니다. 그리고 인터넷 업계에서 일하는 사람만 인터넷이 이용가능 하나요?
글쎄요. 힘든일은 많죠. 그런데 그게 무슨상관이죠? 언제부터 노동의 대가를 일이 힘드냐 안 힘드냐로 따졌을까요. 그건 주관적인데.SW엔지니어가 대우받는건 SW가치가 그만큼 커져서 그런거죠. 그일이 힘드냐 안힘드냐는 거기서 크게 중요한 판단 기준이 아닙니다.
같은 기능을 해도 다른 종류의 회로 요소가 있고(커패시터만 해도 종류가 다양하고 단순 on/off만 해도 트랜지스터, 트라이액 등등), 수십개 회사에서 수백 수천개의 제품을 나와서 가격과 특성을 따져가며 선정하기, 그 와중에서도 회로 부품 리비전에 따른 에라타를 봐야하고, 소프트웨어 릴리즈야 롤백하면 끝이지만 제품은 한번 생산하면 돌이킬 수가 없어서 신중해야하고, 테스트도 PCB찍고 실장하고 수정하고 한 세월이며, 한 부품이 저 멀리 있는 다른 부품에 영향을 주고 디버깅만 해도 그냥 브레이크 포인트 걸면 대부분 해결되는 소프트웨어와 달리 부족한 jtag 포트 빼랴 점퍼 날리랴, 실험실에서는 문제가 없는데 입력되는 전기 파형이 일그러질때만 이상해지기, EMC 인증도 고역이죠.
제가 하는건 아니고 옆에서 하는걸 본 게 이렇습니다.
소프트웨어 엔지니어가 힘든 직군이라고 얘기하는 사람들은 CS부서에서 고객 대응 반나절만 해 보면 생각이 많이 바뀔 겁니다.
과거에는 덜 복잡했다 라는 환상 같은 게 있는 것 같은데 어차피 프로그래밍이란 인간 두뇌의 capacity가 한계선으로 작용하기 때문에 예나 지금이나 강도의 차이는 별로 없습니다. 과거보다 더 추상화된 도구로 더 넓은 영역을 다루는 것 뿐이죠.
컴퓨터는 그나마 제어하기 쉬운 편에 속하는 물질이고, 사실 이런 지식 노동 자체는 다른 직군에 비하면 평균적으로는 덜 힘든 편일 겁니다. 조금 특별하게 힘든 게 있다면 현대 사회 특성 상 365/24 내내 신뢰성을 요구받는다는 점이겠죠.
동감합니다. 본문은 개발이 적성에 안맞는 사람이 작성한 글 같네요.
지금 혼자서도 할 수 있는 일을 과거에 하려고 했다면 매우매우 어려웠을 겁니다.
하지만 이젠 추상화된 도구 덕분에 동일한 노력으로도 더 넓은 영역을 다룰 수 있게 됐으니 혼자서도 서비스를 운영할 수 있게 됐죠. 솔직히 개꿀입니다.
과거와 다르게 한명이 당담해야 하는 영역이 넓어지면서 발생하는 문제가 있죠.
•과거에 비해서 한명의 엔지니어에게 기대하는 바가 넓고 커진 것은 맞습니다. 그리고 과거에 비해훨씬 많은 현실세계가 컴퓨터 시스템 안으로 들어왔고, 그만큼 추상화와 구현 난이도도 급속도로 높아지고 있죠. 현실에서의 더 어려운 일들을 나열한다고 해서 이 일은 안 힘든 일이다... 라고 주장할 필요가 있나 싶네요
그냥 웃고 지나갑니다... 하하
세상 안 어려운 일이 어디 있기나 할까요
타 직군에서 10년 이상 일하다가 IT로 왔는데 지난 10년간 밖에서 보던 만큼이나 엄살 심한사람이 적지 않네요.
힘든건 주관적인건데 왜 그런식으로 말하시죠?
저 분은 저런 부분이 고충일수있죠.
그런식으로 말할거면 누가 님보고 늦게 업종바꿔서 고만고만한 일만 하니까 그렇게 느끼지. 그렇게 말해도 할말 없으시죠?
이 글은 마치 소프트웨어 엔지니어의 삶이 온통 고통과 무질서인 것처럼 느껴지지만, 사실은 글쓴이 본인이 경험한 특정 기술 트렌드와 환경에만 기반한 이야기로 보입니다.
기술의 변화는 분명 빠르지만, 모든 엔지니어가 똑같이 겪는 것도 아니고, 그 안에서 안정성과 즐거움을 느끼는 사람도 많습니다.
변화가 있다면 그것에 적응하는 게 엔지니어링의 일부이지, 그 자체가 '미친 짓'은 아니죠.
비판적인 댓글을 보고 많은 생각을 했습니다. 공감되는 부분도 있고 다르게 생각하는 부분도 있습니다.
- 현재 개발자의 위상에 어느 정도 거품이 있을 수 있지만 이는 다른 직업군도 마찬가지라고 생각합니다. 소수에서 다수로. 즉, 종사자가 늘어가고 다양성이 늘어나면서 자연스러운 현상이고, 이 방향이 맞다는 아니지만 개발자가 유독 그렇다고 보진 않습니다.
- 배우기 쉽다. 인정하지만 진입장벽이 낮은 것이 전문성이 낮다를 의미하지는 않습니다. 다른 산업군, 특히 제조업의 다른 기술 직군에 비해 배우기 쉬운 이유는 개발 자체가 쉬워서라기보다는 오픈소스 문화나 낮은 위험성이 아닐까 생각합니다. 앞서 말한 개발자의 다양성 측면에서 빨리 배워 할 수 있는 일들이 있고 전문성을 기반으로 해야 하는 일이 있는 것이죠.
- 환경이 변화했습니다. 과거보다 시장에서 개발자에 대한 기대와 보상이 커지는 이유가 단지 그들의 기술, 숙련도, 전문성이라고 생각하지 않습니다. 인류의 삶에 IT가 깊숙하게 들어갈수록 소프트웨어가 중요해지고, 많은 인프라를 떠받치고 있죠. 각 개발자의 역량이 커져서 보상이 많아지는 것이 아니라 그냥 일 자체가 비싸졌다고 생각합니다. 과거보다 중요해졌으니까요.
- 제조업과 직접 비교가 유의미할까요? 산업의 고도화가 충분히 되지 않았다는 관점에서 그 비교 대상은 제조업으로 보이는데요. 제조업의 패러다임으로 소프트웨어 업을 이해하려고 하면 수공업이나 취미 개발로 보일 수 있지만 반대로 이런 부분이 소프트웨어 개발만의 유연하고 창의적인 문화를 만들고 이를 발판으로 성장하고 있다고 생각합니다.
- 지나친 심취는 위험하다. 매우 공감합니다. 세상에 공부해야하는 일이 개발만 있는 것도 아니고, 여전히 우리는 직업란에 "회사원"이라고 쓰죠. 사회의 분위기에 거품이 낀다고 해서 다른 직업과 크게 다르다는 생각은 경계해야 할 것입니다. 하지만 이건 어떤 직업이든 마찬가지죠.
그러게요. 댓글도 헛소리가 많네요. 과도한 심취도 안되겠지만 소프트웨어 엔지니어링이 그렇게 별거 아니라고 느껴지면 그만 하세요 그 일을. 솔직히 기준을 낮추면 쉬운일이지만 그렇지 않다면 어려운 일인건 사실아닙니까? 세상 대부분 직업이 그렇겠지만.
글쓴분이 어떤 부분에 어려움을 느끼는지 이해가 가는데 반응들이 이상하네요. 현실에 다른 더 큰 어려움이 있다고 나열해봐야 크게 도움이 안되죠. 그건 주관적이니까.
https://whoisnnamdi.com/never-enough-developers/
왜 숙련된 SW엔지니어를 구하기 어려운지 분석한 외국글인데 한번 읽어보시죠.
엔지니어로 시작하더라도 중간에 비엔지니어 계열로 이직이 높음 - 새로운 기술로의 변환이 다른 직업보다 매우 빠른 편 - 2007 ~ 2019년 온라인 구인 정보 분석 - 컴퓨터 및 수학 분야는 47%는 하나 이상의 새로운 기술을 요구(ex. 2007년에는 생소했던 기술) - 교육, 법률 등 분야에서는 20% 인 것과 비교하면 아주 큰 변화 - 2007년에 쓰인 기술 중 16%는 2019년에 더이상 쓸모 없는 기술이 되기도 함. 이 역시 다른 직업과 비교하면 2배 정도. - 필요 기술이 빠르게 늘어나고, 또 빠르게 사라짐. - 즉, 경력을 쌓더라도 안정적이기 힘듬. 경력자도 커리어 초기에 존재하지 않았던 기술을 계속 배우고 성장해야만 함. - 빠르게 변하는 분야(ex.컴퓨터과학)의 직업은 다른 직군보다 경력 초반에 더 높은 급여를 받는 편이다. 하지만 시간에 지남에 따라 이 프리미엄이 빠르게 감소. 35~40세 이후로는 타 직군(사회 과학, 비지니스)과 비교했을 때 오히려 더 프리미엄이 적어짐. - 엔지니어링 : 초기에 고도로 숙련, 빠르게 변화하는 직군. 초기 경력 수입이 극대화. 하지만 시간이 흐를 수록 새로운 기술이 도입됨에 따라 가지고 있던 기술의 가치가 떨어지게 됨. 근로자가 경력이 쌓이더라도 계속 배워야 하는데 학습 효과가 줄어들게 되고, 경험을 이용한 수익이 낮아지게 됨. - 빠르게 배우는 사람들이 빠르게 빠져나간다. - 인지 능력이 높은 빠른 습득 능력을 가진 사람들은, 급변하는 분야에서보다는 안정적인 분야로 빨리 움직이는게 더 이득으로 보고 움직임. - 이러한 중도 이탈과 타 직군으로의 이직률은 일시적인 것이 아니며, 이 분야가 더 커질수록 증가할 것이다. 인력 풀을 늘리게 되면 임금이 낮아지게 되고 중간 이탈률 역시 높아지게 될 것. - 우리는 잘 하는 사람이 남고, 못하는 사람이 떠나길 기대하겠지만, 오히려 그 반대의 양상으로 진행 된다. 능력이 좋고 빠른 학습자들이 떠나고 있다. 이것은 소프트웨어 업계에 큰 기회 비용을 지불하게 만들고 있다. - 엔지니어 직군의 변화 속도가 느려지지 않는 이상 장기적으로 소프트웨어 개발자의 노동력 부족 현상은 계속 될 것이라 생각한다.
댓글 반응들이 오히려 이해가 안되네요. 한국이 엔지니어가 자뻑해서 문제가 되는 나라인지(자뻑하는 인간들이 일부 있을수있지만) 반대로 무시당하고 의기소침하다가 잘하는 엔지니어, 연구자들이 해외로 빠져나가서 문제가 되고있죠. 삼성, 네이버 등에서 일하다가 AMD, Google등으로 이직하는 사람들이 나중에 경험가지고 한국에 돌아오면 큰 자산이 될거라 생각하는데 이런 분위기면 아예 그 나라에 계속 사는 사람들이 대부분이겠네요.
sw영역을 좁게 보고있고, 부가가치도 낮게 보는분들이 많은거 같은데 본인이 일하고 눈으로 봤던 영역이 전부가 아닙니다. 밑에 댓글처럼 시스템반도체도 SW기술에 따라 경쟁력이 달라집니다.
댓글로 소프트웨어 엔지니어들을 이렇게 무시하고 까내리는거보니 앞으로 한국은 제조업, 반도체도 크게 힘을 발휘하지 못하겠군요. 자만하고 다른 사람을 무시하는건 물론 안되지만 실제 가치를 깍아내리는것도 좋은게 아닙니다.
한국은 왜 비메모리, 즉 시스템 반도체에 경쟁력이 없을까? 결론부터 말하자면, 바로 ‘소프트웨어 산업’에서 미국보다 열세에 있기 때문이다. 반도체와 ’소프트웨어‘가 무슨 상관이냐 반문할 수도 있다. 지금부터 그 이유를 배경부터 차근히 설명해 보도록 하겠다.
상술했듯 시스템 반도체의 경쟁력은 반도체 회로 설계 능력에서 나오지 않는다. 궁극적으로 하드웨어라는 형태로 실현되지만 그 근간은 해당 응용 분야의 소프트웨어 창의성에 있다.
다른 분 말씀처럼 SW도 영역이 넓습니다. 빨리 배워서 적용시킬수 있는 영역들이 있고 전문성을 기반으로 오랜 공부와 경험이 쌓여야 할수있는 영역들이 있는 것이죠. 본인들의 경험이 전부라 생각하지 마세요.
제목이 미친짓이야라고 번역되어있디만, 그냥 장신없게 만드는 현 상황을 표현한게 아닐까 싶습니다. 그리고 저는 본문 글에 어느 정도 공감합니다. 과거에 비해서 한명의 엔지니어에게 기대하는 바가 넓고 커진 것은 맞습니다. 그리고 과거에 비해훨씬 많은 현실세계가 컴퓨터 시스템 안으로 들어왔고, 그만큼 추상화와 구현 난이도도 급속도로 높아지고 있죠. 현실에서의 더 어려운 일들을 나열한다고 해서 이 일은 안 힘든 일이다... 라고 주장할 필요가 있나 싶네요
다른분말처럼 인류의 삶에 IT가 깊숙하게 들어갈수록 소프트웨어가 중요해지고, 많은 인프라를 떠받치고 있죠. 그러니까 대우가 달라진거고요. 그 일이 힘드냐 아니냐는 여기서 중요한 이야기가 아닙니다.
그러게요. 애초에 힘듬은 주관적인 감정이고 . 힘들다고 대우받는 세상이 아니었죠. 댓글들이 더 이상하다고 느껴지네요. 대우는 생산성등에 기여하냐에 따라 정해지죠. 그 일이 힘드냐와는 별개로.
본문이 딱히 다른 직업을 비하하지도 않은데 희안한 댓글들이 많이 달려있네요. 다른 분이 말한것처럼 인류의 삶에 IT가 깊숙하게 들어갈수록 소프트웨어가 중요해지고, 많은 인프라를 떠받치고 있죠. 각 개발자의 역량이 커져서 보상이 많아지는 것이 아니라 그냥 일 자체가 비싸졌다고 생각합니다. 과거보다 중요해졌으니까요. 여기서 그일이 힘드냐 아니냐는 크게 중요한 문제가 아닙니다. 힘들다 아니냐는 주관적인 감정이고 그게 특정 직업의 대우를 결정하지도 않죠.
댓글들이 이해가 안되네요. 자뻑도 안되고 타직업 비하는 당연히 하면 안되는 행위지만 애초에 원글에서 누군가를 비하했는지? 아니면 본인들은 자부심없고 그냥 누가해도 똑같다고 생각하면서 대충대충하는 엔지니어를 원하는지?
다른분이 어떤환경, 어떤 성향, 어떤 감정을 느끼고 있을지 몰라 평가하기에는 어렵지만.... 적어도 저는 공감되지 않고 다른 더 힘들고 고된 직업이 많으면 더 많을거라고 생각이 되어 본문에는 공감이 잘안되네요
그걸 비교를 할 필요가 없죠.
•제목이 미친짓이야라고 번역되어있디만, 그냥 장신없게 만드는 현 상황을 표현한게 아닐까 싶습니다. 그리고 저는 본문 글에 어느 정도 공감합니다. 과거에 비해서 한명의 엔지니어에게 기대하는 바가 넓고 커진 것은 맞습니다. 그리고 과거에 비해훨씬 많은 현실세계가 컴퓨터 시스템 안으로 들어왔고, 그만큼 추상화와 구현 난이도도 급속도로 높아지고 있죠. 현실에서의 더 어려운 일들을 나열한다고 해서 이 일은 안 힘든 일이다... 라고 주장할 필요가 있나 싶네요
저는 작성한 그 이유 때문에 소프트웨어 개발자가 되었습니다. 어떤 사람은 이 직업이 매일 새로운 기술을공부해야 해서 싫어할 거고 어떤 사람은 매일 새로운 기술을 공부해야 하기 때문에 축복받았다고 생각하죠. 보는 관점이 다 다른 거 같네요.
그렇죠. 저 분은 저게 힘들수도 있죠. 힘든건 주관적이니까.
저 분이 왜 저리 욕먹는지 모르겠네요. 다른 직업을 비하했으면 비판받을수 있지만 그것도 아니죠. 실제로는 댓글이 오히려 비이성적으로 글쓴이를 과하게 비난하고 있죸
다른 건 몰라도 IT 분야에는 정보가 좀 더 공개되고 자신의 작업물을 서로 나누는 분위기가 기업들까지 포함해서 꽤나 광범위하게 퍼져 있어서 그런 점은 좋더라고요.
프론트엔드는 어느 정도 맞다고 생각해요. 오늘 배운 것이 내일 쓰레기가 되는 동내라....
깊게 해보지는 않았지만 테일윈드 쓰기 전에는 엄청난 분노와 좌절만 느꼈습니다.
백엔드 내지 시스템?개발은 내가 이거 하면서 이 돈 받아도 되는 건가~하는 생각이 듭니다. 레고 조립하면서 돈 받는 느낌인데, 저는 소프트웨어 개발 해서 다행이에요...
Hacker News 의견
-
소프트웨어 엔지니어가 되는 것은 어렵지 않음. 소프트웨어 엔지니어링은 가장 쉬운 직업 중 하나임. 우리는 너무 보호받고 있어서 이 글에서 설명된 것이 어렵다고 생각하는데, 이는 우리의 직업이 얼마나 어렵지 않은지를 보여주는 증거임
-
소프트웨어가 점점 복잡해짐. 이러한 복잡성은 이유가 있음. 하지만 좋은 이유는 아님. 과거에는 효율성에 대한 인센티브가 있었음. 인재 부족, 대역폭과 컴퓨팅 파워의 부족, 예산의 부족 등이 있었음
-
20년간의 "모두가 프로그래머가 되자"는 움직임, 과도한 자금, 위원회에 의한 설계가 매우 복잡한 세상을 만들어냄
-
30년 경력 동안 앱, 시스템 프레임워크 작업을 했고, 새로운 언어, API, 프레임워크, 도구 등을 배워야 했음. 소프트웨어가 만들어지고 전달되는 방식의 변화도 포함됨: 애자일 개발, 기술 리드 주도, QA에서 무QA, 단위 테스트, 코드 리뷰 등 항상 움직이는 목표임
-
알고 있는 언어: Pascal, C, 6502 어셈블리, C++, Objective-C, Javascript, Swift 등
-
경력 초반에는 메모리 관리, 작고 빠르게 유지하는 것이 중요한 기술이었음. 경력 중반에는 동시성에 대한 전문가가 되어야 했음
-
-
Apple 같은 큰 회사에서는 "좋은" 팀과 "나쁜" 팀이 있었음. 이는 특정 엔지니어에게 상대적임. 내가 싫어하는 팀이 다른 사람에게는 잘 맞을 수 있음
-
"나쁜" 팀에서 몇 년간 일한 후, 심각한 위장 문제를 겪었고 수술이 필요했음. 스트레스를 심각하게 받아들여야 함
-
집을 짓는 것처럼, 전문화가 사라짐. 고등학교 졸업장 이상의 교육이 필요한 직업에서는 다재다능함이 요구됨. 많은 직업이 다양한 기술을 요구함
-
한 사람이 충분한 지식을 가지고 일을 처리할 수 있다면 두 명의 전문가를 고용할 필요가 없음. 건축 회사들이 최소한의 작업만 하는 경우가 많음
-
복잡성의 이유는 FAANG 같은 회사의 이력서 작성, 직업 틈새 시장 구축, 직업 보안 자아도취 때문임. 산업 성숙에 대한 근본적인 무시가 있음
-
좋은 일을 하면 매니저로 승진함. 완전히 다른 일을 배워야 함. 기술을 배우는 데 많은 시간을 보냈지만, "인간을 디버그"하는 능력으로 전환되지 않음
-
오늘날 웹 페이지는 10년 전과 크게 다르지 않음. 그러나 기계는 훨씬 더 복잡하고, 페이지의 다운로드 크기는 더 크고, 반응성은 떨어짐
-
소프트웨어 산업에 대한 이론 중 하나는 성숙한 기술 회사를 관리하는 방법을 아는 사람이 없다는 것임. 기술 세계에서 이력서 중심의 개발이 문제임. 기술 관리자는 이를 감지하고 막아야 하지만, 그렇게 하지 못함
-
몇 가지 프로그래밍 언어와 프레임워크를 배우는 것은 "약간 성가신" 것일 뿐, 어렵지 않음
-
소프트웨어는 인공적임. 물리 과학 분야가 새로운 기술과 해결책을 발견하는 데 더 어려움. 기후 변화, 질병 치료, 지속 가능한 식량 공급 보장과 같은 복잡한 문제 해결은 매우 어려움
-
소프트웨어 엔지니어링은 데이터를 재배치하는 것에 불과함. 강력하지만 물리적 세계의 가장 어려운 문제를 해결하는 것만큼 근본적으로 복잡하지 않음
소프트웨어 엔지니어링 복잡성은 엔지니어와 팀이 하는 작업에 따라 다른거지 절대적인 상한선이 정해져있는게 아닙니다. 모든 문제가 단순히 데이터 재배치한다고 해결되었으면 SW엔지니어링 이란 분야도 안생겨났겠죠.
물리세계가 아니라 형식체계에 기반해서 복잡함이 덜 하다고 주장하는건, 언어학, 수학이 사람이 인공적으로 만들어낸 언어, 숫자 형식체계에 기반하니까 복잡하지 않다는 주장이랑 비슷한 수준입니다.
기후 변화, 질병 치료, 지속 가능한 식량 공급 보장과 같은 복잡한 문제 해결에도 SW기술이 중요합니다. 앞으로 더 중요해질거고요. 왜 전혀 다른 문제인것처럼 이야기 하는지 잘 이해가 안되네요.
소프트웨어 엔지니어가 되는 것이 쉽다고? ㅋㅋ 지능지수 최상위여야 할 수 있는 일임. 학원에 30명 와서 살아남은 사람 1~2명인데 되기 쉽다?
parkindani 글쎄요. 그냥 할수있는거랑 잡을 구해서 돈을 받고 일을 할수있는거랑은 완전히 다르죠. 그쪽분야에서 완전 무지한분이 단기 교육받고 제대로 된 잡을 구하기는 쉽지않죠.(무지하다는건 수학/산업공학/전자공학 등 관련 이공계 출신이지만 SW지식이 없는 분들을 말하는게 아니라 아예 엔지니어링 베이스가 없는 분들을 말합니다.)요리 그림도 단기로 몇달 배우면 할수있습니다. 그런데 그걸로 제대로 된 잡 구하기 쉬울까요?
학원에서 50% 이상 살아남는 직업이 널리고 널렸습니다. 학원 갈 필요도 없는 직업도 많구요. 그리고 지능은 왜 이야기를 안 하세요? 개발자로 살아남으려면 상위 15% 이내의 지능이어야 하는데 ㅋㅋ
개발자로 살아남는다는게 뭔지 모르겠지만, 적어도 저의 경우엔 상위 1퍼센트 이상 인지능력을 가진 재능들에 둘러싸인건 맞는 것 같습니다.
그런데 지능이라는건 타고나는 것 만으로 결정되는게 아니라 분명히 후천적으로도 뇌가소성으로 향상이 됩니다. 탄생 시 결정되는 부분도 있지만, 그게 전부는 아닙니다. 그리고 소프트웨어 산업에서 지능이 그렇게까지 절대적인 요인인지는 모르겠습니다. 개발을 이해한다는 것 만으로 할 수 있는 일이 굉장히 많습니다. 제 주위 타 전공 학부 출신 또는 학사가 없는 동료들도 엔지니어든 다른 포지션이든 잘만 일하고 있습니다. '관련' 지능이 얼마나 됐"었"는지는 관심이 없습니다.
그리고 개인적으로 학원에서 "살아남는다"는 건 사실 본인의 흥미와 학원의 교육 시스템이 절대적인 영향력을 미친다고 생각합니다. 전형적인 루트, 그러니까 수학이나 공학, 또는 CS 학부를 졸업하고, 또는 대학원까지 진학하고 그런 경로를 따른다면 이건 지난 몇 백 년 동안 증명되고 향상된 교육 시스템이니까 당연히 16주나 32주짜리 학원과는 질과 양이 압도적으로 다릅니다.
그리고 학원에서 아무리 그렇게 압축적으로 가르친다고 하더라도, 본인의 기준이 랩에서 숙식하면서 논문 써오던 석박사 포지션과 동등하지 않으면 실패라면 무조건 실패입니다. 그런 포지션을 원하면 증명된 교육 시스템인 대학원을 진학하면 됩니다. 싫으면 말씀하신 지능에 의존하시면 됩니다. 그 때는 커브의 얼마나 끝자락의 인지능력이 필요할지는 모르겠습니다만.