fender
24k
2021-10-29 11:40:09 작성 2021-10-29 11:42:45 수정됨
107
9381

언어는 도구에 불과하다


프로그래밍을 하다 보면 "언어는 도구에 불과하다"는 이야기를 종종 접하게 됩니다. 제 경험상으로 저런 이야기를 하는 개발자가 열 명이 있다면 그중 한 두 명은 이른바 '폴리글랏(polyglot)'이라는 말이 잘 어울리는 상당한 실력자이고, 나머지는 본인들의 생각과는 달리 아직 한 가지 언어도 깊이 있게 공부해보지 않은 수준이었던 것 같습니다.

바꾸어 말하면, 다양한 프로그래밍 언어를 능수능란하게 구사할 만큼 배우는 것은 매우 어렵지만, 그 수준에 다다랐다고 착각하기엔 쉽다고도 할 수 있습니다. 그렇다면 왜 이런 현상이 발생하는 것일까요?

프로그래밍 언어를 배우는 것은 여러 면에서 외국어를 배우는 것과 비교할 수 있습니다. 둘 다 문법이라는 기본적인 규칙이 존재하며, 개발하면서 다양한 API를 사용한다는 것은 외국어를 말할 때 폭넓은 어휘를 구사할 수 있다는 것과 비슷합니다.

문제는 프로그래밍 언어이건 외국어이건, "잘한다"라고 평가받을 만한 수준이 어느 정도인지는 맥락에 따라 달라진다는 것입니다. 딱히 규칙이 있는 것은 아니지만, 저는 프로그래밍 전반에 걸쳐 "언어는 도구에 불과하다" 같은 이야기를 할 수 있으려면 최소한 다양한 언어를 현업에서 능숙하게 다루는 데 문제가 없어야 한다고 봅니다. 그렇다면 이를 외국어에 대입하면 어떤 수준에 해당할까요?

아마도 수준을 낮게 잡으면 해당 언어를 모국어로 하는 나라에서 일상생활이 가능한 정도가 될 테고, 좀 더 높게 잡으면 현지인과 구분이 안 되는 언어 구사가 가능한 수준, 그리고 매우 높게 잡으면 그 나라에서도 기자, 작가, 학자 등 수준 높은 말과 글을 사용하는 것이 직업인 사람들과 대등한 정도가 되는 것을 기준으로 삼을 수 있을 것입니다.

보통 처음 프로그래밍을 배우면 모든 것이 낯설고 문법을 제대로 적용해서 오류가 없도록 하는 것도 힘들게 느껴질 것입니다. 제대로 된 문법을 구사할 수 없다는 건, 자연어로 따지면 예를 들어 '개발자'라는 단어 뒤에 조사 '이'가 붙는지 '가'가 붙는지 헷갈린다거나, "나 배우기 한군말" 수준의 뜻만 겨우 통할 수준의 언어 구사력을 지녔다는 뜻입니다.

그러다가 점점 문법에 익숙해지고 문서나 인터넷 검색으로 필요한 기능을 찾아서 제대로 구동되는 프로그램을 작성할 줄 아는 단계가 되고, 이는 대략 외국에 나가 사전을 들고 다니면서 식당이나 가계 등을 큰 문제 없이 이용할 수 있는 정도와 비슷하다고 볼 수 있습니다.

여기서 조금 더 경험을 쌓다 보면 또 다른 언어를 배우게 되는 경우가 있습니다. 예를 들어 자바로 백엔드를 다루다가 프론트를 다루기 위해 자바스크립트를 배운다든지, 아니면 C언어로 시작해서 게임 개발을 해보려고 C#을 배운다든지 하는 경우입니다.

이때 처음에는 낯설었던 조건문, 분기문, 함수 호출 등 문법 요소들이 새로운 언어에서 모양만 조금 다르게 존재하는 것을 발견하면 신기하기도 하고 앞으로 다른 언어도 쉽게 배울 수 있을 것 같은 자신감도 붙게 됩니다. 그리고 보통 이 단계에서 "언어는 도구에 불과하다"는 성급한 확신에 빠지게 되기도 합니다. 그렇다면 그 단계의 개발자가 놓치고 있는 해당 언어를 능숙하게 다루기 위해 알아야 하는 지식은 무엇이 있을까요?

우선 외국어라면 '관용구(idiom)'나 상황에 맞는 표현을 구사하는 능력, 또는 자연스러운 억양으로 이를 말할 수 있는 능력 정도를 생각해볼 수 있습니다. 프로그래밍에 대입하면 이는 해당 언어의 관례와 관행(convention)을 이해하고 지키는 것이 될 것입니다. 아래 의사(pseudo) 코드를 살펴보겠습니다:

if (user != null && user.company != null) {
    return user.company.phone_number
}

이는 정상적으로 실행이 되는 간단한 코드이지만, 아마도 코틀린, C#, 모던 자바스크립트를 능숙하게 다루는 개발자라면 "return user?.company?.phone_number"같이 널 병합(null coalescing) 연산자로 한 줄로 줄일 수 있음을 지적할 것이고, 스칼라나 모던 자바 개발자라면 Option(user).flatMap(_.company).map(_.phone_number) 같이 옵셔널 유형을 통한 코드를 선호할 것이며, F#이나 러스트 개발자는 한술 더 떠서 아예 "널값은 존재할 수 없다"고 이야기할 것입니다.

어쩌면 파이썬 개발자는 'EAPF' 원칙을 들어 이를 try-catch로 바꾸는 것이 "idiomatic Python"코드, 또는 "Pythonic way"라고 주장할지도 모릅니다. 그리고 모든 것을 떠나, 자바나 C# 개발자라면 'phone_number' 같은 스네이크 표기법부터 눈에 거슬릴 것이고, C 개발자라면 중괄호 위치부터 마음에 들지 않을 것입니다.

자연어의 경우도 이를 공유하는 집단의 문화나 사고방식에 영향을 주는 것처럼, 프로그래밍 언어도 비슷한 특성이 있습니다. 예를 들어 파이썬 개발자라면 어떤 값을 불변 상태로 선언할 필요를 느끼지 못할 것이고, C# 개발자는 왜 열거형에 메서드 선언이 필요한지 이해하지 못할 가능성이 큽니다. 또한, 자바 개발자가 자바스크립트를 하면 타입을 중심으로 설계를 할 수 없음에 답답함을 느낄 수 있지만 자바스크립트 개발자가 자바를 하면 항상 타입을 선언해야 하는 점을 불편하게 느끼기 쉽습니다.

능숙한 파이썬 개발자라면 다른 언어에는 프로토콜이 없는 것을 불편해할 것이고, C# 개발자는 왜 다른 언어에선 모든 것을 Enumerable로 다룰 수 없는지 의아해할 것입니다. 코틀린이나 C# 개발자는 확장 메서드 개념을 사용할 때 스칼라 개발자는 암묵 변환을 활용할 것이고, 아마 자바 개발자는 그런 것들이 왜 필요한지 이해할 수 없을 것입니다.

그 밖에도 비동기 코드를 어떻게 작성하는지, 제너레이터 같은 개념을 지원하는지, 제너릭 파라메터를 어떤 식으로 제한할 수 있는지, 고계함수, 부분함수, 커리(curry) 등을 얼마나 잘 지원하는지 등 프로그래밍 언어마다 조금씩 차이가 있고, 이는 각 언어를 사용하는 개발자의 접근 방법에도 영향을 줍니다.

자언어에 비유하면 예컨대 한국어에는 존어법이 존재하지만, 영어에는 없다는 것이 각 언어를 모국어로 쓰는 사람들이 나이 차이가 있는 사람을 대하는 태도에도 영향을 끼치는 것과 비슷합니다. 또한, 만일 어느 외국인이 식당에서 "비빔밥 줘 빨리" 같이 주문을 한다면 아마 예의 상이 아닌 진심으로 "한국말을 능숙하게 한다"고 말하기 어려울 것입니다.

앞서 언급한 이제 막 하나의 언어에 조금 익숙해지고 다른 언어를 배운 개발자들이 과도한 자신감을 느끼는 이유는 아직 주력 언어의 고급 개념도 제대로 접해보지 않았기 때문일 가능성이 높습니다. 즉, 프로그래밍 언어를 아직 변수, 조건문, 함수, 반복문 같은 대부분 언어에 '최대공약수'처럼 공통으로 존재하는 기초 문법 수준에서 이해하고 있기 때문에 다른 언어를 배우는 것도 별거 없다고 착각하는 단계입니다.

하지만 좀 더 주력 언어를 깊게 공부하고 다양한 언어를 접하다 보면 프로그래밍 언어 사이의 공통점과 차이점을 더 넓은 시각에서 이해할 수 있고, 그 단계가 되면 정말로 다른 언어를 배우기가 상당히 쉬워집니다. 사실 현대적인 프로그래밍 언어들은 서로 영향을 주고받으며 몇 가지 큰 축으로 수렴하는 과정에 있습니다. 다만 그 흐름을 볼 수 있을 정도가 되려면 적어도 2-3가지의 언어는 조건문, 반복문, 변수할당을 이해하는 수준보다는 더 깊이 있게 다루어 볼 기회가 있어야 하므로 생각보다 제대로 된 폴리글랏 개발자가 많지 않을 뿐입니다.

그리고 보통 프로그래밍 언어의 본질적인 차이는 단순히 문법 수준이 아닌 패러다임 차원의 특성에 기인하는 경우가 많습니다. 그래서 어느 정도 함수형 패러다임에 익숙하지 않다면 왜 널 병합 연산자가 있는데 굳이 옵션형이 필요한지 이해하기 어려울 수 있고, 객체지향을 일정 수준 이상 사용해보지 않았다면 왜 스칼라의 셀프 타입이 그렇게 강력한 기능인지 깨닫기 힘들 것입니다.

물론 하는 일에 자신감을 느끼는 것은 좋은 일이고, 어느 수준에 다다랐을 때 "언어는 도구에 불과하다" 같은 주장을 할 '자격'이 생기는지 같은 문제는 순전히 주관의 영역입니다. 하지만 프로그래밍 언어를 배워서 실무에 적용하면서 그 과정에 대해 어떤 본질적인 주장을 한다는 것은, 예컨대 단순히 외국에 나가서 '어떻게든 식당에서 주문을 할 수 있다' 같은 수준보다는 적어도 그 나라 사람들 사이에서 큰 이질감 없이 일상생활을 할 수 있는 정도는 전제로 할 수 있는 이야기가 아닌가 싶습니다.

개인적으로 이제 막 주력 언어가 아닌 다른 언어를 배우는 단계의 개발자라면 '외국의 식당에서 주문을 할 수 있는' 수준보다는 그 언어를 사용하는 기자나 작가 수준의 언어 구사력을 목표로 공부를 하는 것을 권해드리고 싶습니다.

58
40
  • 댓글 107

  • shirohoo
    1k
    2021-10-29 11:54:38

    저는 자바를 배우고 있는데요, 이제 슬슬 JVM 레벨까지 파보려니까 이쯤와서 보니 언어하나 배우는게 정말 쉽지 않다고 생각하거든요.

    자바 하나 배우는것도 이럴진데, 자바스크립트든 C언어든  타 언어들도 각 언어가 추구하는 철학이 있을거고, 세부 동작원리도 천차만별일거라고 생각해서 저는 언어가 도구에 불과하다는 말을  부정적으로 보는 편인것 같습니다.

  • 라이라
    4k
    2021-10-29 12:07:49

    도구라고 하는 사람들은 프로그램을 if, for 만 쓰는 사람이겠죠

  • defult
    14k
    2021-10-29 12:15:42 작성 2021-10-29 12:18:14 수정됨

    도구는 도구인데 전문가용 도구이므로 용도를 생각해야하죠.


    각각의 언어는 언어문법 이후에 본격적으로 사업에서 사용하게될 여러 영역들이 엮인 이후부터는 언어에서 뻗어나온 여러 라이브러리나 프레임워크에 엮이게 되는 경우가 많고 이거들을 이용해서 생산성을 끌어올리는 방식이 언어의 사용이죠.


    그래서 

    도구에는 그 도구 특유의 전문 분야가 있어서 특화된 분야를 잘 활용한다의 방향성이면 맞는말이지만

    전문가는 도구에 구애받지 않는다면서 특화된 영역에서 벗어난 내용을 하라고하면서 사업성을 요구하는것은 잘못된 도구의 사용지시가 되죠.


    후자의 패턴은 다른분야로 대입하면

    일식집 한다는 사장님이 주방장을 고용해서 주방도구라고 칼을 제공하는데 횟칼이 없이 동네 마트에서 구비가능한 식칼만 준비하고 전문가는 도구를 탓하지 않는다 같은 소리하는 상황을 생각하면 딱 맞죠.

  • LittleMan
    220
    2021-10-29 12:18:59

    도메인중심의 업무라면..개발스킬만 좋아서는 

    분석,설계부터 답이 없으니

    그런말이 나오는게 아닐지…

  • 장독깨기
    3k
    2021-10-29 12:54:05

    재밌네요. ㅎㅎ

    프로그래밍 언어를 외국어로 비유하는 것도 황당하고,

    더군다나 외국 식당 가서 주문 하는 정도론 안되고 작가 수준으로 해야 된다? 


    도대체 프로그래밍이란 걸 뭐라 생각하는지 모르겠군요.

    프로그래밍은 뭔 가를 만드는 거고, 그걸 만들기 위한 도구가 언어입니다.

    그래서, 언어에 집착할게 아니라 뭔 가를 만드는데 집중을 해야 하는 거죠.

    이를 위해 자료구조, 알고리즘, 객체지향 프로그래밍 등에 집중해서 공부를 하고,

    뭔 가를 만들어 보는 걸 열심히 해야 프로그래밍 실력이 향상 되는 겁니다.

    그니까, 입문 및 초심자 분들은 언어를 작가 수준으로 공부할게 아니라,

    언어 얼른 익히고 뭔 가를 만드는데 집중하는 게 실력 향상에 도움이 될 겁니다.


    http 서버를 c++ 언어로 만들 줄 아는 프로그래머는 자바, 파이썬, 자바스크립트 등

    다른 언어로도 만들 수 있는 겁니다.

    언어는 도구이니까요. :) 


  • ISA
    5k
    2021-10-29 13:06:21
    그냥 가중치 문제 아닌가 하네요.
    진짜 몇몇 뭣도 모르고 그런말 하는 사람도 존재하겠지만 진짜 실력자도 존재하고, 또 조금 더 추상화 된 것을 말하는 경우가 대부분이겠죠. 굳이 cs지식이 중요하다거나 도메인이 중요하다고 하는 것처럼
  • 마라토집착
    5k
    2021-10-29 13:06:51 작성 2021-10-29 13:34:39 수정됨

    Si 에서 프로토타입 만들려면 그언어에 대해서 능숙해야죠

    복붙  할수있는  템플릿 만드는게 쉽지 안죠

    "언어 얼른 익히고 뭔 가를 만드는데 집중하는것"

    -->  이게 작가 수준으로 외국어(자바)익혀서 유창 (오픈소스 api 능숙)  아닌가요?

    먼거를 자꾸 만들면,예로 si 파견가서 자꾸 먼가를 만들면 

    실력이 부쩍 늡니다. 어떤 금융회사에서 머신러닝 이용해서 고객금융 신용등급 예측 하는것을 나름 섬공했다

    이래서 서울시내 금융회사 뺑뺑이 돌면서 유사한 si 플젝하니 

    자바에 엄청 능숙해졌다

    ㆍ봉준호 감독 통역으로 유명한 샤론최도 영화비평인터뷰 통역의 능숙함을 반복적인 영어통역 기회 때문이라고 먈하던데요 

    이런과정이 영어 유창해지는것과 비슷합니다

    도메인 : 영화평론, 금융업무

    도구: 영어(고급스럽지만 쉬운 이디엄과 표현)

              자바 (쉬운 오픈소스 netty 나 js 리액트 api )

    검증된 영어문구 (감증된 코드 snippet   구조  활용해서 

    도메인 구현(통역시)  이슈해결 ~  


  • fender
    24k
    2021-10-29 13:49:24

    장독깨기 // 말씀하시는 걸 보니 현대적인 프론트엔드는 제대로 해본 적이 없지만 HTML/CSS만 알면 별거 없다고 남들에게 조언까지 하는 용기가 어디에서 왔는지 잘 알겠습니다.

  • fender
    24k
    2021-10-29 13:57:14 작성 2021-10-29 14:02:25 수정됨

    참고로 본문에서 이야기한 프로그래밍 언어를 "유창하게 사용"하는 것이 무엇인지 모호하게 느껴진다면 반대의 경우를 생각해보시면 됩니다.

    가끔보면 자바를 C언어 처럼 짠다거나 반대로 스칼라 같은 언어를 자바처럼 짜는 사람들이 있습니다. 다르게 표현하면 해당 언어를 "idiomatic"하게 다루는 능력이 없다는 것인데, 자연어로 따지면 뜻은 얼추 통하는데 문장 순서가 이상하던가 존어법을 무시한다던가, 억양을 알아듣기 어렵다던가 그런 부류의 문제입니다.

    그리고 본문에서 이야기하는 건 그렇게 다른 언어를 할 바엔 아예 하지 말라는 뜻이 아닙니다. 저도 그렇지만 가끔은 실무에서 잘 모르는 언어로도 코딩을 해야할 일이 있고 그건 새로운 걸 배울 수 있는 좋은 기회이지 전혀 잘못된 것이 아닙니다.

    또한, 이런 저런 이유로 현재 일하는 업무 환경에서 딱히 고급 언어 구사 능력이 중요하지 않을 수도 있습니다. 그 것 역시 '잘못'이라고 이야기할 수는 없는 문제입니다.

    다만 그 수준에서 두 세 가지 언어를 다뤄보고 대략 조건문, 반복문, 함수 호출 수준에서 돌아가는 코드 조합해본 것에 고무되서 "언어는 도구일 뿐 별거 없다" 같은 이야기를 무슨 대단한 진리인 양 주장하기엔 좀 남들이 보기에 민망할 수 있다, 그 뿐입니다.

    다른 언어를 평가하려면 최소한 그 언어를 주력으로 쓰는 개발자와 비슷한 수준의 자연스러운 코드를 작성할 수 있어야 한다는 건 제 기준에서는 상식에 속하는 이야기입니다 (이렇게 적고 보니 저도 좀 찔리는 구석이 있군요 ㅎㅎ;).

  • 마라토집착
    5k
    2021-10-29 13:58:49 작성 2021-10-29 14:05:35 수정됨

    "http 서버를 c++ 언어로 만들 줄 아는 프로그래머는 자바, 파이썬, 자바스크립트 등

    다른 언어로도 만들 수 있는 겁니다.

    언어는 도구이니까요. :) " -->  이거는 영어라는 패러다임에 능숙하면 독일어를 쉽게 배워서 통역 가능하다라는 말인듯 하네요. 영어 idiom 과 expression 뉘앙스를 그 품질 그대로 독일어라는 도구로 구현하는데 시간 많이  걸리죠.  하지만 이렇게 능숙한 언어를 늘려가야 합니다

    C++ 능숙자가  동일 도메인(http서버를)  자바로 구현하면

    당연히  한 4개월 버벅대다가 만들겠죠

    C++ 품질을 자바로 만들려면 꽤 시간이 걸립니다

  • MKRO
    615
    2021-10-29 14:20:37 작성 2021-10-29 14:21:51 수정됨

    저는 언어는 도구에 불과하다고 생각하는 사람입니다.

    그리고 이 말이 패러다임의 차이나 언어 혹은 프레임웍의 숙련도를 무시하는 말은 아니라고 생각합니다.

    땅파는 도구라고해서 곡괭이 쓰는 법이랑 삽 쓰는 법이 같아선 당연히 안되겠죠.

    언어는 도구에 불과하니 어떤 언어로 개발하든 별 거 없다 라기 보단 언어는 도구에 불과하니 지금 가진 도구(언어)로만 해결하려고 집착하지 말고 상황에 맞는 도구를 익혀서 써라 정도로 생각합니다. 

    19
  • 그래안그래
    1k
    2021-10-29 14:21:25 작성 2021-10-29 14:22:57 수정됨

    저는 언어는 도구일뿐 그이상 그이하도 아니라고 생각합니다.

    작성자님 말씀대로, 고급 개념을 알고 모르고 최적화나 성능 면에서 차이가 있을수 있습니다.

    허나 말그대로 저는 고급 '개념' , '지식', '전문성'  이라고 생각합니다.

    프로그래밍을 하는 이유는 목적으로 만들고자 하는 프로그램을 만드는것이고,

    그 목적하는 프로그램을 만들기위해서 여러도구들이 존재 할수 있고,

    그도구중 자기에게 익숙한 도구를 사용해서 만들수도 있는것이고,

    더좋은 도구가 있다면 그걸사용해서 프로그램을 만들면 되는것입니다.

    결국 어느 도구를 사용하든 최종 결과물은 CPU의 명령어 집합일뿐이라고 생각합니다.

  • 마라토집착
    5k
    2021-10-29 14:26:06 작성 2021-10-29 14:31:34 수정됨

    근데 다른 도구를 쓰면.   주력도구에서 낮선 도구로  바꿀때

    그게 자꾸 별개아니다.  이런 말을 하는 사람들 때문에 

    언어는 도구다 하지만 익숙해지는데 많은 시간이 소요된다라는 부연 설명이 붙어야 합니다. 

    그래서

    ㆍ언어는 도구에 불과하다.  그래서  일정은 지난번과 동일,  이런말을 하면 안되고 크리티컬한 플젝 

    예) 코로나벡신예약사이트 이런것은 언어 전문가로 팀을꾸려야 합니다

    이글의 의도는 언어는 도구다를 함부로 말하지 말자 ~

    너무 수준 낮은 소스 코드만들거면서 언어는도구다?

    그래서 언어를 주력언어와 비주력 두그룹으로 나누어야 합니다.  플젝에서 사람 구할때요 

  • fender
    24k
    2021-10-29 14:27:42 작성 2021-10-29 14:37:08 수정됨

    언어는 도구에 불과하니 어떤 언어로 개발하든 별 거 없다 라기 보단 언어는 도구에 불과하니 지금 가진 도구(언어)로만 해결하려고 집착하지 말고 문제에 맞는 도구를 익혀서 써라 정도로 생각합니다. 
    전적으로 공감합니다 :) 유명한 이야기로 "가진 것이 망치 뿐이라면 모든 문제가 못으로 보인다"는 말이 있습니다.

    목수에게 전기톱을 들려줬으면 적어도 그게 그냥 '무겁고 이상하게 생긴 톱'이 아닌 전동 공구라는 것 정도는 이해하고, 못이 있으면 톱 대신 망치를 집어들 줄 알아야 좋은 기술자라고 할 수 있을 것입니다.

    전기톱을 일반톱처럼 쓰고 이미 익숙하다고 못을 톱으로 때려 박으려고 하면서 다른 목수들에게 "도구는 도구일 뿐" 같은 조언을 하면 우습게 보일테니까요.

  • fender
    24k
    2021-10-29 14:36:26 작성 2021-10-29 14:41:44 수정됨
    결국 어느 도구를 사용하든 최종 결과물은 CPU의 명령어 집합일뿐이라고 생각합니다.

    저는 이런 환원주의적 접근은 동의하지 않습니다. 어차피 컴파일 되면 다 바이트코드나 기계어라는 식이라면 패러다임이고 패턴이고 리팩터링이고 다 무의미한 이야기가 되겠죠.

    흔히 하는 이야기 중에 "평범한 코드는 컴퓨터가 이해하는 코드이고, 훌륭한 코드는 사람이 쉽게 이해할 수 있는 코드"라는 말이 있습니다.

    크게 보면 결국 언어적 특성의 차이나 패러다임의 발전은 어떻게 하면 기계가 아닌 사람이 더 직관적이고 유지보수 하기 쉬운 형태로 생각하는 것을 코드로 표현할 수 있을까에 대한 고민에서 비롯되었다고 봅니다.

    거기서 파생된 수 많은 관행이나 논쟁이나 언어 등을 죄다 "잘 돌아가면 그만"으로 뭉뚱그리기엔 소프트웨어 분야는 이미 너무 많이 발전했습니다.

  • moonti
    4k
    2021-10-29 15:02:27

    장독깨기

    감히 말씀드리면, 장독깨기님은 알고 계신 것을 넘어서 그 밖에 있는 것을 보셨으면  좋겠습니다.

  • ISA
    5k
    2021-10-29 15:31:01 작성 2021-10-29 15:31:42 수정됨

    글이나 댓글들 읽다보면 결국 느끼는데

    언어는 도구에 불과한 것 같습니다.


    결국 이 내용들은 사실 언어적인 특징이라기보다는 해당 언어의 프로그래밍 패러다임에 따라서 달라지는 내용들아닌가요?

    언어 보다는 객체지향이나 절치지향, 함수형, 선언형, 리액티브 같은 프로그래밍 패러다임적인 요소가 결국 전반적으로 언급하는 사용자간의 관용적인 부분을 결정하는거 아닌가요?

    물론 언어에 따라서 많이 쓰이는 프로그래밍 패러다임이 존재하는듯


  • 마라토집착
    5k
    2021-10-29 15:35:55

    도구에 불과 하지만 ,  도구 익히는 기간이 필요하다 

    이건거 같은데 ,특히 다른 도구로 하는데  언어는 도구다면서 

    플젝을 자바나 씨나  같은 일정. 같은 개발자 이러면 

    언어는 도구라는 말은 반드시 부연설명 필요 

  • 개발정복
    1k
    2021-10-29 15:36:37

    무슨말인지 잘 모르겠어요...

    프로그램언어와 자연어를 비교하는게 초보땐 납득이 되었는데 최근에 느끼는건

    프로그램언어는 버전업이 되잖아요 명확한 방향을 가지고 하지만 자연어는 어느정도 변화하긴 하지만 그게 명확한 목적을 가지고 변하는건 아닌것 같아요 그냥 사람들이 쓰다보면 그게 뜻이 통하니 그말도 맞는다 뭐 그렇게...

    한언어를 몇년간 하더라도 해당 언어의 신버전이 나와서 그거 잘 캐취하지 못하면 그사람은 언어를 잘하는 사람이라고 봐야할지 아닌지...

    언어도 도구다 라고 하지만 프레임워크도 도구고 SDK도 게임엔진도 컴퓨터도 도구예요... 사용할수 있는 레벨도 천지차이인거고 경험적 지식 기술적 지식 다뱡향으로 존중해야 한다고 생각합니다.

  • 개발정복
    1k
    2021-10-29 15:41:16

    아시겠지만 개발잘하는 사람하고 프로그램 잘 아는 사람은 또 다르죠

    둘이 싸우기도 하고 한사람일수도 있구요

    그래도 제가 느끼기엔 어느정도 레벨이 되면 다 그럴수 있다 라고 존중하죠

    일만하는사람과 공부만 하는사람의 영역은 다르니까요

    언어 적당히 해서 열심히 개발하고 프로덕트 만드는 사람한테 너는 이 언어를 이레벨로 못다루니 더 해 라는건 어찌보면 한쪽만의 의견처럼 보여서요

    물론 공감하는 점도 많이 있습니다. 좋은글 잘 읽었습니다.

  • ISA
    5k
    2021-10-29 15:56:26

    그런데 결국 원글 하고 싶은 말은

    언어는 도구에 불과하다고 할 정도까지 실력을 쌓고

    그 말을 해라 그전엔 자격이 없다는 주장 같은데요..?

    즉 그런 말 할 수 있을때 까지 실력을 쌓으라는..

    헬스에도 3대 500이하는 언더아머 금지라는 우스갯소리가 있긴한데 개발도 그런듯

  • 후하하핫
    1k
    2021-10-29 16:04:06

    다른 관점에서 얘길 하면, 저는 패러다임의 변화의 시기에 있다고 생각합니다.


    1.

    먼저, 개발자의 풀이 너무 커졌습니다. 옛날엔 전문 프로그래머 만이 개발을 했지만, 지금은 개발하기 위한 언어가 말 그대로 도구이신 분들이 굉장히 많아지고 있습니다. (의사과학자 분들이 통계를 돌린다거나, 데이터 사이언티스트가 preprocessing을 한다던가...) 이런 분들이 짜는 소스 코드의 특성 상 언어의 철학을 이해하고 짜는 것보다 말 그대로 이 분들이 생각하는 결과가 나오는 것이 훨씬 중요합니다.


    2.

    이러한 니즈로 인해 최근에 나오는 언어들이 "창의력을 발휘할 수 있는 자유도 높은 코드" (대표적으로 C/C++) 보다는 "정답이 있는 코드" 를 가지도록 발전하고 있다고 생각합니다. (Golang, Rust 등...)


    비단 언어 뿐만 아니라 개발 환경의 경우에도 최근의 언어들은 단순히 언어 뿐만 아니라 런타임과 package manager 까지 한꺼번에 설치하게 강요하는 경우가 많죠. 심지어 개발 프로세스까지도 어느정도 상정을 해놓고 언어를 만듭니다. (Golang의 경우엔 import를 github에서 받아오거나 주석만 써서 unit test를 짤 수 있죠)


    3.

    IDE를 위시한 개발 도구들이 발전하고 있습니다. IntelliJ 계열 IDE를 써보면 이런 것도 자동으로 해줘? 하고 깜짝 놀랄 때가 있죠. (변수명 추천, 자동 refactoring 등등...) 앞으로 인공지능 기술이 발전하면서 이 방향의 발전은 우리가 생각하지 못하는 만큼 커질 거라고 생각합니다.


    즉, 이러한 변화들이 현재는 전문 프로그래머가 아닌 분들을 위해 이루어지고 있지만, 전문 프로그래머들의 프로그래밍도 크게 변화시키게 될 것이라고 생각합니다. 이로 인해 프로그래밍 언어 그 자체에 대한 이해도나 능숙함보다 어떤 프로그램을 어떻게 짤 것인가에 더 집중하게 될 수 있겠죠.


    4.

    결국 프로 개발자들이 개발을 하는 이유는 비지니스의 미션을 성취하기 위해서 라고 생각합니다. 비지니스를 하는 사람의 관점에서 봤을 때는, 개발자가 특정 언어에 대해 깊히 알아야 하는 상황이 달갑진 않을겁니다. 언어가 어려울수록 대체할 수 있는 인력을 뽑는게 더 성가셔지니까요. 이왕이면 누가 와도 같은 스타일로 짜게 되고, 개발 프로세스도 단순해 지는 언어를 선호하게 되겠죠. (더 나아가서, 설정만 건드려도 어느정도 원하는 프로그램이 돌아갈 수 있게 되는 상황이 더 낫죠)


    5.

    결국 미래에 더 Software Engineering이 발전하면 언어 그 자체에 대한 이해도는 그렇게 중요한 일이 아니게 될 거라고 생각합니다. 소수의 특정 언어 전문가들과 다수의 응용 레벨 개발자들만 남게 되겠죠. 이 역사는 이미 어셈블리어에서도 벌어졌던 역사이기 때문에 또 한 차례 반복 될 거라고 생각합니다. (컴파일러 최적화 방법의 발전으로 인라인 어셈블리어 최적화보다 그냥 high level language를 좋은 컴파일 옵션으로 컴파일 하는게 성능 향상 및 생산성 향상에 유리하게 되었죠)


    6.

    그럼 개발자의 경쟁력은 무엇이 되는가? 를 따지면, 저는 기본기가 될 것 같습니다. 결국 논리적 사고력이고, 커뮤니케이션 능력과 CS 기초를 얼마나 잘 이해하고 있는지가 될 것 같아요.

    실제로 Data Engineering 하시는 분들은 공감하실 것 같은데, Data pipeline 만들 때 어떤 언어를 사용하는지는 이미 그렇게 중요하지가 않습니다. 데이터 사이언티스트들이랑 잘 소통해서 requirement 분석 하고, 개별 소프트웨어 컴포넌트들 잘 이해하고 MSA로 구조 만든 다음에 설정 건드리는 게 못해도 50은 되죠. 때로는 코드 몇 줄만 짜서 문제를 푸는 경우도 굉장히 많습니다.

    그렇다고 Data Engineer 들이 쉽게 대체 되냐... 하면 그건 전혀 아닙니다. 개별 소프트웨어 컴포넌트라고 말씀 드린 각각에 대한 이해가 필요하고, 설정 하나 바꿔서 어떤 side effect가 일어날지, 분산 시스템 터지면 로그는 어떻게 뒤져야 하는지... 결코 코드 짜면서 디버깅 하는 것에 비해 쉽지 않습니다. 기계가 대체하기 더 어려운 부분이고요.

    이렇게 프로그래머라는 직업도 고민해야 하는 부분이 많이 바뀔 거고, 프로그래밍 그 자체는 쉬워질거라고 생각합니다. 이런 관점에서는 프로그래밍 언어는 도구라고 생각하고요.

    12
  • 장독깨기
    3k
    2021-10-29 16:20:22

    ㅎㅎ 이건 뭐...

    fender

    프로그래밍 하는 거와 프로그래밍/배포를 위해 환경 구축하는 건

    이제 구분이 좀 되시는지 모르겠네요. 

    환경 구축하는 게 복잡하다고 프로그래밍이 어렵다 얘기하는

    그 용기는 어디서 비롯되는지 당최 이해가 안 갑니다. 그저 신기할 따름입니다. :)


    moonti

    하고 싶은 얘기 있으면 정확히 하시고, 아니면 낄낄빠빠 합시다. ㅋ


    프로그래밍 언어에 뭔가 대단한게 있는 거 처럼 얘기하는데요..

    언어 자체가 가진 건 별거 없어요.

    제어문, 반복문, 콜백함수, 클래스 정의 대략 이 정도에요.

    다 이걸 가지고 조합해서 뭔 가를 만들어 내는 거죠.

    대부분의 언어들은 기본적으로 저 정도는 다 제공을 합니다.

    물론 c 언어는 클래스를 정의할 수 없으니 자바와 비교하는 건 넌센스죠.


    스프링 프레임웍도 저걸 조합 한 거고, 리엑트도 저걸 조합한 거에요.

    저걸 조합해서 스프링, 리엑트, ... 을 만든 사람들도 프로그래머이구요.

    저걸 조합해서 뭔 가를 만들어 내는 게 프로그래밍이란 겁니다.

    언어만 천날 만날 공부 해보세요. 조합할 수 있는지.. 


    어디에 힘을 써야 할지 구분 좀 하는 게 좋지 않을까요. :)


    -2
  • fender
    24k
    2021-10-29 16:24:30

    개발정복 //

    언어 적당히 해서 열심히 개발하고 프로덕트 만드는 사람한테 너는 이 언어를 이레벨로 못다루니 더 해 라는건...

    그런 주장을 한 적은 없습니다. 당장 위의 덧글에서도 잘 모르는 언어로 개발을 하거나 언어의 고급 기능 활용이 중요하지 않은 업무 환경에서 일하는 것이 잘못이 아니라는 이야기를 했습니다.

    다만 그런 개발자가 "언어는 다 거기서 거기라 별거 없다" 같은 주장을 한다면 조금 다른 이야기가 될 것입니다.

  • fender
    24k
    2021-10-29 16:27:40

    장독깨기 //

    환경 구축하는 게 복잡하다고 프로그래밍이 어렵다 얘기하는...

    저는 환경 구축하는게 복잡하니 프로그래밍이 어렵다는 주장을 한 기억이 없습니다. 아마 님의 수준이 "언어라는게 기껏해야 뭐가 있냐 환경설정이 복잡하지" 같은 정도에 머물고 있으니 아마 그렇게 넘겨 짚으셨겠죠.


  • 장독깨기
    3k
    2021-10-29 16:46:40

    fender

    아니라니 다행입니다. ㅎ

    자, 그럼 웹 프런트가 왜 어렵다는 거죠?

    브라우저에서 무슨 편집기 만들어라 이런 거 아닐테고...



    -4
  • moonti
    4k
    2021-10-29 16:47:21 작성 2021-10-29 16:47:46 수정됨

    장독깨기

    네 빠져야겠어요. 펜더님도 설득 못하는 것을 제가 어찌 해내겠습니까...


  • fender
    24k
    2021-10-29 16:47:43 작성 2021-10-29 16:52:29 수정됨

    후하하핫 // 조금 생각이 다른 부분도 있지만 어떤 관점에서 말씀하시는지 이해하고 상당 부분 공감하기도 합니다.

    다만 강조하고 싶은 것은, 결국 그런 개별 분야나 비즈니스 영역에 필요한 지식도 언어, 관행, 생태계(예 - 주로 사용하는 프레임워크 라이브러리, 도구 등)이 서로 밀접하게 짜여진 환경 안에서 익힐 수 있다는 것입니다.

    또한 개발에 대한 깊이 있는 지식이 없어도 접할 수 있는 분야가 늘었다는 것은 소프트웨어 공학적 지식이 불필요해졌다기 보다는 그런 고민을 해야하는 계층과 그 보다 고수준에서 도메인을 다루는 계층이 분화되었다고 이해하는 것이 더 정확하지 않나 싶습니다.

    그래서 예를들어 데이터 사이언스나 인공지능 분야를 전문으로 하는 개발자가 "언어는 도구일 뿐"이라고 이야기한다면 전 상당부분 공감할 수 있고 아마 후하하핫님께서도 그런 부분을 말씀하신 것으로 이해했습니다.

    하지만 만일 같은 발언의 맥락이 "언어는 어차피 문법만 조금 다를 뿐 다 거기서 거기다"는 식의 이야기가 되면 전혀 다른 내용이 됩니다. 프로그래밍 언어는 데이터 사이언스나 인공지능에만 쓰이는 것도 아니고, 그런 분야 전문가가 사용하는 라이브러리나 프레임워크를 만드는 것은 또 다른 문제니까요.

    제가 본문에서 지적한 것은 그런 식으로 본인이 이해하지 못하는 부분을 쉽게 단정하고 심지어 다른 개발자들에게 조언을 하거나 하는 경우의 이야기이고, 아마 인공지능을 수박 겉핥기한 입장에서 "머신러닝 그거 케라스 좀 해봤는데 별거 없더라" 같은 이야기를 한다면 아마 그 분야를 전공한 분들도 비슷한 반응을 보일 것이라고 생각합니다.

  • ISA
    5k
    2021-10-29 16:57:02

    3대 500이라는게 주장을 제대로 이해한게 맞았네요. ^^


    한줄 정리

    속단하지말고 실력을 쌓으라.

  • sike
    634
    2021-10-29 17:05:00 작성 2021-10-29 17:05:38 수정됨

    현업에서 다른 프로그래밍 언어 안해봤다고 선 긋고, 손도 안댈려고 하는 사람들 보면 짜증밖에 안남


    그 사람들에게 언어는 도구일뿐이라고 얘기해도 씨알도 안먹힘

  • 장독깨기
    3k
    2021-10-29 17:11:42

    마라토집착

    http 서버를 만들기 위해선 알아야 할 게 굉장히 많습니다.

    그리고, 그걸 객체지향 프로그래밍으로 구조화, 추상화 하고,

    특히 다른 이들에게 프레임웍으로 제공하려면  난이도가 제법 있습니다.

    여기서 언어가 끼치는 영향력은 극히 미미합니다.

    그니까, c++ 언어로 이걸 만들어 본 프로그래머는

    언어가 바뀐다 하더라도 어렵지 않게 구현할 수 있을 것입니다.

    이 정도 관점으로 이해 해 주셨으면 합니다. :)


  • hoon Cli
    45
    2021-10-29 17:13:57

    기술이냐 철학이냐 논쟁이군요. 이런 논쟁들은 항상 뒤에 숨은 전제 샅바잡기 싸움이라 학생때 이후론 보는게 점점 지칩니다. 다만 하나를 깊이 팔 필요가 있다는 논점만큼은 깊이 공감합니다.

    한국인이 한국어도 잘 못하는데 영어를 잘할 순 없는거죠. (영어가 모국어나 주 언어이지 않은 한)

  • Oscar
    687
    2021-10-29 18:33:52

    열띠군요

    굉장히 개발자 포럼에 걸 맞는 주제가 아닌가 합니다 :) 글쓴이분과 좋은 댓글 남겨주신 분들 추천 따봉~

  • cookker
    349
    2021-10-29 19:04:14

    펜더님 의견에 공감합니다.


    영화 컨택트를 보면 사피어 워프 가설이 나옵니다.

    "언어는 인간의 사고에 영향을 미친다"는 가설인데 당연하게 가설이기 때문에 학계에서도 의견이 갈리긴 합니다만 저는 많은 부분에서 공감합니다. 프로그래밍 언어도 비슷하게 받아들여질 수 있다고 생각하고 있구요.


    사실 위 댓글 논쟁은 개발을 예술과 제품 사이를 어느정도로 멀게두고 그 사이 공간 어디에 위치해서 보는지에 따라 다른거 같습니다.


    뭐 위에 댓글로 갑론을박하지만 좋은 글이란 이렇게 다채로운 의견이 나오는 글이라 생각합니다.

  • kenu
    57k
    2021-10-30 01:37:13

    다행입니다.

    fender님 언제 다.시. 뵐 수 있을지요.

    세상이 프로그래밍을 통해서 사이버 세상으로 옮겨 가는 시점에

    그런 일을 하는 사람들인데,

    다른 사람들은 그걸 잘 모르고 있다는 느낌입니다.










    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .


    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .


    .

    .

    .

    .

    .

    .

    .

    .

    .
























































    .

    kenu@okjsp.pe.kr 메일로 fender님 편한 시간 또는 연락처 부탁합니다.

    -2
  • 드루이드
    148
    2021-10-30 03:30:07

    이 주제가 요즘 제가 고민하는 부분들과 연결되어 있는거 같아 몇자 남겨 봅니다. 

    저도 웹쪽 일을 하다 몇년 전부터 데이터 엔지니어링 분야에서 일을 하고 있고 주로 C# 과 scala를 이용해 개발을 하고 있습니다. 제 경험에 비추어 보면 대부분 scala코드들이 java스타일로 짜여져 있었고 OOP + 절차식 개발자 수가 더 많기 때문에 유지보수 측면에서도 그냥 그렇게 놔두는거 같습니다. 이게 사실 비지니스 측면에서 보면 잘돌아가면 되기때문에 굳이 시간을 들여 scala 스타일로 바꿀 필요도 없죠. 사람 구하기도 쉽지 않고요.

    그리고 클라우드로 넘어오면서 AWS 의 Lambda 나 Azure Function 같은 좀더 micro한 서비스들을 많이 개발하게 되고 데이터 엔지니어링에서 필요한 많은 부분들을 클라우드 서비스에서 제공해 주기 때문에 뭔가 큰 프로그램을 개발할 일 자체도 많이 줄어든거 같습니다. 비지니스 로직 자체에 집중을 할수 있게 된거죠. 

    그리고 관리하는 서비스 수가 늘어나면서 서비스들간 장애 발생시 어떻게 해결할지에 좀 더 신경을 쓰고 코드 품질에는 신경을 많이 못쓰는것 같습니다. 코드자체가 그렇게 복잡한걸 요구하지도 않고요. 이런 상황에서 언어는 도구일 뿐이다 라는 말은 어떻게 보면 꽤 맞는 말인거 같습니다. 앞으로 이쪽분야는 이런형태로 계속 발전해 나갈거 같고요.

    하지만 평소 프로그래밍 언어 패러다임 그리고 각 언어들간의 철학 에 관심이 많은 저로써는 안타까운 부분이기도 합니다. 그래서 저는 좀더 이쪽으로 깊이 고민할 수 있는 분야에서 일을 하고 싶어 이직을 준비 중입니다. 

    쓰다보니 후하하핫 님 말씀과 겹치는 부분이 꽤 있네요.

  • 장독깨기
    3k
    2021-10-30 03:47:27

    fender

    혹시나 해서 추가로 댓글 달아 봅니다.

    프로그래밍과 환경구축은 별개라는거 동의하신거 같고, ...

    그럼 웹 프런트가 왜 어렵다 하는지 그 이유는 들을 수 없는 건가요?

    궁금하긴 합니다만, 뭐 무시하셔도 무방 합니다.


    그나저나, 윗댓글 저 빈 공간은 뭔가요? ㅋ

    -2
  • fender
    24k
    2021-10-30 05:49:26 작성 2021-10-30 06:43:18 수정됨

    장독깨기 // 딱히 생각을 바꿀 의향이 없으신 듯 한데 싸우기 싫어서요. 솔직히 장독깨기 님이 조금이라도 혹시 본인이 잘못 생각하고 있는 건지 의심을 하셨다면 인터넷 검색 한 번으로 쉽게 깨달을 수 있는 문제니까요.

    하다못해 요즘 유행하는 리액트 문서 한 번만 훑어봐도 제이쿼리로 이벤트나 처리하던 시절과는 분위기가 다르다는 건 어렵지 않게 깨달을 수 있을 겁니다.

    그리고 토론을 지켜보는 분들 중에 이미 프론트를 다뤄 본 경험이 있다면 "HTML/CSS만 알면 별거 없다" 같은 이야기가 얼마나 요즘 현실과 동떨어져있는지 부연이 필요없을테니 말입니다.

    아니, 하다못해 말씀하시는 그 HTML/CSS만 제대로 알아도 프론트엔드 분야가 얼마나 빨리 바뀌는지 어렵지 않게 깨달을 수 있습니다.

    웹 컴포넌트나 셰도우 돔은 아시나요? CSS의 경우 SASS/LESS 같은 전처리기가 유행하다가 요즘은 컴포넌트화가 대세가 되니 styled-components나 emotion 같은 걸로 컴포넌트에 격리하는 것이 관행이되고 테일윈드나 MUI, 부트스트랩도 점점 유틸리티 클래스("utility first")를 활용하는 방향으로 흐름이 변하고 있는 건 알고 계신가요?

    장독깨기님이 그렇게 자신있게 프론트엔드의 "근본"이 HTML/CSS이고 그 것만 알면 프론트엔드 별거 없다고 주장하셨는데, 이런 내용 쯤은 잘 알고 말씀하신 건가요? 아니면 설마 flex나 grid도 제대로 못 쓰면서 "CSS 그거 그냥 클래스 붙이면 되는 거 아님" 수준에서 그런 자신감을 보이신 건가요?

    제이쿼리 유행하던 시절부터의 자바스크립트나 생태계의 변화는 굳이 이야기 안 하겠습니다. 그게 한 두 마디로 요약할 수 있는 것도 아니고, 앞서 말한대로 솔직히 장독깨기님이 "어디 대체 얼마나 어렵다는지 들어나 볼까" 같은 태도가 아니라 진지하게 배울 생각이 있었다면 검색 한 두 번으로 훨씬 좋은 자료를 찾을 수 있는 주제이니 말입니다.

    장독깨기님이 좋은 개발자라면, 아마 이 정도까지 정보를 드렸을 때 저와의 논쟁에서 이기는 것 보단 십 년 이상 뒤쳐진 본인의 프론테엔드 타임라인을 갱신하는데 더 관심을 보이셔야 하지 않을까 싶습니다.

  • 장독깨기
    3k
    2021-10-30 08:35:25 작성 2021-10-30 10:17:32 수정됨

    fender

    어렵다는 이유가 역시나 실망스럽긴 합니다만, 뭐 좋습니다.


    웹 프런트에서 하는 일은

    1. html, css 로 화면을 구성합니다.

    (작업의 대부분이 이겁니다. 입 대는 사람이 많아, 손이 제일 많이 가죠.)

    2. 화면에서 동적인 부분을 자바 스크립트로 처리합니다. (버튼 클릭, 마우스오버, .. 뭐 이런 것 들이죠)

    3. 입력한 정보를 서버에 전송하거나 서버로 부터 데이터 받아서 화면에 뿌려 줍니다.

    대 부분이 이런 일이라고 다른 글에 언급한 거 그대로 가져왔습니다.

    그것도 SI 프로젝트에 적응하지 못해 자책하며 프런트로 시도해 보려는 어떤 분의 글 에서요.

    뭐 암튼,...

    위에 언급한 웹 프런트에서 하는 일에 대해 동의할지 모르겠지만, ...

    웹 프런트에서 할 일이, 목적은 동일한데, 수단이 그 트렌드가 자주 바뀌니 어렵다는 건가요? ㅎㅎㅎ

    어렵다는데 뭐 어쩌겠습니까. 다 개인차가 있는거고 어렵다면 어려운거죠.


    근데, 프로그래밍을 하는 다른 분야들 중 이 보다 덜 어려운 분야는 또 뭐가 있을까요?

    설마 다 똑같이 어렵다 뭐 이런 말 할건 아니겠죠. ㅋ


    아, 그리고 저는 저런 거 미리 대비해 갱신 하면서 헛 힘 쓰는 스타일 아닙니다.

    필요할 때 그때 익혀서 적응하면 수일내로 충분하거든요. 그럴 일이 있을지 몰겠지만..

    그리고, 저 웹프런트 틀에서 조금 벗어난 기능들,

    무슨 편집기라든지 뭐 암튼 일반적인 기능이 아닐 경우, 제가 가끔 오더를 받습니다. 지금도 하나 하구 있구요.

    리엑트는 하도 유행해서 좀 살펴 보긴 했습니다만,

    아, 진짜 이건 좀.. 리엑트 하시는 분 많으니 이 부분은 말을 좀 아껴야겠습니다.


    서로 뭐 생각 바꿀 일 없어 보이고 이길 맘도 전혀 없으니 저도 이만 하겠습니다. :)

    덧붙여서)
    혹 다른 분이 보기엔 갑자기 좀 주제에 어긋나지 않나 하는 생각이 들 수 있겠습니다.
    본 글의 주제인 언어는 도구인가?
    제 생각엔 완전 도구라고 생각하고 있으며, 이 도구에는 언어 뿐만 아니라 다른 수단 들도 포함되어 있다고 봅니다.
    이런 도구들을 활용해 뭔가를 만들어 내는 과정이 프로그래밍이며,
    프로그래머인 내가 뭐를 만들 수 있느냐가 중요하다고 생각합니다.
    특히, 초심자 분 들은 뭔 가를 만드는 거에 집중해서 공부할 수록
    프로그래밍 실력 향상에 큰 도움이 될 거라 생각합니다.

    -1
  • 제타건담
    7k
    2021-10-30 18:29:48 작성 2021-10-30 18:42:35 수정됨

    다들..진정들 하시고..

    제가 잘못 짚었을수도 있는데..일단 제 생각은 이렇습니다..

    이제 막 프로그래밍 처음 하시는 분들에게 언어부터 먼저 고민하라고 얘기하는것은 더 힘들꺼라 생각합니다..

    왜냐면 그런 분들에게는 당장 내가 만든 프로그램 코드가 어떤 결과를 산출하는지에 대한 기대와..그리고 그 과정에서 오류로 인한 두려움이 먼저 앞설꺼라 생각합니다..

    내가 생각한대로 결과가 나오면 거기서 자신감을 얻고 다음 진도로 나갈수 있고..

    만약 오류가 발생했을 경우 이 오류를 해결하기 위해 백방으로 검색하고 공부하며 노력하거나..

    또는 아..나는 역시나 안돼..이런 식으로 좌절하며 프로그래밍을 그만 두는 사람도 생기겠죠..

    이 과정이 매번 반복될껍니다..

    다음 진도로 나가면서 자신감을 얻거나 노력하거나 좌절하거나..이 과정의 연속인거죠..

    근데..자신의 경력이 쌓이고 이런과정을 계속 반복하다가보면..

    어느 순간..아..이 언어 자체에 대해 알고 싶다..라는 생각이 들게 되는 때가 생깁니다..

    그냥 기계적으로 내가 알고 있는 문법에 맞게 치다가..

    어..이 기능과 동일한 새로운 문법이 있네..

    어..이게 다른 언어에서도 지원하는 문법이네..하면서..

    언어 자체에 좀더 흥미를 갖게 되는거죠..


    부끄러운 제 얘기를 하자면..

    for 문을 예를 들어볼께요..

    저는 처음에 java가 제시한 for 문 스타일( for(int i=0; i < 10; i++) {} )로 계속 코딩해왔습니다..

    그러다가 어느 순간 foreach 스타일을 알게 되었죠..

    그러나 만약 언어에 대한 새로운 호기심이 없었다면 기존 스타일을 그대로 갔을겁니다..왜냐면 동일한 기능과 동일한 예외처리가 가능하니까요..

    foreach 스타일로 좀더 직관적인 의미로 만들수 있어도 이런 호기심이 없으면 그냥 기존의 스타일로 갔을겁니다..기존 스타일로 가도 문제 생길것은 없으니까요..

    그러다가 java 8의 람다식이 도입되면서 이 부분도 조금 다르게 바뀌게 되죠..예외 처리에 다른 점이 있기는 합니다만..그런 문제만 없으면 일부러 람다식으로 쓸려고 노력하고 있습니다..

    하지만 람다식 안써도 문제될것은 없어요..오히려 어떤 사람은 람다식이 더 알아보기 힘들어 옛날 스타일로 가는 사람도 있습니다..


    이런 과정을 거칠려면 어느 시점에 아주 자연스럽게(?) 언어 자체에 대한 호기심이 생겨야 합니다..

    그게 생겨야 시도도 해보고 퍼포먼스나 기타 문제가 있는지 검색도 해보게 되죠..

    근데 이 호기심..이란걸 강제할수는 없습니다..

    어느 순간에 다가오게 되더라구요..

    어떤 사람은 경력이 10년, 20년이 되어도 그 호기심이 아예 안올수도 있습니다..

    그러나 그런 사람에게 왜 너는 언어에 대한 호기심이 없냐..고 탓할수는 없는거자너요..

    더군다나 그것을 강요할 수는 더더욱 없는거죠..


    이거는 어느 누구가 맞고 틀리고로 볼 것도 아닙니다..

    보세요..저 사람은 자바에서 람다식을 쓸 줄 모르네..실력없는 사람이네..이렇게 평가할 수 있겠습니까?

    그렇게 평가할려면 자바에서 기존의 for 문법을 더는 지원하지 말아야죠..

    저 사람은 공부를 할려고 노력을 안하네..이럴수도 있습니다..

    근데..그거는 전제가 깔리는 거죠..호기심..알려고 하는 동기..가 있어야 하니까요..

    호기심이 없으면 애초에 볼려고 안합니다..


    프로그래밍을 처음 하는 사람에게 호기심을 먼저 가져라..라고 말하는것은 상대에게 와닿지는 않습니다..

    당장 자기는 먼가를 키보드로 쳐서 그 결과를 봐야 하는게 우선인데..그런 사람 앞에 두고 자바는 람다식을 사용해서 좀더 깊은 스타일의 코딩을 할 수 있어..이런 말이 와 닿겠냐는거죠..


    펜더님 말씀이 틀린 내용은 아니에요..다만 저걸 받아들이는 시점이..제각각이어서 그렇다고 봅니다..그 시점이란게 프로그래밍 1~2년 만에 오는 사람이 있을수도 있고 아예 그런 시점이 영원히 오지 않는 사람도 있죠..제가 아는 부장님도 약간 그런 스타일이긴 한데..기존것으로 충분한데 뭘 또 새롭게 구현하는 방법을 알아야 하느냐..이런 주의인거죠..이게 잘못된 것은 아녀요..결과론적인것만 놓고 보면 문제가 생기는 것도 아니니까요..자기 발전이 더 나아가느냐..그렇지 않느냐..의 문제겠지만..그건 당사자 스스로의 판단과 책임의 문제일뿐이죠.. 


    얘기가 너무 길어지는것 같아서 정리하자면..펜더님의 지금 글은 그런 지점에 도달한 회원 입장에서는 충분히 와닿을수는 있겠지만 아직 그 지점에 도달되지 않은 사람에겐..와 닿지는 않을겁니다..그렇다고 그게 잘못된건 아닙니다..어쩌면 자기 코딩 인생에서는 영원히 오지도 않을수 있는 그 지점에 아직 도달하지 못한것 뿐이죠..그러나 그 지점에 도달하지 못했다고 그게 문제라고 할 수는 없습니다..호기심..이란건 갑작스레 오는 것이지 정해진 시간과 장소(?)에 맞춰 오는게 아니니까요..

  • fender
    24k
    2021-10-30 19:23:08 작성 2021-10-30 19:23:36 수정됨

    위에서 여러 번 강조해서 동의여부를 떠나서 의도는 정확하게 전달했다고 생각했는데 아닌가보군요. 이번엔 짧게 정리하겠습니다:

    1. 사용하는 언어의 고급 기능을 잘 모름 -> 그럴 수 있습니다.
    2. 분야에 따라 언어의 고급 기능이 중요하지 않을 수 있음 -> 맞는 말입니다.
    3. 위 두 분류에 해당하는 개발자가 "언어는 문법만 다르지 다 거기서 거기다" 같은 이야기를 한다? -> 무지에서 오는 용감함입니다.
    4. 개발을 깊이있게 배우고 싶다면? -> 언어적 특성을 이해하는 것은 상당히 중요합니다.


    제가 본문에서 주장한 내용은 이 정도입니다. 솔직히 전 이게 왜 논란이 될 내용인지 잘 이해를 못하겠네요. 그리고 제가 가장 비판하고 싶은 건 3번에 해당하는 개발자가 4번에게 "언어는 다 거기서 거기다" 같은 조언을 하는 것입니다.

    2번에 해당하는 개발자가 자기 분야의 후배 개발자에게 이야기한다면, 예를들어 SI 개발자가 딱히 기술 욕심이 없는 후임에게 "자바 스트림 같은 것 굳이 알 필요없다. SQL만 잘해도 충분하다"라고 한다면 개인적으로 안타깝게 생각을 할 뿐 굳이 오지랖 부려가면서 배움을 강요할 생각은 건 없습니다.

    하지만 4에 해당 하는 개발자라면, 즉 지금 본인이 1이나 2에 해당하더라도 개발을 깊이있게 배우고 싶다면 당연히 주력 언어로 능숙하게 idiomatic한 코드를 작성할 줄 알아야 하는 것입니다.

    그리고 아무리 오키에 SI 개발자가 많다해도 SI 개발자라고 다 기술에 무지하거나 무관심할 이유도 없고, 4번에 해당하는 입문 단계의 개발자도 충분히 많다고 생각합니다.

    당연히 처음 자바를 배우는 개발자에게, 예컨대 무조건 스트림을 배우라는 식의 강요를 할 이유는 없습니다. 그런데 적어도 자바를 주력으로 하면서 스트림도 제대로 안 써본 개발자라면 남에게 "언어는 문법만 다르지 다 거기서 거기" 같은 조언을 하면 안 된다고 생각합니다.

  • richard7
    1k
    2021-10-30 20:42:24
    1. 언어는 도구일 뿐이니 개발자는 요구사항을 구현하는 데 있어 특정 도구에 구속되지 않고 상황에 맞는 도구(언어) 를 선택하는 용기가 있어야 한다 -> 동의됩니다.

    2. 언어는 도구일 뿐이고 문법만 다를 뿐 조건문 반복문 등 거기서 거기고 다 별 거 없다. -> 동의하기 어렵습니다.  각 언어도 계속 진화하고 있고 리액트 등의 새로 나오는 내용의 경우 기존의 것에 없거나 부족한 점을 채우기 위해 없던 개념들이 도입되곤 하기 때문입니다.

    3. 주력 언어를 깊이 안다면 다른 언어로도 같은 퀄리티의 애플리케이션을 쉽게 만들 수 있다. -> 동의하기 어렵습니다. 애플리케이션 수준에 따라 다르겠지만 대부분 그럴 수 없을 거라 생각합니다.  노베이스보다는 수월하겠지만 기존 주력언어의 동등 퀄리티를 내기 위해서는 분명 적잖은 공부가 필요할 겁니다.
  • 꽃중년보넥스
    -1k
    2021-10-31 16:21:45

    개발자가 컴퓨터의 도구예요~ㅎ

  • 사랑전쟁
    7
    2021-11-01 09:54:41

    "언어는 도구이다" 와 "언어는 도구에 불과하다"의 차이점으로 봅니다.





  • 추다닥
    206
    2021-11-01 10:26:37

    장독깨기님과 fender님의 글을 다 읽으면서 정말 좋은 시간이 됐습니다.


    하지만 끝이 좋지 않네요.



    사실 정답은 XX다! 라고 판단하는 자리가 아니라,

    나는 이렇게 생각한다, 또 다른사람은 나는 다르다, 왜냐하면 ~~~ 이런식으로 넘어가며

    본인이 생각해 낼 수 없는 얘기나, 다른사람의 관점을 들을 수 있었다고 봅니다.


    마지막에는 상대방을 깍아내리고 있습니다.

    하려고 하던 얘기가 상대방의 비방이었나요? 의견이 다르면 그 대상은 무시받아 마땅한가요??


    무시한적 없다고 생각하시면 본인이 쓴 글을 한번씩 다시 읽어보세요. 정말 상대방을 깍아내릴 의도가 전혀 없었는지..


    글 읽으면서 많은 도움이 됐습니다.

  • 슈퍼셀
    773
    2021-11-01 10:31:36 작성 2021-11-01 10:32:49 수정됨

    음.. 논쟁이 많을 수 밖에 없는 주제네요..^^

    저같은 경우, 매우 평범한 머리를 가지고 있어서ㅋㅋ

    단순히 튜토리얼을 따라하는 수준이 아니라

    익숙하지 않은 새로운 언어를 능숙하게 다루기 위해서는 시간도 많이 들였고, 고통이 따랐던것 같습니다. 

    다만, 결과론적으로 이렇게 이야기하죠... 아... 지나고 나니깐... 언어는 도구에 불과했다...!!

    잘 모르는 언어까지 싸잡아서 도구에 불과하다고 말하는게 아니라

    내가 잘 다루게되고 익숙한 언어들에 한해서는 도구에 불과했다 라고 ....^^


  • 고내기
    983
    2021-11-01 10:42:17

    언어에 그냥 if for만 있어도 된다면 왜 계속 기능들이 개선되고 추가되고 새로운 언어들과 패러다임이 등장할까요

    각 언어마다 철학이 있고 용도가 있고 그에 맞춰서 진화하는걸텐데..

    만약 그런게 없이 그냥 도구라면 새로운 언어들이 나올 필요가 있었을까 싶네요

  • youngyoung
    2k
    2021-11-01 12:20:51

    언어는 도구에 불과한게 맞죠.

    언어마다 특징이 있어서 쓰임새에 따라서 다르게 쓰일뿐...

    윗분들 말처럼 점점 토론이라기보다는...

  • 흐엉어엉
    103
    2021-11-02 08:58:40
    구인시장에서 요구하는 언어가 빠르게 바뀌는데 언어를 깊이 있게 배우는걸 추구하라는 말은 공감 못하겠습니다.
    언어 깊이있게 하는거 중요하죠 자기가 하는 언어 바닥부터 머리까지 잘하고 싶은것도 사실인데, 그게 정말 시장성이 있습니까?? 
    그런 고급 기술을 요구하는 기업은 많지 않습니다.
    -1
  • fender
    24k
    2021-11-02 09:13:35 작성 2021-11-02 14:17:41 수정됨

    흐엉어엉 // 본문에도 적었지만, 다양한 언어들은 몇 가지의 축으로 수렴하는 중입니다. 그렇기 때문에 그 방향성을 이해하고 있다면 다른 언어를 배우는 것이 훨씬 수월할 수 있습니다.

    문제는 그게 가능하려면 일단 그 흐름이 어디로 가는지, 또 왜 가는지는 알아야 한다는 겁니다. 자바를 문법만 아는 단계에선 C#을 보면 전혀 다른 언어로 보이겠지만, 자바로 객체지향 개발을 일정 수준 이상 해보았다면 C#은 거의 문법만 다른 자바라는 걸 깨닫게 됩니다.

    반면에 수박 겉핥기로 여러 언어를 접하다보면 아마 언어를 바꿀 때 마다 모든 것이 새롭게 보이거나, 반대로 이미 이해하는 조건문, 반복문 같은 매우 제한적인 구문 단위의 코딩에 자신을 가두게 될 것입니다.

    "언어는 도구다"라는 것을 긍정적인 의미로 보면, 결국 도구 상자에 다양한 도구를 담아두고 특성에 맞게 적재적소에 꺼내 쓸 수 있는 것이 중요하다는 뜻입니다.

    그리고 5개국어로 아침인사를 할 수 있다는 걸 "외국어에 능통하다"라고 하지 않듯이, 예컨대 자바, C, 파이썬, 자바스크립트로 for문을 돌릴 줄 안다는 정도로는 언급한 언어들의 장점을 살려 적재적소에 활용하는데 한계가 있습니다.

  • 흐엉어엉
    103
    2021-11-02 15:48:51

    결론적으로 언어는 도구라는 말씀이네요?

    한가지 도구에 능통하면 다른 비슷한 도구도 잘 사용한다는 말인것 같은데요??

    -1
  • fender
    24k
    2021-11-02 16:07:23

    흐엉어엉// 본문은 "언어는 도구에 불과하다"라는 말이 항상 옳거나 항상 그르다는 주장이 아닙니다.

    여러 번 언급한대로, 그 이야기를 본문 첫 단락에 나오는 폴리글랏 개발자가 한다면, 또는 개발 지식이 많이 필요하지 않은 분야에서 같은 종사자 간에 이야기한다면 맞는 말이지만, 조건문/반복문/함수호출 같은 문법 수준에서 언어를 이해하는 개발자가 일반론으로 주장하면 그렇지 않다는 것입니다.

    또한, 한 가지 언어에 능통하면 다른 언어도 잘 배울 수 있다는 건 다소 애매한 이야기입니다.

    본문에서 언급한 대로, 요즘 언어들은 몇 가지 축을 중심으로 수렴하고 있으니 분명 하나의 언어를 제대로 알면 비슷한 다른 언어를 배우기 훨씬 수월합니다.

    하지만 지향점이 다른 언어(예 - 파이썬과 해스켈)라면 딱히 성립하지 않는 이야기이고, 비슷한 언어라도 본문에서 예시로 든 사례처럼 조금씩 언어마다 교집합에 해당하지 않는 부분들이 존재합니다.

  • 흐엉어엉
    103
    2021-11-02 17:19:14

    풀어가기 어려운 내용을 단편적으로 바라보고 댓글 달았네요. 죄송합니다.

    지향점이 비슷한 언어중 필요한 언어 위주로 깊이있게 공부해 봐야겠네요 :)

    인사이트 공유 감사합니다

  • exoluse1
    294
    2021-11-02 17:19:19

    언어는 "아주 심오한" 도구 입니다. 그냥 도구에 불과하다는 망언을 누가 대체...

  • byeworld
    3k
    2021-11-02 17:57:55

    누가 언제 말했는지가 중요한 발언이죠.. 

    말하는 사람의 수준과 능력에 따라 다르게 봐야하고

    개발대상과 환경에 따라서도 다르게 봐야합니다. 

    누구에겐 지엽적인게 누구에겐 너무나 중요하죠.. 

  • 하마
    7k
    2021-11-02 18:11:23 작성 2021-11-04 16:37:42 수정됨

    상식 (常識)


    fender님이 축약해서 말한  

    1. 사용하는 언어의 고급 기능을 잘 모름 -> 그럴 수 있습니다.
    2. 분야에 따라 언어의 고급 기능이 중요하지 않을 수 있음 -> 맞는 말입니다.
    3. 위 두 분류에 해당하는 개발자가 "언어는 문법만 다르지 다 거기서 거기다" 같은 이야기를 한다? -> 무지에서 오는 용감함입니다.
    4. 개발을 깊이있게 배우고 싶다면? -> 언어적 특성을 이해하는 것은 상당히 중요합니다.


    이 말은  "재료가 좋고 신선해야, 음식이 맛있다" 라는 것과 같은 아주 "상식"적인  얘기 입니다.
    본문의 긴 글은 사실상 그 "상식"을 강조 하면서, 덤덤히 풀어가간 글이라 생각합니다. 

    저 글은 "동의"를 구하는 글이거나, 혹은 맞고 틀림을 판가름 하자는 글이 아니며,  오랜 경력과 공부로 높은 경지에 오른 "요리사"가 몇몇 가짜들에게 일갈하는 말입니다. 물론 본문의 늬앙스는 "일갈" 보다는 항변에 가깝긴합니다만.....(프로그래밍 언어마다 각각의 풍미가 다르거든요. 각각의 풍미를 제대로 잡아채서 우려내려면 생각보다 더 많은 노력이 필요합니다. 이 노력의 가치를 말해주고 싶은거죠...)

    그러니 생산성 있는 반박댓글은 있을 수 없겠지요. 단순히 반박을 위한 반박이거나 가짜의 항변이거나..
    오해를 없애기 위해서 다시 말하자면 높은 경지에 오르지 못한 사람이 가짜라는게 아닙니다. (fender님도 이 부분에 대해 오해를 없애려고 노력을 많이 하셨습니다.)

    뭐 이런 류의 소소한(?) 논쟁은 어떤 전문집단에서도 동일하게 나올 수 있지 않겠습니까?
    예를들어 의료집단에서  "수술은 다 거기서 거기다~ 심장 수술만 알면 나머지도 다 비슷하다"  라는 말이 구전으로 돌아다닌다면, 어떤 뇌수술의 전문가는 장문의 반박 글을 써 올릴 수도 있을 것입니다. 누군가는 뭐 수술의 근본에는 비슷한 면이 있긴 하지.. 허허 하고 넘어 갈 수도 있겠지만요. 어짜피 다 생명을 다루는 일이니깐 "같다" 라고 대단한 발견 인양 강조하는 사람도 나타 날 테고, 조무사의 뛰어난 수술능력에 감탄하며, 의료집단을 매도하는 의견도 나올테지요..

  • dhjhi
    192
    2021-11-03 09:28:51 작성 2021-11-03 09:29:22 수정됨

    중요한게 빠진거 같네요. 그렇게 말하는 사람은 뭐가 중요하다고 말하나요? 그럼 뭐가 불과하지 않은거임?

    -1
  • 장독깨기
    3k
    2021-11-03 13:54:48

    오~ 댓글이 계속 달리는군요. :)

    프로그래머에게 뭐가 중요할까요.

    스프링, node, 장고, 리엑트, vue, JPA, 톰캣, 데이터베이스, ..........

    이런 걸 만드는 프로그래머도 있고,

    이런 걸 사용하기도 버거워하는 프로그래머들이 있습니다.

    제어문, 반복문 만 가지고 언어가 도구라고 말하는 사람 없습니다. :)

    본인이 어떤 프로그래머가 될 지는 각자의 역량입니다.

    공부에 집중할게 언어가 아니라 다른 게 있다는 얘깁니다.

    저런 걸 만드는데 언어는 그 영향력이 극히 미미합니다.

    저런 걸 만들기 위해 필요한 언어는 도구입니다. :)


    -1
  • fender
    24k
    2021-11-03 14:17:35 작성 2021-11-03 14:47:02 수정됨
    스프링, node, 장고, 리엑트, vue, JPA, 톰캣, 데이터베이스, ..........
    저런 걸 만드는데 언어는 그 영향력이 극히 미미합니다.
    저런 걸 만들기 위해 필요한 언어는 도구입니다. :)

    장독깨기 // 이제까지 말씀하신 내용으로 짐작해보면 최소한 리액트나 Vue 같은 프론트 쪽은 깊이있게 해보신 적이 없는 것 같은데 아닌가요? ES6 이후 자바스크립트를 제대로 써보긴 하셨을까요?

    만일 제 짐작이 틀리지 않다면, 제대로 사용해보지도 않은 기술을 만들어 내는데 무엇이 필요한지 어떻게 판단하셨는지 모르겠습니다. 당장 리액트만해도, 예컨대 다른 글타래에서 스스로 잘 모른다고 말씀하신 함수형 접근과 꽤 밀접한 관계에 있는 기술인데 말입니다.

    아직까지 누군가 자바 언어로 이상적인 객체지향 설계를 한 예시를 들라면 전 스프링을 가장 먼저 떠올리겠습니다. 하지만, 예를들어 그걸 파이썬 언어만 해본 사람이 만들 수 있다고 생각하지 않습니다.

    (물론 파이썬에 dependency-injector 같은 유사 프로젝트가 없는 것은 아니지만, 설계나 구조 측면에선 비교가 무의미할 정도로 크게 다르고, 그 이유 중 상당 부분은 자바와 파이썬 각 언어의 특성에 기인합니다.)

    리액트를 제대로 알지 못하는 건 전혀 잘못이 아닙니다. 하지만 그런 기술을 많이 써보지 않은 채로 "그런 건 언어를 잘 몰라도 만들 수 있다"거나 "그런 건 맘만 먹으면 쉽게 배울 수 있으니 다른 걸 공부해라" 같은 조언을 하는 건 다른 문제입니다.

    많은 개발자들이 자신이 이미 알고 있는 지식은 시간이 지나도 가치가 변하지 않는 '근본'에 가까운 것 무엇으로, 그리고 아직 접해보지 않는 내용은 별로 필요가 없거나 마음만 먹으면 금방 익힐 수 있는 '응용' 정도로 쉽게 생각하는 경향이 있습니다.

    저는 언어나 패러다임 같은 것을 어느 정도 깊이 있게 공부하는 목적 중 하나는 바로 그런 착각에 빠지지 않기 위해서라고 생각합니다.

  • ISA
    5k
    2021-11-03 15:45:41
    좋은 의견 나온게 있나 싶어서 보러왔는데
    솔직히 이제는 두분이서 서로의 실력에 대한 비방을 하고 있는걸로 보입니다.

  • fender
    24k
    2021-11-03 16:07:01 작성 2021-11-03 16:31:04 수정됨

    ISA // 오랜만에 장문으로 쓴 글이 건설적인 토론으로 이어지지 않아 저도 안타깝습니다만, 솔직히 글의 주제도 주제인 만큼 "나는 제대로 안 써봤지만 그런 거 만드는데는 언어가 별로 중요하지 않다" 같은 주장까지 반박없이 넘어가진 못하겠습니다.

    그리고 저는 장독깨기님이 잘 모르는 기술이 있다고 해서 비방할 생각이 없고 - 저도 잘 모르는 분야는 셀 수 없이 많습니다 - 다른 분야에서 이론과 실력을 갖춘 개발자일 수 있다는 가능성도 배제하지 않습니다.

    제가 저 분에게 요구하는 건 오직 어떤 언어나 기술이 전혀 중요하거나 어렵지 않다고 주장하려면 최소한 해당 내용을 어느 정도 깊이 이상은 경험해보고 하라는 것, 그 뿐입니다.


  • 장독깨기
    3k
    2021-11-03 18:38:02 작성 2021-11-03 18:40:08 수정됨

    불 꺼진 줄 알았더니, 이게 뭔가요. ㅋ


    ISA

    눈쌀 찌푸리게 해서 죄송합니다.

    다른 분들도, 죄송합니다.

    넓은 아량으로 이해 부탁 드립니다. :)


    fender

    이 정도면 뭘 주장하고 싶은지 모르겠네요. ㅎㅎ

    저도 관심법을 좀 부려보면, 함수형 패러다임이나 최신 트랜드,...

    이런데 빠져서 헤어 나오 질 못하는 거 같습니다.


    언어는 도구다 == 언어를 잘 몰라도 된다.

    이게 말이 되나요? ㅋ 본인 혼자 쉐도우 복싱 하고 있는 거에요..

    스프링, node, 장고, 리액트, JPA, ....

    이거 쭉 나열한거는요, 이런 걸 만드는 프로그래머들이 있다는 거고,

    이런 실력 있는 프로그래머가 되기 위한 공부에 집중해야 된다는 얘기에요.


    http 서버를 만들어 본다고 하면,

    그럼 네트웍, 비동기, http 규격 해석/구현, 스레드, 구조화, 모듈호, 추상화 등등에 대한

    내용을 공부하고 시행 착오를 겪으며 고생을 해봐야 된다는 겁니다.

    여기서 언어 영향력이 적다는 거에요. 잘 몰라도 된다는 얘기가 아니구요.


    아니, 뭐 멀리 갈 거도 없습니다.

    좋은 회사 가려면 코테 시험 봐야 되죠.

    c++. 자바, 파이썬, 자바스크립트 등 언어 맘데로 선택해서 봐도 되죠.

    언어가 아니라 코테를 잘 풀어야 된다는 얘기에요.


    이게 어려운 얘긴가요? ㅋ

    언어는 그냥 도구라구요.. 저런 걸 하기 위한.. 언어를 잘 몰라도 된다는 얘기가 아니구요.

    언어를 모르는데 프로그래밍을 어케 합니까.

    함수형, 스트림 뭐 이런 걸 꼭 알아야 언어를 잘 아는게 아니구요.

    언어의 기본적인 특성들 잘 응용하면 저런 걸 다 할 수 있다는 얘깁니다.

    수많은 프로그램들이 이걸 증명하는 거구요.


    마지막으로 저의 보잘것 없는 실력은 전혀 중요하지 않습니다. :)


  • fender
    24k
    2021-11-03 18:47:23
    이 정도면 뭘 주장하고 싶은지 모르겠네요. ㅎㅎ... 이런 실력 있는 프로그래머가 되기 위한 공부에 집중해야 된다는 얘기에요.... 저런 걸 하기 위한.. 언어를 잘 몰라도 된다는 얘기가 아니구요.
    장독깨기 // 그럼 대체 이건 어떻게 해석해야 하나요?

    공부에 집중할게 언어가 아니라 다른 게 있다는 얘깁니다. 저런 걸 만드는데 언어는 그 영향력이 극히 미미합니다.
    스프링이나 리액트 같은 걸 만들기 위해 언어는 잘 알아야 하는데, 언어는 영향이 극히 미미하니까 굳이 집중해서 공부할 필요없다?

    저도 도대체 님이 뭘 주장하고 싶은 건지 모르겠습니다.
  • 장독깨기
    3k
    2021-11-03 19:54:36

    fender

    언어를 잘 아느냐 잘 모르느냐 에 대한 시각차이 인가요. ㅎ

    언어는 제어문, 반복문, 클래스, 콜백함수 대략 이 정도 이해하면 된다 생각합니다.

    그 다음엔 이걸 응용해서 조합을 하면 된다는거죠.

    이 조합을 잘 하려면, 자료구조, 알고리즘 공부를 열심히 해야하고,

    디자인 패턴을 공부하며 객체지향 프로그래밍으로 뭔가 규모가 좀 있는 걸 만들어 봐야 하고,

    네트웍, 데이터베이스 등등에 대한 공부와 이해도 필요하고,... 이런 공부에 집중해야 한다는 뜻 입니다.

    개인의 역량에 차이는 있겠으나, 프로그래머로 성장하려면 이런 공부를 게을리 해선 안된다 이 애길 하고 싶은 겁니다.

    그럼 언어는 얼마나 공부를 해야 하느냐?

    이것도 분명 개인차가 있으니, 뭐라 특정할 수는 없습니다.

    그러나, 여러 언어를 동시에 공부 하려는 분, 언어 공부에만 너무 오랫동안 시간을 끄시는 분,

    언어만 공부하고 프로그래밍 공부를 다 한 거처럼 여기는 분, ... 이건 아니라는 겁니다.

    가급적 빠르게 언어를 익히고, (언어 공부가 좀 부족하다 느끼더라도)

    바로 문제를 풀어보고, 뭔가를 만들어보면서 프로그래밍을 많이 해보는게 실력 향상에 도움이 된다 보고 있습니다.

    프로그래밍을 많이 하다 보면 혹 부족하다 느낀 언어 공부도 분명 자연스럽게 채워질거라 봅니다.

    전 계속 이 얘기를 하고 있었습니다. :)

  • fender
    24k
    2021-11-03 20:32:31 작성 2021-11-03 21:08:47 수정됨

    장독깨기 // 제가 볼 땐 그냥 객체지향은 장독깨기 님이 익숙하니까 "기본기"나 "근본"으로 느끼시는 반면 함수형이니 반응형이니 하는 것들은 생소하니 몰라도 그닥 관계없는 신기술 쯤으로 생각하시는 듯 합니다.

    한 마디로 이미 손에 익은 것이 "제어문, 반복문, 클래스, 콜백함수"니까 언어란 건 그 정도면 족하다고 느끼시는 것 뿐입니다.

    단적인 예를들어볼까요? 위에서 HTTP 서버를 만드는 것을 예시로 들면서 "네트웍, 비동기, http 규격 해석/구현, 스레드, 구조화, 모듈화, 추상화"가 핵심이라고 하셨는데, 예상컨대 아마 C/C++ 같은 언어로 HTTP 스펙에 맞게 "제어문, 반복문, 클래스, 콜백함수" 이용해서 적절히 소켓 다루는 그런 걸 머릿속에 떠올리셨을 것으로 짐작합니다. 아닌가요?

    그럼 이쯤에서 한 번 스칼라에서 널리 쓰이는 HTTP 서버 구현인 Akka HTTP가 어떻게 생겼는지 구경하고 오시기 바랍니다.

    어떤가요, 설명 첫 단락부터 반응형 이야기가 나오는데 그게 과연, "제어문, 반복문, 클래스, 콜백함수" 만 알면 쉽게 이해가 가는 개념이던가요?

    계속 자바 스트림 같은 건 몰라도 별 상관없다고 하셨는데, 아마 자바 8 이후부터 본격적으로 추가된 함수형/반응형 API들을 공부하셨다면 언어는 다르더라도 Akka HTTP 소개에 나오는 반응형 스트림이라는 것이 자바의 Flow와 사실상 동일한 개념이란 걸 이해할 수 있으셨을 겁니다.

    그리고 그런 것들이 바로 서버를 구현하는 맥락에서 장독깨기 님이 중요하다고 강조하신 "구조화, 모듈화, 추상화"를 하기 위한 기본 개념들입니다. Akka HTTP의 예시나 API 문서에 등장하는 함수형 구조들도 마찬가지고 말입니다.

    무슨 그런 건 객체지향으로 하는 것이고 함수형은 알면 좋은 별개의 개념이 아니라, 경우에 따라서 객체지향으로 추상화를 할 수도, 함수형/반응형으로 추상화를 할 수도 있는 것인데, 정작 "언어는 도구"임을 강조하시면서 장독깨기 님은 그 중 하나의 도구만 사용할 줄 아시는 상태인 것 뿐입니다.

    물론 장독깨기 님이 이미 알고 계신 "제어문, 반복문, 클래스, 콜백함수" 수준의 지식에 만족하신다면 그건 님의 선택이니 남이 왈가왈부할 문제가 아닙니다.

    그런데 그 경험을 일반화해서 그 범위를 벗어나는 건 별 필요가 없다던가, 중요하지 않다고 주장을 하신다면 그건 단지 경험 부족에서 오는 과도한 자신감에 불과합니다.

    한 가지 언어를 어느정도 깊게 공부하면 언급한 Akka의 반응형 스트림과 자바의 Flow의 예시처럼 언어가 달라져도 기본 개념을 쉽게 익힐 수 있다는 주장과, 이미 알고 있는 문법과 설계 방식이 아니면 배우려고도 하지 않고 중요성도 인지하지 못하는 경우 중, 과연 어느 쪽이 언어를 필요할 때 적재적소에 꺼내 쓸 수 있는 '도구'로 인식하는 접근이인지 한 번 곰곰히 따져 보시기 바랍니다.

    "언어는 도구에 불과하다" 같은 주장은 적어도 남들이 톱이나 드라이버도 필요할 때 꺼내 쓰는데 본인은 망치질이 '기본'이라고 나사못도 망치로 때려박으며 할 만 한 이야기는 아니라고 봅니다.

  • 장독깨기
    3k
    2021-11-03 22:17:05 작성 2021-11-03 22:22:15 수정됨

    ㅎㅎㅎ 돌아 버리겠네요..

    그리고, 왜 일케 넘겨짚고 짐작하고 비유하고 이런 걸 좋아하는지 모르겠네요. 

    람다가 콜백 함수에요. 익명 콜백 함수요. c++11 에 도입 됐구요, 제가 이걸로.. 애기를 안하는게 좋겠네요. ㅋ


    명품 패션쇼 보듯 최신 트랜드 이런 거 엄청 중요시 여기는 분들이 많다는걸 굉장히 많이 느낍니다.


    꺼진 불이었는데, 저 위에 분이 뭐가 중요한가라 해서 달은 댓글이 이렇게 됐네요.

    더 이상 얘기하는거 역시 의미 없어 보이고, 하고 싶은 얘기도 다했고...

    다시 불 끄겠습니다. :)

  • fender
    24k
    2021-11-03 23:04:24

    람다가 콜백 함수에요. 익명 콜백 함수요. c++11 에 도입 됐구요, 제가 이걸로.. 애기를 안하는게 좋겠네요. ㅋ
    보는 제가 다 민망한 발언이군요... 그래도 모르는 주제에 대해 더 발언을 안 하신다니 다행입니다.

  • 장독깨기
    3k
    2021-11-04 07:55:35

    ㅎㅎㅎ 설마 람다가 익명 콜백 함수가 아니다 이 얘긴 아니겠죠?

    그리고, 발췌하는 것도 엄청 좋아하네요. 누가 보면 기잔줄 알겠습니다. ㅎㅎ

    아, 불꺼야 하는데. :)

  • fender
    24k
    2021-11-04 08:23:52 작성 2021-11-04 08:24:18 수정됨

    람다야 익명 콜백함수 비슷한 게 맞긴 하죠, 함수형 이야기를 하니 "람다 그거 익명 콜백 함수인거 모름?" 이라고 당당하게 되받아치니 민망할 뿐인거지요.

    말씀대로 이 쯤 하시죠. 저도 오랜만에 쓴 글에 이런 수준의 덧글 오가는게 탐탁치 않고, 님도 나중에 혹시라도 좀 더 공부를 하신다면 이불킥 할 법한 흔적 남기는 게 이득은 아닐테니 말입니다.

  • 장독깨기
    3k
    2021-11-04 09:04:15

    네.. 그만 합시다.

    진짜 불 끕니다. :)

    -1
  • Bluemin
    38
    2021-11-04 10:25:29

    글,댓글을 다 읽다보니 느낀점은 심도있게 공부하는건 좋은데

    제가 좀 꼬였나봅니다 ...ㅎ 단어의 선택때문인지... "착각" "무지".... 커뮤니티는 가입한지 얼마안됬지만...

    지금 이 글의 방향은 일반화시키시는건가요? 작성자분의 의도는 마지막은 권해드리지만

    전체적인 내용전달은 일반화하는 방향으로 그렇게 느껴지네요 ㅎㅎ...

    정의를 내리시는 근거는 무엇이죠.... 누구나 표현과 권유는 자유이지만 일반화하여 전체적인 분위기를 조성하는거는 정점에 서계시거나...그런데 개발자 정점의 기준은 어디에있나요...?

    현 사회에 새로운 개발자들 관심을 가지며 입문하며 단기간내에 목적을 이뤄야하는 분들에게는

    전혀 필요없는 내용인거같습니다. 

  • fender
    24k
    2021-11-04 10:30:19

    Bluemin // 위에 단 4줄로 글의 의도를 요약한 걸 보고도 그렇게 생각하신다면 아마 생각하신대로 어딘가 꼬인 것이 맞을 겁니다.

  • Bluemin
    38
    2021-11-04 11:04:16
    1. 사용하는 언어의 고급 기능을 잘 모름 -> 그럴 수 있습니다.
    2. 분야에 따라 언어의 고급 기능이 중요하지 않을 수 있음 -> 맞는 말입니다.
    3. 위 두 분류에 해당하는 개발자가 "언어는 문법만 다르지 다 거기서 거기다" 같은 이야기를 한다? -> 무지에서 오는 용감함입니다.
    4. 개발을 깊이있게 배우고 싶다면? -> 언어적 특성을 이해하는 것은 상당히 중요합니다


    이거요...?

    결국 자신 또한 무지한거 아닌가요. 자기가 아는거가 무조건 맞다고 표현하시는거같아요.

    작성자님도 결국 꼬이신거 아니에요? "언어는 도구에 불과하다" 라는 표현에 이러한 의도를 보이시는거 또한

    근데 정의를 내리시는 이유가 모에요? ㅋㅋㅋㅋ 대단하신분인가요...학문적 소양이 높으신가요?

    글의표현 자체를 다시 쓰셔야되는거아니에요?
    이러한 생각을 가지고있다. 맞다가아닌 있다로 표현하세요. 무지하신거같에요


  • 하마
    7k
    2021-11-04 11:06:20 작성 2021-11-04 16:39:48 수정됨

     장독깨기


    http 서버를 만들어 본다고 하면, 그럼 네트웍, 비동기, http 규격 해석/구현, 스레드, 구조화, 모듈호, 추상화 등등에 대한 내용을 공부하고 시행 착오를 겪으며 고생을 해봐야 된다는 겁니다. 여기서 언어 영향력이 적다는 거에요. 

    만약 그냥 단순 구현하는 것만 생각한다면, 님의 의견이 틀리진 않다고 생각합니다. 
    근데 마스터피스의 작품 근처까지라도 수준을 끌어 올리려면 생각보다 언어의 영향력이 커질 거라고 생각합니다.

    구현하는 것에만 그치지 않고, 1) 안정적으로 돌아가게 한다.  2) 성능 최적화를 염두해 둬야 한다. 3) 프로그램은 생물이라 계속되는 관리가 필요하며, 후대의 사람들이 유지보수,발전을 시키기 좋은 형태를 갖추어야 한다. 등등의 고려를 해야 합니다. 이것들은 언어마다 관통하는 공통의 무엇도 당연히 있지만, 언어 마다의 특성에 따라 상당부분 다시공부해야 하는 내용들입니다.

    만약 C++로 저것들로 코딩을 한다고 할 적에, C++03 이전것들로 코딩을 하거나, Mordern C++로 코딩을 할 텐데, 이  두가지 방식은 같은 C++이지만 매우 다른 모습을 띄고 있습니다. 03이전 프로그래머가 Mordern C++로 바꾸려면 어지간한 숙련된 C++프로그래머라도 고생을  많이 해야 한다고 합니다. (저의 말이 아니라 스캇마이어스나 C++창조주가 그렇게 말합니다.)

    점점 시간이 갈 수록 저런 기술들을 구현하는 부분 즉 http규격을 해석 못해서 생기는 문제 보다는, C++을 다룸에 있어서, 메모리 해제문제, 로우 쓰레드들의 경쟁상태 관리 문제, 비효율적인 객체복사 문제, RAII등에 관한 문제가 나중에 더 큰 문제가 될 가능성이 있어요. 비동기 패턴과 Collection라이브러리 다루는 것만 해도 언어 상황에 따라서 많이 달라지며 추상화 시키는 과정과 API설계 하는 부분에서도 언어의 특성에 맞게 컨벤션을 가져가야 할 겁니다. 만약 Rust,클로저,Go언어 등으로 구현한다면 고민을 안해도 되거나 다른 방식으로 고민해야하는 문제들도 많아 질 테구요.

    현재 디아블로2 레져렉션의 버그들도 스케일 확장된 면 때문에 문제가 생기기도 하지만, C++에 대한 선배들의 지식을 못따라가서 혹은 C++가 쉽게 부서지는 언어이기 때문에  생겼으리라 짐작도 합니다. 윈도우즈나 웹브라우저의 버그의 상당부분도 비지니스 로직이 문제가 아니라 C++을 사용함에 있어서 따라오는 실수의 빈도가 비교적 크기 때문 인데요. (특히 null pointer exception) Rust로 바꾸려는 시도 또한 그런 부분에서 나오는 것이구요. 즉 언어 자체에 대한 깊은 성찰은  생각보다 프로젝트의  성공과실패에 큰 영향을 주게 됩니다.

    물잔의 물이 반쯤 찬것을 보고, 물이 많다, 물이 적다 이렇게 생각이 다를 수 있음은 압니다.
    다만 님이 초반에 느꼈을 정도 보다는 좀 더 언어의 중요성이 높아졌기를 바랍니다.

  • 장독깨기
    3k
    2021-11-04 11:29:45

    불 껏는데,  제발 저 한테 댓글 달지 말아 주세요. 부탁드립니다. :)

    하마

    저건 예를 든거 잖아요. 언어 말고 도 해야 할 공부들이 많다구요.

    또 예를 들었잖아요. 코테 보는데 언어가 중한게 아니라 문제를 잘 풀어야  한다고요.

    어찌 저렇게 발췌해서 하고 싶은 말만 하는지 모르겠군요. ㅋ

    언어는 도구다 == 언어 잘 몰라도 된다. 언어가 중요하지 않다.

    왜 자꾸 일케 생각하는지 당최 이해 불가합니다.


  • dhjhi
    192
    2021-11-04 12:02:03 작성 2021-11-04 12:04:05 수정됨

    뭔 샘플을 봐가면 이해가 빠르겠으나.... 말로만 떠들면 공감도 안가고 .....

    그 언어만의 극강이나 그정도는 아니더라도 딱 보면 아..하는 셈플 없나요? 

    -1
  • fender
    24k
    2021-11-04 12:28:41

    Bluemin // 개발 커뮤니티에 개발하면서 느낀 점을 공유하는데 무슨 대단한 자격이 필요한 지 모르겠지만, 솔직히 경력으로 보나 기존 오키에 글 쓴 이력으로 보나 제가 님보다 '자격'이 못 하진 않을 것 같습니다만...

    무지성 말꼬리 잡기는 사양합니다.

    dhjhi // 제가 본문에 이야기한 내용들이 뭐 거창하고 어려운 내용들이 아니라 다 각 언어의 기본 문서에 잘 나와 있는 개념들이고 예제도 간단한 구글링으로 얼마든지 찾을 수 있습니다.

    애초에 언어들이 그런 기능을 앞다투어 넣는 이유 자체가 그걸 필요로 해서 찾는 사람들이 많기 때문이고, 그런 내용에 대한 예시나 논의 등은 인터넷에 널려있습니다.

  • Bluemin
    38
    2021-11-04 12:49:15

    무지성 말꼬리...ㅋㅋ

    글쓴이력으로 자격을 가늠하시는거에요? 그런분이 이런 글을 남기시다니

    더욱더 비판을 할 수 밖에없네요....

    작성자같은 분들을 수 없이 봐서 지나치기 힘드네요. 어느 경지에라도 도달한 마냥 오만하기 그지없네요.

    앞으로 이런식의 권유에는 적당한 표현들로 이루어서 글을 작성하세요. 

    프로그래밍 언어가아니라 한국어부터 공부하셔야하겠네요.


  • fender
    24k
    2021-11-04 12:56:57 작성 2021-11-04 12:59:09 수정됨

    Bluemin // 아 네, 님 기준에선 "개발을 깊게 배우고 싶다면 언어의 특성을 잘 아는 것이 중요하다"라고 말하는 건 대단히 "오만"한 발언이고 "난 안 해봤지만 함수형이나 리액트 그런 거 별거 아님" 따위 의견은 '합리적인 의견'이라도 되나 보군요.

    도대체 저보다 어떻게 더 "적당한 표현"을 써야 할지는 잘 모르겠습니다만, 저와는 기본 상식부터 너무 차이가 나는 걸 보니 딱히 알아야 할 이유도 없는 것 같군요.

  • Bluemin
    38
    2021-11-04 13:04:04

    "다양한 프로그래밍 언어를 능수능란하게 구사할 만큼 배우는 것은 매우 어렵지만, 그 수준에 다다랐다고 착각하기엔 쉽다고도 할 수 있습니다. 그렇다면 왜 이런 현상이 발생하는 것일까요?"

    "하나의 언어에 조금 익숙해지고 다른 언어를 배운 개발자들이 과도한 자신감을 느끼는 이유는 아직 주력 언어의 고급 개념도 제대로 접해보지 않았기 때문일 가능성이 높습니다. 즉, 프로그래밍 언어를 아직 변수, 조건문, 함수, 반복문 같은 대부분 언어에 '최대공약수'처럼 공통으로 존재하는 기초 문법 수준에서 이해하고 있기 때문에 다른 언어를 배우는 것도 별거 없다고 착각하는 단계입니다"

    이와 같이 직접 작성하셨는데 어느 연구기관을 통해 작성된 발생 현상인가요? 얼마나 많은 개발자 인원을 연구한 현상인가요? 

    고급 개념도 제대로 접해보지 않았기 때문일 가능성이 높다는거는 온전한 작성자분만의 생각이신가요?

    가능성은 어떻게 판단하신건가요?

  • Bluemin
    38
    2021-11-04 13:07:28

    작성자분의 의도를 느껴보면 언어를 딥하게는 공부할 필요는 백해무익 인정하는 부분이지만

    이러 글을 보고 또한 영향을 받을 사람들에 대해 되려 시작부터 컴퓨터공학이

    부담감과 압박감으로 느껴질 수 있다고 생각합니다.

  • fender
    24k
    2021-11-04 13:15:27 작성 2021-11-04 13:17:20 수정됨
    이와 같이 직접 작성하셨는데 어느 연구기관을 통해 작성된 발생 현상인가요? 얼마나 많은 개발자 인원을 연구한 현상인가요
    이러 글을 보고 또한 영향을 받을 사람들에 대해 되려 시작부터 컴퓨터공학이 부담감과 압박감으로 느껴질 수 있다고 생각합니다.

    Bluemin // 그럼 이 글을 보고 사람들이 심각한 "부담과 압박"을 받는다는 건 대체 무슨 기관에서 얼마나 많은 개발자를 대상으로 연구한 결과인가요?

    "사용하는 언어의 고급 기능을 잘 모르거나 분야에 딸 고급 기능이 중요하지 않을 수 있다"라는 요약까지 읽고도 저렇게 곡해해서 받아들이는 건 솔직히 과학적 연구의 영역이 아니라 기본적인 독해력의 영역일 것 같긴 합니다만...

    본문에 언급한 기능이래봐야 옵셔널이나 확장 메서드 같은 예시들인데 한 쪽에서는 자기는 안 써봤지만 그 딴 "패션쇼 같은" 기능은 별로 어렵지도, 중요하지 않다고 강변을 하고, 한 쪽에선 그런 걸 언급하는게 "부담과 압박"이니 "오만"하다느니 난리군요.

    도대체 뭘 어쩌라는 걸까요? ㅎㅎ

  • Bluemin
    38
    2021-11-04 13:22:07

    아직도 제가 말씀드리는걸 이해못하시네요. 어디까지 직접적으로 말해줘야 알아들으시려는건지...
    "부담감과 압박감으로 느껴질 수 있다고 생각합니다." 
    저는 제 생각을 말하고있잖아요 ㅎㅎ

    제가 요구한 답변을 하나도 못해주시는걸 보면 이 글 또한 그저 본인의 생각을 주절히주절히 떠드신거잖아요.

    근데 표현자체를 작성자분께서 정의를 내리시냐는거죠 알아듣기가 이렇게 어려우신가요...?

  • fender
    24k
    2021-11-04 13:27:19 작성 2021-11-04 13:35:42 수정됨
    근데 표현자체를 작성자분께서 정의를 내리시냐는거죠 알아듣기가 이렇게 어려우신가요...?

    네, 솔직히 님과 의미있는 대화를 하는 것보단 지금 옆에 있는 커피잔과 진지한 토론을 하는 게 더 쉽게 느껴집니다.

    뭐에 그렇게 화가 나셨는지 모르겠지만 애먼 글에 분풀이 하셨음 이 쯤하고 갈길 가시죠.

  • Bluemin
    38
    2021-11-04 13:32:30

    넵 이만가겠습니다.

    이러한 글을 보시는 분들은 그저 한사람, 그들만의 신념일 뿐이란걸 다들 느끼셨을거라고 생각되며

    많은 분들이 이러한 잘못된 신념을 받아 들이지 마시고 한 귀로 흘리시고

    전형적인 윗세대의 자리잡은 틀에 사로잡히지마시고 자신만의 방향성을 잃지마시길....

  • 하마
    7k
    2021-11-04 16:26:39 작성 2021-11-04 16:43:14 수정됨

     장독깨기 //

    님이 말한  "언어 말고도 해야 할 공부들이 많다" 라는 거나 "언어만 깊이 있게 파지말고, 많이 만들어보는게 좋다" 라는 의견을 내신것도 잘 알고 있으며 매우 상식적인 주장 중 하나라고 공감합니다. 

    근데 차분하게 생각해보시면  fender님도  "언어 공부를 깊이 하면 할 수록 좋으며, 쉽게 얘기하기엔 언어의 이해도에는 큰 차이가 있다." 라는 매우 "상식적인"  말을 했을 뿐입니다. 쉽게 말하는 사람들에 대한 일갈에 불편함을 느꼈을 수도 있으리라 짐작합니다. 다만 

    굳이 그걸 반박하려고  "언어가 끼치는 영향력은 극히 미미합니다." 라는 근거도 없는 이야기를 할 필요가 없을 거 같습니다. 전 단지 그 부분의 주제에만 촛점을 맞춰서  "언어가 끼치는 영향도 크다" 라는 글을 작성을 했을 뿐임을 확인 시켜 드립니다. 혹여나 확대 해석하지 마시고 해당 부분에 대한 오해가 있으면 그것에 대해서만 말하시면 됩니다. 

    언어가 끼치는 영향력이 미미하면 애초에 Effective/Efficient C++ 류의 수많은 세컨북들이 나올 필요가 없으며, 언어가 윈도우즈 운영체제에 어떤 영향을 주는지에 대한 이런 리포트도 나오지 않게 되겠지요. 
    https://visualstudiomagazine.com/articles/2019/07/18/microsoft-eyes-rust.aspx








  • flipflop
    127
    2021-11-04 17:53:55

    언어는 도구에 불과하지요

    땅파는 도구만 해도 삽, 모터굴착기, 포크레인 등등.. 종류가 많은데 다 각자 장단점도 존재하고 쓰는 방법도 다 다르고 투자 비용도 다 다른데 어찌 도구에 불과하지 않다 하겠나요.

    Java, C, Python, Java Script 등등 다 개발을 위한 언어지만 개발을 위한 과정은 다 다르잖아요?

    마치 삽으로 흙을 뜨는거나, 모터굴착기로 땅을 파는거나, 포크레인으로 흙을 퍼내는게 다른것 처럼 말예요.

    그런 도구로 작업하는 사람들 중에는 장인들도 존재할겁니다. 삽질을 너무 잘해서 모터굴착기만큼 빠르고 섬세하고 정교하다던지, 모터굴착기를 너무 잘 써서 포크레인이 들어갈 수 없는 장소에 포크레인만큼 속도가 난다던지, 포크레인을 너무 잘 써서 매우 정교하지만 굉장히 빠르게 흙을 정리한다던지 하는 그런 얘기요.

    위 예시의 관점으로 보면 설계가 전부이며, 기본적으로 사용가능한 언어 및 개발의 특성만으로 안정성있고 효율적이며 가독성 좋은 개발을 한다고 볼 수 있을까요?

    저는 아니라고 봅니다. 몇 번 써보지도 않은 언어로 개발 할 때 아무리 실력 좋고 능력 좋은 사람이라도 해당 언어의 도큐먼트를 다 외울 수는 없다고 생각하고, 개발의 효율이나 시간단축, 좋은 구성은 해당 언어 자체 라이브러리를 얼마나 잘 다루느냐, 해당 언어의 구조에 대해서 얼마나 잘 알고있느냐가 꽤 중요하다고 생각해요. 이게 특정 프레임워크위에서 놀면 더더욱 그렇다고 생각되구요.(그런 의미에서 안드로이드의 Bitmap 누수 문제는 꽤 괜찮은 예시라고 생각합니다.) 괜히 초보 자바 개발자에게 도큐먼트 읽는 법 부터 가르치는게 아니지요. 

  • 장독깨기
    3k
    2021-11-04 18:13:58

    아, 진짜 돌아버립니다. ㅎㅎ

    이 정도면 진짜 프로그래밍 언어고 뭐고 국어 공부 부터 해야 됩니다.

    제가 언어 영향력이 적다고 말한게 무슨 뜻인가요.

    더 쉽게 예를들어, 코테 보는데요, C++ 로 풀든, JAVA 로 풀든 크게 뭐 다른게 있나요?

    여기에  언어 영향력이 얼마나 있나요. 이 얘길 하는 거잖아요.

    왜 일케 언어에 예민한지 몰겠네요.

    언어 중요해요. 깊게 이해할 수록 좋구요. 이걸 누가 반대합니까.

    그래서, 학생이면 C++ 먼저 하는걸 추천하는 편 이구요.

    근데 저분은 함수형, 스트림, 리엑트 이런거 안해 보고 언어는 도구다 이딴 소리 하지 말라는 거 잖아요.

    이거 뭐 지겹게 한 얘기고 그만 하기로 했으니 더 이상 언급 하고 싶지 않습니다.


    하마님. 더 하고 싶은 얘기 있으면, 따로 글 파서 했으면 합니다.

    여기선 그만하는게 좋을 거 같습니다. 부탁드립니다. :)


    -2
  • 하마
    7k
    2021-11-05 09:39:54 작성 2021-11-05 10:04:56 수정됨

     장독깨기 //

    계속 장문의 글은 잘 안 읽고 논점을 이탈해서 허공에 대고 자기 하고 싶은 말만 하고 계시는거 같습니다. 

    "솔루션(http서버) 에 언어가 끼치는 영향력은 극히 미미합니다."  라고 님이 말하셨습니다. 
     (가독하는데 도움되시라고 굵게 썼습니다.)

    계속 말하지만 님이 말한 모든것에 대해 말하는게 아닙니다. 저 주제에 대해서 말하는 겁니다.

    저 문장에 코테는 없는데 자꾸 코딩테스트 예를 가져오는 것도 좀 지칩니다.( "코테에서 언어선택 및 깊이있는 언어 학습의 중요성" <- 이건 또 다른 꼭지로 나중에 논의 할 수 있을 거 같습니다.) 

    전 님을 비난하는게 아닙니다. 저 근거 없는 문장에 대해서 반대의견을 낸 것이에요. 충분히 읽어 보셨습니까?

    저것에 집중해서 근거를 들어서 다시 설명을 하시거나, 단지 과했다라거나 표현하면 되는 건데..왜 엉뚱한 항변을 저에게 하시나요. 당황스럽습니다. 
    흥분은 이제 좀 자제 부탁드립니다. 

  • exexexe
    364
    2021-11-05 10:41:43

    논쟁이 될만한 내용만 교묘하게 글 올려서..

    사람들 열 받게 만드는 구만...

    그렇게 할 일이 없나...시간 낭비다 낭비...


  • 오키깡
    184
    2021-11-05 12:56:52

    댓글은 패스하고..ㅠ

    좋은글 잘 읽었습니다


  • 장독깨기
    3k
    2021-11-05 13:22:39

    하마

    ㅎㅎㅎ 소용없군요. 불 껐습니다. 

    -2
  • Arial
    90
    2021-11-06 06:24:12

    저는 개발자로 일해오면서 이 말에 회의감이 듭니다.. 개발자적인 마인드로는 언어를 깊이 있게 이해하고 사용하는게 자부심이 생기고 실력이 좋다 라고 정의될 수 있겠지만 실상 실전에서 가장 필요한 능력은 어떤 언어든 쉽게 적응하고 깊이가 없어도 개의치 않고 빨리적응해서 잘 사용하는 능력인것 같습니다. (여기에는 낯선 개발툴과 환경 도메인지식 등등 많은 요소가 있겠죠) 수많은 기술이 쏟아지는 와중에 깊이를 판다는게 노력대비 성취가 많이 떨어지는것 같아요.. 깊이를 추구하다 나이가 들어버리면 실상 써주는곳도 많이 없으니 자신이  최상급 기술장인이 될 자신이 없으면 현실과 타협하여 요령것 적응력만 높이는것이 좋을듯 싶습니다. 예를들면 차를 5년도 안돼서 계속 바꾸는데 자동차에 대한 이해가 깊지 않아도 되겠죠 차에 대한 깊이 있는 이해가 부족해서 엔진, 브레이크 등 주요 부품이 상해도 기본 품질로 5년까지는 버텨줄테니까요. 또 적당히 해온 공부와 경력에서 오는 노하우도 은근 무시못하기 때문에 이론적으로 깊이가 떨어져 보일지 몰라도 실전에서 해결능력은 좋을 수 있으니까요.


    저는 그저 흔한 개발자의 입장에서 생각한 것이고 구글이나 그에 준하는 기업의 개발자들의 입장에서는 다를 수 있다고 생각합니다.

  • fender
    24k
    2021-11-06 08:26:05

    Arial // 말씀하신 내용의 취지는 이해하지만 저는 생각이 좀 다릅니다. 이런 부류의 논쟁이 어려운 점은 보통 프로그래밍해서 기초를 벗어난 내용의 경우 흔히 어느 정도 접하기 전에는 사용법 뿐 아니라 필요성 자체를 느끼지 못하는 경우가 흔하다는 사실입니다.

    그리고 그 것이 이 글타래에서도 반복적으로 언급했던 "들고 있는 것이 망치뿐이라면 모든 문제가 못으로 보인다"의 진정한 의미입니다.

    풀어서 설명하면, 어떤 방식을 배우고 일정 정도 그 방법으로 다양한 문제를 해결하다 보면 어느 시점에서는 그런 문제는 '당연히' 그 방법으로 풀어야 하는 것이라는 확신으로 바뀌고, 때로는 그 방법에 (자신 만큼) 익숙하면 '못 풀 문제가 없다'라는 자신(만)감으로 변하게 된다는 것입니다.

    본문에서 언급한 이런 저런 언어의 다양한 기능 차이는 그렇게 대단하게 복잡한 내용도 아니고, 말씀하신 "구글이나 그에 준하는 기업"에서나 필요한 내용은 더욱 아닙니다. (그랬다면 애초에 언어마다 경쟁적으로 도입하지도 않았겠죠.)

    다만 조건문, 제어문, 반복문 같은 문법의 기초 수준에서 공부를 중단하고 그러한 도구만 들고 오랜기간 이런 저런 프로그래밍의 문제를 해결하다 보면 그 걸로 못 푸는 문제가 없다는 확신이 들어 애초에 필요를 못느끼게 될 뿐입니다.

    예를들어 본문에서 이야기한 옵션 유형 같은 경우, 해당 개념을 모르는 개발자라면 너무 당연하게 널 체크를 할 것이고, 꼼꼼하게 널 값 확인을 하는 것이 자신 같이 실력있는 개발자의 기본 소양이라고 자부를 하면 했지 그 이상의 무언가가 왜 필요하고 얼마나 도움이 될 수 있는지 상상을 하지 못합니다.

    재미있는 것은 전 오키에서도 거의 비슷한 성격의 논쟁을 종종 해왔지만 "망치 만 있으면 모든 문제가 못으로 보인다"에서 '망치'에 해당하는 건 항상 동일하지 않았다는 점입니다.

    예를들어 객체지향이나 디자인 패턴 관련해서도 공부의 필요성을 몇 차례 언급한 적이 있는데, 그 때도 "그런 건 실무에서 굳이 필요없다"거나 심지어 "가짜 지식"이라는 극단적인 표현까지 쓰며 제 의견에 강하게 반박하는 분들이 있었습니다.

    이 번 논쟁에서는 우연찮게도 그 포지션에 해당하는 분이 객체지향적인 접근의 유용함은 직접 경험을 해보셨는지 스스로 디자인 패턴 등은 '기본기'라고 표현을 하는 반면, 본문에서 언급한 함수형 등은 "패션쇼"에 비유하며 대충 '겉 멋'으로 취급한 것만이 다를 뿐입니다.

    이와 같이 많은 개발자들이 기술 흐름을 파악하는 것을 게을리하고 이미 알고 있는 방식으로 다양한 문제 해결을 오래 하다보면 점점 그 방법만이 최고이거나 유일하다는 착각에 빠지게 됩니다.

    어느 시점에서 공부를 멈추었는지에 따라 '기본기'라고 주장하는 내용이 달라질 뿐, 지나친 자신감과 편견으로 개발자라서 스스로의 발전 가능성을 닫아 버린다는 점에서 본질적으로 동일한 경우라고 봅니다.

  • Arial
    90
    2021-11-06 19:23:31

    어떤 개발자였는지 모르겠지만 깊이가 없는것을 인정하지 않고 몰라도 된다고 기술을 깍아내리는 말을 한건 참 못나보이긴하네요.. 말씀하신 예에서 나오는 사항을 모두 가지고 있으신 분들은 그냥 꼰대지 않나 싶습니다^^;; 


    사실 여러가지 언어를 쓴다면 객체지향이나 함수형 프로그래밍 메모리관리등 os의 이해라던지 웹을한다면 전반적인 웹의 이론적 공부나 서버 클라이언트의 특성이나 역사적인 흐름에 기반한 기술의 변화 같은것도 알아야 할것이고.. 제생각에는 다양한 언어를 한다는 것은 언어가 쓰이는 환경도 다양하기 때문에 기본기가 기본문법 수준에서 머무르면 못할것 같습니다.. 객체지향언어를 쓰면 기본 클래스에서도 객체지향 특성들이 잔뜩묻어나 있는데요ㅋㅋ


    예전에 첫회사를 다니던 때 알던 상사중에 한명을 예로 들면 닷넷의 인터페이스도 어떻게 쓰는지 모르시고 디자인패턴도 모르고 공부안하시는 분이였는데 그분은 다양한 언어를 사용하지 못하셨어요 보통 그런분들은 언어를 다양하게 쓰시려고 하기보단 도메인지식을 파시거나 개발자를 그만두시고 예전에 개발을 했었다며 개발자를 힘들게 하시더라구요 ㅋㅋ 잘알아서 힘들게 하기보단 모르는데 아는척해서 힘들게 하셔서 그런말 하는 사람들은 극혐합니다ㅋㅋㅋ 특히 그런 분들이 관리자로 많이 있더군요.. 


    여튼 개발자로 10년 20년 살아 가시는 분들은 언어는 도구일뿐이다 라는 논쟁이 무슨 의미일까 싶습니다 ㅎㅎ 그냥 상황이 닥치면 새로운 언어도 하는것이고 언어에 따라 숙련도는 다를것이며 많이 쓰면 쓸 수록 깊이가 있어지겠죠ㅎㅎ

  • 샤샤샷
    77
    2021-11-09 23:50:41

    철학 공부 좋아하는 사람으로서 프로그래밍 언어든 수학이든 뭐든 도구죠.. 잘 쓰면 좋은거고.. 잘 쓰려고 배우는거고.. 그와 별개로 일반적으로 프로그래밍 고수들이 언어 하나 깊게 파는게 실력 향상에 중요하다고 말하더군요.

  • 코딩잘하기
    1k
    2021-11-10 13:31:21

    사람들이 자기를 객관적으로 보지 못해서 그렇죠.. 

    사람마다 같은 '성실히'란 단어를 써도

    3시간이 '성실히'인 사람이 있고

    10시간이 '성실히'인 사람도 있어요.

    자신을 못 보는 게 인간 본능인것도 같습니다만.. 


    이 글 한번 읽어보세요. 

    => 자기 평가를 잘 해야 인생이 풀린다 ( https://blog.naver.com/shc4524/222562584114 )

  • kofershy
    7
    2021-11-13 00:43:13 작성 2021-11-13 01:27:39 수정됨
    fender님 잘 봤네요.

    얘기하신대로 언어가 도구일뿐이다라고 사람들 2부류가 있는것 같네요.

    진짜 실력자부류
    그외 그냥 HTML과CSS만 알면된다는 부류

    전자는 컴퓨터나 내부동작에 깊이 이해하고 언어를 바라보는 부류들.

    후자는 이해도 부족, 그냥 납품하기용으로,이것저것한건 많지만 수준낮은 개발경력만 하는 늙은이들이 하는 소리들이죠.

    그리고 실제로도 저 소리 아무렇지 않게 하는분들 봤는데,
    대부분 개발수준 낮고 특히 프로그래밍쪽, 
    또는 도메인특화된 능력으로 버티는분들 이었습니다.



  • 보름
    954
    2021-11-14 01:19:03 작성 2021-11-14 01:58:23 수정됨

    전 이 글에 전혀 공감할 수도, 동의할 수도 없네요.

    솔찍히 말이안된다고 생각합니다.

    예전에 코볼 엄청나게 깊이 공부했다고 c언어 잘할까요?

    c언어 엄청나게 잘하면 자바스프링 하루먀 공부해도 술 싈 개발할 수 있을까요?

    그렇다면 전 지금쯤 엄청난 대접을 받고 있어야 합니다.

    깊이 있는 공부가 과연 필요한지 조차 의심스럽습니다.

    평생 델파이 하나로 먹고 살 수 있을꺼라고 무지 막지하게 공부하던 제 주변 사람들 지금 모두 손들고 업종 변경했습니다.

    델파이 수요가 거의 없거든요.

    지금은 구인란을 보면 전부 자바입니다.

    자바만 깊이 공부하면 인정받던 시절도 있었고 제 주변에 그런 사람도 스프링에서 포기하고 개발에서 손 떼고 지금은 빅데이터로 넘어갔습니다.

    그나마 이것 저것 공부하던 제가 여전히 개발을 하고 있지만 스프링을 만나고는 고생중입니다.

    그럼 다들 스프링만 요구하는 시대이니 제가 스프링을 모루다고 무능력한 사람일까요?

    과연 그럴까요?

    갈수록 변화는 점 점 빨라지고, 기존의 기술과 새로운 기술의 연관성은 점 점 사라지는데 깊이 있는 공부를 하라는건 억측으로 보이네요.

    깊이있는 공부가 필요한 분야도 물론 있습니다.

    도구개발자들이 대표적인 경우이고 가깝게는 AA들이죠.

    하지만 그쪽으로 가려고 하는 공부가 아니라면 깊이있는 공부는 닭한마리 잡자고 명검을 준비하는 꼴입니다.

    깊이 있는 공부는 그게 필요한 사람들의 몫일뿐 모든 개발자들에게 필요한건 아닙니다ㆍ

    한가지 언어로 평생 먹고 살겠다면 말리지는 않겠습니다.

    하지만 그렇게 공부한다면 전문분야의 길을 선택해야 하겠죠.

    반대로 도구개발자나 AA와 같은 전문가를 목표로 하지 않는다면 깊이 보다는 넓은 공부가 필요합니다.

    한가지 언어에 도가 트게 공부하는 사람들이 동경의 대상이긴 하지만 단지 동경의 대상일 뿐이고

    단지 누군가에게는 동경의 대상 이하도 이상도 아닌 존재로 남는게 옳은 경우도 있습니다.

    언어는 도구에 불과하고 대부분의 개발자들은 그 도긔를 사용할 줄만 알면 됩니다.

    그 도구가 워낙 빨리 바뀌다 보니 그 도구를 다루는 방법만 공부하기도 힘든 현실인데 깊이까지 요구된다면 개발은 오래 못합니다.

    닭한마리 잡는데 파천검은 오버이고 

    출퇴근을 위해 운전하는 사람은 엔진정비 배울 시간에 가족들과 보내는 시간이 더 큰 가치일것입니다.

    시간과 노력은 무한대가 아닙니다.

    한정된 시간과 노력을 효과적으로 사용하는 방법은 깊이있는 공부도 넓은 공부도 아닙니다.

    다만 각자에게 필요한 만큼의 공부를 할 뿐이고 

    그 공부를 멈추지 않을뿐입니다.

  • fender
    24k
    2021-11-14 04:04:22 작성 2021-11-14 04:08:13 수정됨

    보름 // 일단 개발 분야에서 공부를 하면 연봉이 자동으로 오르는 것이 아니라 기술력이 있는 만큼 더 좋은 회사에 취업을 하던 창업을 하던 더 좋은 환경에서 일할 수 있는 선택의 폭이 넓어지는 것입니다.

    2021년에 코볼이나 델파이 같은 예를들어 "공부 따위 필요없다"라고 말하는 건 요즘에 주산을 열심히 배웠는데 쓸모가 없더라, 그러니 취업은 운에 불과하다 비슷한 이야기입니다.

    그리고 항상 강조하지만, 프로그래밍 관련 분야에는 큰 흐름이 있습니다. 본문에 언급한 여러 언어들의 변화도 대부분 개발자 커뮤니티 내부의 논의와 경쟁을 통해 방향성을 가지고 움직이는 중에 등장한 내용들입니다.

    개발 공부를 하는 중요한 이유 중 하나는 그 흐름을 이해하는 것이고, 이를 알고 있으면 어느정도 쉽게 새로운 내용에도 적응할 수 있습니다.

    코볼은 말할 것도 없고 델파이도 그 흐름에서 밀려난지는 거의 20년이 되었습니다. 말씀하신 '공부'가 무엇을 의미하는지는 모르겠지만, 본문에서 이야기한 내용은 기술 동향 같은데 담을 쌓고 골방에서 자기 주력 언어만 20년씩 도닦듯이 수련하라는 뜻이 아닙니다.

    오히려 기술 동향에 대해 공부를 제대로 한 개발자라면 델파이나 VB 같은 도구는 미래가 없다는 건 최소한 15년 전에는 깨달았을 것입니다.

    스프링을 예로 드셨는데, 만일 스프링을 배우면서 최소한 의존성 주입이 왜 필요한지를 제대로 이해했다면 코틀린으로 넘어가면 Kodein도 쉽게 이해할 수 있고, C#의 DependencyInjection 익스텐션 모듈이나 파이썬의 Dependency Injector 프로젝트 등도 어렵지 않게 파악 가능합니다. DI 뿐 아니라 스프링의 MVC나 ORM도 마찬가지입니다.

    반면 그냥 학원에서 하듯이 스프링 설정은 이렇게 하는 것이고 서비스 가져오려면 어노테이션 붙이면 된다는 식으로 때우고 넘어갔다면 아마 언어가 바뀌면 모든 것이 다 새로울 것입니다.

    그리고 여기서 얻어야하는 결론은 "그러니 공부 같은 거 해봐야 소용없다"가 아니라 "당장 사용법만 수박 겉핥기로 배우지 말고 원리를 이해해야 한다"가 되어야 하는 것입니다.

    여담입니다만, 위에서 제 글에 가장 과격하게 반대하던 분들은 대부분 "언어 같은 거 별로 어려울 것도 없으니 문법 정도만 알면 다른 것도 금방 배운다" 같은 생각을 하는 부류였는데, "언어/기술이 바뀌면 적응하기 힘들다"는 주장을 하는 분이 그런 내용에 반박을 하는 것이 아니라 오히려 "기술 동향을 잘 알아야 새로운 언어에 적응할 수 있다"는 제 글을 비판을 하는 건 흥미롭습니다.

    -1
  • 해볼꽈
    5
    2021-11-15 16:45:50

    언젠가 어느 현업 30년차 강사 분 왈 "10년 나홀로 코딩한 경력 보다 1개월 제대로 배운게 더 효과적이더라."고 언급한 기억이 납니다(경험에는 개인차가 물론 있겠습니다만).


    저는 구글 같은 기업에 있어보질 못해서 고급진 로직이 어떤 것인지는 모르겠으나 ,어지간한 로직은 if, for 문 등 일반적인 구문으로도 CRUD는 다 구현이 됩니다. 그러니 fender 님 의견처럼 개발자는, 어떤 면에서는, 자신이 주로 쓰는 코딩의 범주에 안주하기 쉽다고 생각합니다. 자신이 가진 망치로 이미 모든 문제의 해결이 가능한데 또 다른 망치를 찾는 개발자는 많지 않을 것이기에 거기서 비롯되는 '우물 안 개구리화' 현상이 반드시 있을 거라는 점에서 일면 공감하고 있습니다.


    실제 경험상, 내 코드는 5~6 라인인데 어느 코딩을 봤더니, 함수 하나 사용해서 몇 글자로 코딩이 간소화 되는 경험쯤은 다들 있으실 겁니다.


    어느 도메인을 막론하고 깊이와 노련함에 반박할 논지는 없는 것 같습니다만, 시공간적인 기회 비용이 한정되어있다는 어느 분의 의견도 공감할 수밖에는 없네요.

  • 양봉
    833
    2021-11-17 11:05:03

    돈 많이 벌어오는 개발자가 최고

  • peter_lim
    1k
    2021-11-25 02:54:10
    다음부터 우리는 도구라고 하지맙시다 !ㅋㅋ
    언어의깊은 이해가 저도 필요하다고 생각합니다.
    다만 현실적으로 사회적으로나 시장성 필요에따라 선택되어지는부분이 많아지면서 그렇게 와전되고있는게 아닐까요.. ㅜㅜ
  • 컴퓨터연구소
    250
    2021-11-26 09:15:50

    이분은 이런 논쟁을 좀 좋아하시는 편인거 같더라고요.

  • 라모네기사
    203
    2021-11-29 09:32:13

    글쓴이께서 전달하고자 하는게 좋은 의도인듯은 하나, 문장을 보면 다른사람이 소중하게 생각하거나, 신념으로 가지고 있을 수도 있는 내용들을 깔아뭉게거나 간략하게 이분법해서 못난이 취급하는 기조가 항상 깔려 있는게 아쉽습니다.

  • 야근냥
    739
    2021-11-30 09:20:42

    재밌네요. 

    두 분의 내용 전부다 들을 말한 내용이 많았습니다.

    좋은 개발자란 무엇인가. 

    다시 한번 생각해볼 만한 계기였습니다.

    감사합니다.

  • fender
    24k
    2021-11-30 10:00:08 작성 2021-11-30 10:11:02 수정됨

    라모네기사 // 제 기준에서는 토론에서 생각의 차이로 존중을 해야하는 의견이 있고 그럴 가치가 없는 부류가 있습니다.

    그리고 기술 관련한 토론에서 "난 A란 걸 제대로 해본 적도 없고 관심도 없지만 그게 별 것도 아닌 건 안다" 같은 주장은 명백히 후자에 속한다고 봅니다.

    제 기준에선 그런 건 "신념"으로 일컫을 무엇이 아니라 그냥 "무지" 혹은 "오만"이라고 부를 수 있는 태도이고, 그런 걸 대단한 가치로 소중하게 생각하는 사람이 있다면, 전 적어도 개발자로서는 존중을 해야할 이유를 못찾겠습니다.

    기술 논쟁에서 "존중할 만한 다른 의견"은 위에 후하하핫님이 제시하신 반론 같은 걸 두고 말하는 거지, "프론트엔드 기술 따위 어차피 HTML/JS인데 뭐 별거있어?" 하는 부류까지 포괄하는 개념은 아니라고 봅니다.

  • 로그인을 하시면 댓글을 등록할 수 있습니다.