larcyuki
1k
2017-06-14 14:37:00.0
21
1695

알고리즘 논란에 대한 생각.


알고리즘을 알면 많은 부분 도움이 된다.(O)

알고리즘을 모르면 개발자도 아니다.(X)

알고리즘을 몰라도 다양한 API를 이용해 개발이 가능하다.(O)

알고리즘 없이도 충분히 개발 가능하니 알고리즘은 쓰잘데기 없다.(X)


 개인적으로 (O)에 있는 생각대로 하면 문제가 없다 보는 데 꼭(X)에 있는 생각대로 주장하는 사람이 있어 가끔 문제가 된다 봅니다.

 알고리즘을 알면 좋고, 몰라도 문제가 되진 않는 다 봅니다.

 다만 포지션이 달라질 뿐이겠죠.

10
0
  • 댓글 21

  • Taewoong La
    448
    2017-06-14 14:41:31.0

    +1

    0
  • 이루미이루미
    74
    2017-06-14 14:47:03.0

    제 경우엔 프로그래밍이 재밌는게 알고리즘을 푸는게 너무 재미있어요. 

    잘틀립니다. 잘못합니다. 하지만 푸는게 너무 재밌네요. 집중하고 생각하고 고뇌하는시간이. 그리고 그게 풀리면 뙇 


    알고리즘은 어떻네 저렇네 하는게 ㅠㅠ 슬프네요 ㅠㅠ 

    0
  • fender
    8k
    2017-06-14 14:49:17.0 작성 2017-06-14 14:59:10.0 수정됨

    맞는 말씀입니다. 다만 "알고리즘을 몰라도 다양한 API를 이용해 개발이 가능하다"는 자칫 제 원문 글의 의도가 곡해될 여지가 있어 부연이 필요할 것 같습니다.

    이 문제에 대한 찬반을 떠나, '원리를 알려면 알고리즘을 배워라 vs API 가져다 쓰는 걸로 충분하다'라는 식의 구도로 문제를 이해하는 분들을 꽤 자주 접하게 되어 안타까운 생각이 있습니다.

    제 글의 의도는 객체지향이나 함수형 등 패러다임이나 계층에 따라 다양한 기본과 원리가 있다는 것이지, 자바 언어를 하면 남이 만든 API나 라이브러리만 가져다 써도 충분하다는 부류의 주장이 아니었습니다.

    아마도 제 글에 동의하는 분들조차 본격적으로 객체지향 API를 설계하거나 분석한 경험이 부족한 경우가 많아서 그렇게 이해하신 듯 합니다.

    글쓴분도 그런 의도로 저 항목을 적으셨는지는 모르겠지만, 읽는 사람에 따라 그렇게 이해할 소지가 있어서 첨언을 해보았습니다.

    3
  • 마녀룰루
    74
    2017-06-14 15:05:08.0

    알고리즘 공부한 적 없는데 개발 잘 하고 있습니다.

    리커젼이란 개념없이 리커젼을 구현한 적이 있었는데, 나중에 보니 알고리즘 공부할 때 배우는 거였더군요.

    저는 웹개발에서 만큼은 추상화 및 인터페이스 설계 >>> 알고리즘 공부라고 생각합니다.


    0
  • 올빽
    187
    2017-06-14 15:27:20.0

    알고리즘 없어도 개발된다는건... 개발자가 아니었단 예기와 동일합니다.

    남이 알고리즘으로 개발한 api를 그냥 사용한것 뿐이죠..

    노동자라고 해야 맞을듯 하네요..

    0
  • 포로리잉
    417
    2017-06-14 15:30:57.0 작성 2017-06-14 15:31:15.0 수정됨

    알고리즘이 문제를 수월하게 풀려고 만들어놓은건데

    남이 만들어놓은거 쓰는것과

    자기가 직접만드는것이

    왜 개발자가 아닌거죠

    꼭 개발만 해야 개발자인가;

    개발부심..

    0
  • 협군
    1k
    2017-06-14 15:33:30.0 작성 2017-06-14 15:35:48.0 수정됨

    음.. 전에도 말했지만...

    연구소에서 말하는 개발자와 회사에서 말하는 개발자는 같은 단어이지만 다른 의미라서...

    제발 서로 싸우지 맙시다.

    회사에서 일하는 개발자는 그냥 노동자일 뿐입니다.

    취미로 연구 개발하다가 회사 들어간 노동자도 제외 합시다.

    공장에서 일하는 노동자가 연구 안한다고 뭐라 하지 맙시다. 

    그럴 이유도 없고 그럴 생각도 없습니다.

    그냥 시키는거 빠른 시간안에 복붙만 해도 잘하는 겁니다.


    추가) 노동자들은 이미 만들어진 상품을 조립 하려고 회사에서 고용한 겁니다. 새로운 상품 개발하기 위한 기술은 당장 필요하지 않습니다. 조립할만한 기술만 있으면 되요.

    4
  • 앙앙이
    1k
    2017-06-14 15:42:59.0

    C에서 c++ 태동되었고

    디자인 패턴  없는 세상에서도 디자인 패턴을 존재할 수 있게한 힘은 깊이 생각할수있는 힘이고

    자료구조 수업 목표는 그러한 힘을 기르는것에 있읍니다.

    생각의 힘을 기르는것은 자료구조가 유일하지않으며 디자인 패턴 또한  생각의 힘을 충분히 기를수 있습니다.


    주관적 생각이지만 특정 틀에 맞추어 클래스 조직하고 운영하는 디자인 패턴이나  자료 조직하고 운영하는 알고리즘이나  유사해보입니다.


    0
  • 전차토렌챠
    477
    2017-06-14 15:43:42.0

     협군


    저도 이 말씀에 공감하고 싶네요 서로 다들 가진 고충이 있는법인데...


     

    0
  • ㅇㅈㅇ
    189
    2017-06-14 15:51:16.0

    유명 알고리즘은 특정문제를 해결하는 공식적인 해법입니다.

    수학으로치면 공식같은거죠. 

    공식몰라도 문제는 풀 수 있습니다. 

    그대신 공식을 알면 빠르게 풀면서도 이미 검증되었으니 검증하는 시간도 줄일 수 있겠죠.

    공식 딸딸 외운다고 수학문제 잘푸는거 아닙니다.

    알고리즘 딸딸 외운다고 프로그래밍 잘하는거 아니고요.

    외우고 말고 쓰고 말고는 자기 맘인거죠.

    그대신 알고있으면 여러모로 이익은 있겠죠.

    응용도 할 수 있고..삽질도 줄일 수 있고.

    0
  • 현댕
    331
    2017-06-14 16:12:52.0 작성 2017-06-14 16:29:12.0 수정됨

    개인적으로 지금까지 경험에 의해 느끼기에는 


    API 처럼 플랫폼 자체를 구현하는 능력이 탁월한 분들이 계시고

    (원리를 이해하고 알고리즘을 적용하는 개발)

    API 를 가지고 어떤 구현체를 빠르게 구현 능력이 탁월한 분들도 계셨습니다.

    (이런 분들은 정말 뭔가 뚝딱뚝딱)


    예로 드는 게 적절할 지 모르겠지만 도구를 만드는 사람과 도구를 잘쓰는 사람의 차이랄까요?

    물론 둘다 잘 한다면 두말할 나위 없겠죠?


    이렇게 생각 했던 저는 일단 도구를 잘 다루는 사람이 되자라고 마음 먹고 접근해서

    지금은 도구를 이해하고 사용하자라는 취지로 성장하고 있는 거 같네요.


    어떤 방향성이든 잘못된 건 없는 거 같습니다 :)

    0
  • 겸손합시다
    200
    2017-06-14 17:08:33.0

    개인적으로 이런 토론 벌이는게 제일 생산성 없다고 생각하는 1인

    0
  • 겸손합시다
    200
    2017-06-14 17:12:15.0 작성 2017-06-14 17:13:06.0 수정됨

    왜 이거 모르면 개발자 아님 저거 알면 개발자임 이라고 함부로 판단해요? ㅋㅋㅋ 시야 좀 넓혀요 ㅋㅋㅋ

    님들이 한평생 만졌던 기술, 다른 분야에서 일하고 있는 사람은 일생동안 한번도 못만져볼수도 있는

    기술과 알고리즘입니다 ㅋㅋㅋㅋ 애초에 분야마다 기반지식의 중요도가 다 다른데;;

    0과 1의 세계에서만 노셔서 그런가 모 아님 도밖에 모르나봐요 개발자들은

    "배우면 좋은거야" 라고 말하기가 그렇게 어려웁니까? 개발부심좀 부리지마요

    0
  • jhyoon
    531
    2017-06-14 22:50:53.0

    if { 개발자다! } else { 개발자아니다! } 만 있는거 같아서 씁슬하네요.

    0
  • OrOl
    344
    2017-06-14 22:55:31.0

    jhyoon 이쪽분야 일을 하다보면 다들 좀 정확한걸? 좋아하시는것 같아요

    머리속에 0과 1밖에 없는것 같아서 슬프네요 

    0
  • fenchSoda
    30
    2017-06-15 01:33:45.0

    p=np

    0
  • fender
    8k
    2017-06-15 05:06:10.0

    그런데 바로 윗 덧글을 포함 여러차례 강조하고 지적했는데도, 심지어 제 입장에 찬성하시는 분들 조차 이번 논쟁을 '원리를 아는 개발자' 대 '응용을 잘하는 개발자'의 구도로 이해하시는 것을 보면, 무언가 이 바닥이 대단히 잘못 돌아가고 있다는 생각이 들긴 합니다.

    자바를 무시하는 비자바 개발자와 자바를 자바스럽게 사용하지 않는 자바 개발자만 남는다면 개발 언어로서 자바의 가치는 어떤 것일까요?

    물론 도메인 지식도 중요하긴 합니다만, 아무도 자바를 자바 언어적 특성에 걸맞게 사용하는 것의 의미나 중요성을 이해하지 못한다면, 설사 모든 분들이 제 입장에 찬성을 해도 이는 역설적으로 아무도 제 글의 취지에 공감하지 않는다는 이야기가 될 것 같습니다.

    전 한 번도 "자바 개발자는 원리나 기본 따위는 몰라도 응용만 잘하면 된다"와 같은 이야기를 한 적이 없으니 말입니다.

    1
  • kkey21a
    2k
    2017-06-15 08:49:07.0 작성 2017-06-15 08:51:14.0 수정됨

    개인적으로는 이런 토론을 통해서 한번쯤은 저 스스로의 생각을 정립을 할 수 있어 유익하다는 입장입니다.


    누군가 무엇이 잘못되었다고 이야기하는데, 적어도 '왜?' 그런 이야기를 하고 있을까? 이에 대해서 듣게 되고 생각할 수 있게 해주어, 자신만의 목소리를 낼 수 있게 해주닌깐요.


    PS)

    토론은 싸움과는 다르다. (O)

    싸움은 승패가 중요하다. (O)

    토론은 승패만 중요하다. (X)

    토론은 과정도 중요하다. (O)


    - 왜? 사람들은 토론을 불편하게 혹은 마치 싸움과 같이 동일시 해 볼까요?

    0
  • jja
    1k
    2017-06-15 08:58:05.0

    알고리즘을 업무에 적용할수있냐 없냐의 차이.. 특히 멱집합같은건 사골급..

    0
  • 전재형
    3k
    2017-06-15 10:01:11.0

    겸손합시다 제일 이해안되는 댓글이네요... 전후 문맥을 파악하고 이야기하시면 좋겠습니다. 굳이 다 적지 않습니다.

    0
  • exexexe
    20
    2017-06-15 14:08:02.0

    제가 Fender님의 글을 이해하기로는 


    절차지향형 언어로 개발하는 사람 들은

    공부 우선 순위를 알고리즘+자료구조를 먼저 공부하는 방식으로 하고, 

    전통적인 대학 커리큘럼 (절차지향적 특성의 전통적 방식고수)

    보통 대학에서는 이 학생이 뭐가 될지 모르므로 절차지향적 언어인 C언어와 자료구조+알고리즘을 배움

    그 이후에 C++, JAVA, C#등의 객체지향적 언어를 배우는데...언어의 특성을 이해하지 못하고,

    OOP+디자인패턴은 저 멀리 안드로메다로 향한다.


    객체지향적 언어로 개발하는 사람 들은

    공부 우선 순위를 OOP+디자인패턴을 먼저 공부하고 방식으로 하고,

    더 깊은 알고리즘이 필요할 경우 그때 학습 하는 것으로 한다.

    더 깊은 추상화와 객체지향적 패턴을 이해 할 수 있는 방식이다.


    보통의 전산과 나온분들은 위의 절차지향적으로 공부를 이미 마쳤기에...

    바로 객체 지향적 언어로 개발에 필요한 OOP+디자인패턴을 공부하면 되겠지만,


    비전공이신분들은...궂이 내가 하려고하는 분야는 객체지향적 언어를 사용하고 있는데...

    알고리즘이 먼저가 아니라, OOP+디자인패턴을 먼저 공부하는게 맞지 않느냐

    이런 이야기를 하고 싶은 것으로 생각 됩니다.


    내가 어떤 그룹에 속하는지에 따라...

    어떤 것을 먼저 공부하고 익힐 지를 생각 해보자 라는 취지의 글이 아닐까 싶은데요...

    뭐 여튼 시간은 소중하니까요....




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