프로그래머로 살아남기 위해 필요한 언어 둘

Sdílet
Vložit
  • čas přidán 12. 09. 2024
  • 세계 탑 기업과 대학에서 수많은 프로그래머를 키운 경험에 기초하여 컴퓨터 프로그래머로 살아남기 위해 필요한 언어 두 개를 정리해보았습니다.
    www.linkedin.c...
    / kimpopetv
    / realpopetv
    #프로그래밍 #기본기의중요성 #꿀팁

Komentáře • 667

  • @anju3097
    @anju3097 Před 5 lety +224

    4:00
    5:15
    8:45
    10:50 못해도 1년은 언매니지드 언어를 파는걸 추천
    11:40
    12:50 성장속도의 차이가 매우 크게 벌려진다
    14:38
    17:13 하나 이상의 언어를 깊게 파자
    17:26 그러니까 얼른 공부해 새끼야

  • @henneykim1106
    @henneykim1106 Před 6 lety +414

    4:00 부터 두 가지 나옴

    • @darkpro44
      @darkpro44 Před 5 lety +11

      말씀안해주셨으면 초반에 끌뻔했네요 ㅋㅋ 근데, 4분부터 보다가,그나마도 중간에 종료했네요 ㅋ

    • @user-ep7bi9ex1t
      @user-ep7bi9ex1t Před 5 lety +10

      역시 한국인! 감사합니다 ㅋㅋ

    • @user-tt2nx6dr3k
      @user-tt2nx6dr3k Před 5 lety +1

      감사합니다!

    • @kko_gyu
      @kko_gyu Před 5 lety +5

      제일 좋은 댓글임

    • @dmstjq92
      @dmstjq92 Před 4 lety

      정말감사합니다

  • @triump3411
    @triump3411 Před 5 lety +44

    1. 영어
    2. C/C++

  • @user-pz7iw1mt5y
    @user-pz7iw1mt5y Před 6 lety +63

    저도 매우 공감합니다. 저도 javascript로 입문을 했지만 지금은 c/c++을 공부했고 게임 개발을 지망하고 있습니다.
    사실 javascript를 사용할 때는 call by value니 call by reference니 , 일급 객체니 이런거 피상적으로 알고 넘어갔고... 메모리적인 생각은 전혀 하지 않았는데. c/c++을 공부하고 나니까 이제서야 궁금해지기 시작했고 그러한 방식이 이해가 가기 시작했습니다. 무슨 언어를 주력으로 하느냐는 별로 중요하지 않은 것 같습니다. 그러나 c/c++을 꼭 알고 메모리 수준부터 각 체계에 맞는 지식들을 섭렵하고 주력언어를 다시 다루면 새로운게 보인다고 말씀드리고 싶습니다.

  • @user-sk3dw6mw6z
    @user-sk3dw6mw6z Před 4 lety +28

    c++을 배워야 하는 또하나의 이유는, 로우단의 라이브러리는 대부분 c, c++이기 때문이죠. c#이나 자바에 c++라이브러리 추가했다가 문제 생기면, c++ 모르는 사람은 디버깅 자체가 어렵죠

  • @fany880305
    @fany880305 Před 6 lety +173

    1.managed language : java, python
    2.unmanaged language : c, c++

    • @breechoi5489
      @breechoi5489 Před 5 lety +7

      manage - memory manage

    • @seyirin
      @seyirin Před 5 lety +2

      기본적으로 자바와 c를 하죠 ㅎㅎ

    • @amadeusj2905
      @amadeusj2905 Před 5 lety +4

      @@seyirin 미래를 생가하면 python은 필수죠 ㅋㅋ

    • @seyirin
      @seyirin Před 5 lety +10

      미래를 생각하면 코틀린과 스위프트 자바스크립트죠 ㄷㄷ

    • @user-zm1mr2fn7m
      @user-zm1mr2fn7m Před 5 lety

      왜 C#은 없?

  • @kimrainman
    @kimrainman Před 5 lety +117

    일하면서 아침에 지하철에 공부하고. 집에 와서 밥먹구 운동하구 공부하고. 코딩 남은 작업 있으면 잔업하고. 공부 한 시간하고. 잠자고. 무한 반복의 삶이 지루할때도 있고 외로울 때도 있지만 재밌습니다.

  • @100busan
    @100busan Před 5 lety +29

    요즘 코딩의 재미에 빠져 살고 있는 40대중반의 가장입니다.
    코딩이 뭐가 뭔지도 모르고 하고있습니다. 간단한 함수를 만들어서 값이 나오면 신기해 합니다.
    하지만 "어떻게 컴퓨터가 함수를 이해하고 계산하지?" 라는 근본적인 의문이 들더군요.
    어릴적 '자판기 안에 사람이 커피를 타서 주나?' 라고 생각한것처럼
    지금은 컴퓨터 안에 소인국 나라 국민들이 계산해서 값을 주는건 아닌지 상상을 해봅니다.
    컴퓨터라는 하드웨어 위에서 결국 소프트웨어가 돌아갑니다.
    포프님의 경주차 드라이버는 차 엔진의 이해가 필수라는 말에 공감합니다.
    c언어도 시작해봐야 겠습니다.

    • @이름-y3p
      @이름-y3p Před 4 lety

      근데 사실 C언어를 배운다고 해서 컴퓨터구조에 대한 이해가 높아지지는 않는 것 같아요. C언어를 쓰는게 문제가 아니라 하드웨어를 직접적으로 제어하는 코딩을 해야되는데 그런 코딩을 보통 c언어로 많이하죠.

    • @ry840901
      @ry840901 Před 4 lety

      아.. 그런 식이라면 어셈블리 추천드리구요. 논리회로 같은거 좀 보시면 컴퓨터를 머리속으로 만드실 수 있을거 같은데요? 예를 들면 전기회로에서 직렬은 AND, 병렬은 OR인데 이걸 기반으로 해서 온갖 함수들을 만들어내거든요.

  • @iliillliili6401
    @iliillliili6401 Před 6 lety +96

    C언어, 자바...이렇게 두개 일단 깔고 시작하면 좋음.
    C언어는.메모리나 포인터 개념을 배우고
    자바는 클래스나 디자인패턴 커다란프로젝트 개발론을 배움

    • @user-rc6fj1dc1k
      @user-rc6fj1dc1k Před 4 lety +5

      개인적으로 자바를 극히 혐오하긴 하는데 거기서 사용되는 디자인 패턴 철학이나 유지 보수가 쉬운 코드 작성은 배울 점이 많다고 생각함. 그거의 정수가 현재 스프링이고

    • @junyongpark137
      @junyongpark137 Před 3 lety

      자바 대신 코틀린을 배워도 될까요? 파이썬은 어느정도 하는데..

    • @user-iv2ox2bc1z
      @user-iv2ox2bc1z Před 3 lety

      @@junyongpark137 자바 ㄱ 자료찾기 더 편함

  • @iwasborntosurvive5396
    @iwasborntosurvive5396 Před 4 lety +8

    씨 언어같은 언매니지드 언어를 해야하는 이유 -> 날 것 그대로의 언어를 이해하는 사람이야 말로 본질적인 프로그램을 설계할 수 있기에 언매니지드를 알아야 한다

  • @부글부글차주전자-f5r

    밥 먹을때 숟가락 가지고 먹던 젓가락 갖고 먹던 포크로 먹던~ 밥을 먹을 수 있는건 같지만 먹기 편한걸 골라서 먹는게 편하다~ 언어도 마찬가지라 봐요~ 취업용 언어 나에게 맞지 않은 언어 배우겠다 머리 아파 말고 내가 관심 있는거 부터 시작 하는게 좋습니다~ 그러다 보면 나중에 로우레벨쪽에도 관심을 갖게 됩니다~

  • @-_-_-7
    @-_-_-7 Před 6 lety +48

    내부 동작원리의 이해를 통해서 플랫폼을 배우고 그것을 통해 프로그래밍 능력을 키우라는 말씀이라고 개인적으로 생각합니다. 강의 잘들었습니다

  • @dhk5232
    @dhk5232 Před 5 lety +35

    아주 중요한 이야기 입니다... 20년 경력자이자... 관련 분야 기업가로써...

  • @sean2011hong
    @sean2011hong Před 6 lety +30

    저희 학교 교수님이 포프님의 이 영상 알려주셔서 보게되었습니다. 다행이도 저희 학교는 C C++ 강좌가 되어있어서 나름 위안?을 얻고 가는거 같아요. 혼자서도 더 열심히 공부하기 위한 동기부여도 됐고, 여튼 좋은 영상 감사합니다

    • @포프티비
      @포프티비  Před 6 lety +17

      좋은 학교네요.. 포프티비도 알려주고.. (응?)

    • @ho1891
      @ho1891 Před 5 lety

      1년 된 영상 댓글까지도 신경써주는 포프님의 인성 bb

    • @aveemo0395
      @aveemo0395 Před 4 lety

      @@포프티비 멋쩍.. 헿

    • @user-dx1re8dl9m
      @user-dx1re8dl9m Před 3 lety

      빞ㅂ7ㅣㅣ7ㅣㄱㅂㄱ비비ㄱㅂㄱ피ㅂㄱ7ㅣ비ㅣ빅ㄱ빕ㄱㄱ비ㄱㅍㅍㄱㅂㅂ비빅비ㅍㄱㅂㄱㅣ비ㄱㅂㄱ비빅1ㅂㄱㅣㅂㄱㅂㄱ비ㅣㅍㅋㅂㄱ핍ㅂㅂㄱㅣㄱ7ㅣㅣ비기비빅ㅍ기빕ㄱㅂㄱ피빅빅삑ㅍㅣㅣ7ㄱ비ㄱㅂㅣㄱ빕ㅍㄱㅂㄱ비ㅣㅂ7ㅣㄱ비빅ㅂㄱ비ㅣㄱㅂㅋㄱㅂㄱㅃㄱ삐핖ㄱㅂ비빕ㄱㅍㄱㅂㄱ빕ㅂ비ㅣㅣㅣㅣ빅빅비비 7ㅣㅂ4비ㅣㅣㅣ빅빅비ㅣㄱㅂ4ㅣ비4ㅣ비4ㅂ

  • @KimCholmin
    @KimCholmin Před 5 lety +9

    백번 옳은 말씀들이네요. C++ 모르고 자바만 배운 사람들은 솔직히 자바도 제대로 못합니다. 파라미터 던져서 처리할 것도 부담스러워하죠.. 리턴 받아와야 되는 거 아니냐 따집니다.. 프로그래머가 쉬운 직업이 아닌데 쉽다고 뜬소문이 퍼져서 그것만 믿고 막 덤비지는 마시고..

  • @zerobug0
    @zerobug0 Před 4 lety +5

    좋은 내용 잘 봤습니다.
    대학때 경엉전공이었고, 전산, 컴공의 수업을 들으며 C, 포트란, 자바 등등을 배웠고
    현재는 데이터베이스 관리업무를 하고 있는데
    메모리에 대한 이해가 없으면 데이터베이스의 작동원리 뿐 아니라, 대부분의 컴퓨터와 관련된 작동원리를 쉽게 이해하기 어렵다고 봅니다.

  • @zey2012
    @zey2012 Před 4 lety +12

    c 하고 c++ 배우고 java 배웠는데 java 자체가 앞에 두 언어 영향을 많이 받아서 그래도 비슷해서 배우기 편했던거같에요

  • @atlantiscolors4491
    @atlantiscolors4491 Před 5 lety +2

    동감!!!, 개인적으로 순서를 정한다면 unmanaged 먼져 (자료구조가 핵심), 그다음 managed. 그리고, 하나더 하자면 영어, 인터넷이 없으면 개발을 못하는 세상에서 빠른 정보습득을 위해 영어는 필수. 만약 회화까지 가능하면 전세계에 resume 를 낼 수 있으니 조금이라도 시간이 있는 젊은 분들은 unmanged 와 영어에 투자하면 큰 후회가 없다고 생각합니다.

  • @홍은기-d3x
    @홍은기-d3x Před 5 lety +51

    제가 08학번이니 이제 딱 10년전 이야기네요지방대 다니긴 했는데 대학교 1학년때 항상 나이 제일많고 입김 센 교수님 두분이서 C랑 C++ 무조건 그 강의 안들으면 내꺼 수강할 생각 말아라 해서 참 트렌드 모르는 구식 사람들이다 생각했는데 그 교수님들 은퇴하기전 그 어거지로 C/C++ 세대들까지가 참 취업 잘했었어요. 네이버랑 하이닉스 삼성 LG간사람도 있고 적어도 최저임금 받으면서 코딩하는 사람은 없었죠. 물론 지방대라 아싸리 컴퓨터쪽이랑 떨어져서 사는 사람이 절반은 넘지만, 어떻게든 붙잡은 사람들은 계속 잘 살아요.그땐 왜 컴파일러까지 씹어먹어야 되는건지, 왜 도대체 내가 야크랑 싸워야 되는건지,왜 Memset 했다가 메모리 터지는거에 내가 열불을 내야되는지 Destroy 설정하면 어디는 알아서 되던데사실 그시절부터 안드로이드가 이미 혜성같이 나타난 시절이, 사실 저는 3학년때까진 두분중 한분의 연구실에 있다가, 4학년때 저거 돈 안된다고 혼자 안드로이드 하겠다고 요즘말로 빤쓰런? 했었죠. 배울거 다 배웠고 더 볼거없다고 생각했습니다.오만했죠.저 졸업하던 시기에 두분 은퇴하고 2012년경부터 학교에서 나서 신나서 자바/C#만 되고 돈되는것부터 가르켰는데 어느날부터인가 취업율도 급감하더라고요. 그냥 대학교도 졸업장 따러 다니는곳이 됬고 컴공학과가 저희학교의 나름 자존심이었는데 지잡에 걸맞는 수준(?)으로 떨어지게 되니 보기 좀 안좋더군요JAVA, C#을 매도하는게 절대 아닙니다. 그만큼 잘 만들어진 언어이니 누구나 사용하기 편하고 좋은 결과물을 낼수있죠. 예를들면 포토샵 냅두고 그림판으로 디자인작업할 이유가 전혀 없잖아요. (사실 그림판은 너무 기초만 있기에 C의 비유는 좀 그렇지만, 차이의 갭을 설명하기엔 이게 적절합니다.)하지만 그림이 걸작이 나온다고 포토샵만 쓰면 뭐합니까. 나중에 포토샵쓰시는분이 픽셀에 대해 전혀 모르면 언젠가 한번 부닥칠때가 옵니다. 그걸 알고넘어가냐 모르고 아 이렇게 땜빵하자 차이는 커집니다.사실 저는 잘하는 축은 아닙니다. 연구실다니다가 빤쓰런 했었어요. 그래서 사실 지금하는일에 예전에 배웠던걸 응용도 거의 못하고, 나중엔 그저그런 사람이 되다가 치킨만 튀기겠죠. 이런 평을 내릴만한 사람은 아닙니다.하지만 저같은 사람들도 하다보면 아 이부분에서는 이렇게 하는게 더 이거는 비효율인데.... 라는 생각정도는 떠오릅니다. 한발은 더 가요. 그리고 그게 일반 동기랑 조금의 연봉차이는 나게 하더라고요.그 쇠심줄같은 고집의 방망이 깎던 노인들같던 그 교수님들에게 지금은 다시한번 제대로 배우고 싶습니다.

    • @Dkzhfmeow
      @Dkzhfmeow Před 5 lety +5

      그게 아니고 원래 그땐 취업률이 좋았어요. 지방대도 노력좀하면 대기업가고 그랬어요 그땐. 교수가 안바뀌었어도 지금은 좋은데 가기 힘듭니다. 딱히 가르치는 교수의 차이가 아닙니다.

    • @방구머겅
      @방구머겅 Před 5 lety +2

      글쎄요

  • @ringo8530
    @ringo8530 Před 6 lety +56

    14:43 이 부분 ㄹㅇ

  • @einp6333
    @einp6333 Před 3 lety +5

    절차지향인 c를 배우고 나서 객체지향인 c++를 공부하니 너무 편했고 unmanaged 언어인 c++를 배우고 나서 managed 언어인 자바를 공부하니깐 너무 편해요.
    가비지 컬렉션하고 레퍼런스 카운트도 개념도 이해하기 빠름

  • @dejavu_4546
    @dejavu_4546 Před 6 lety +224

    저는 중하위권 대학에 다니지만 공대가 참 심각합니다.
    20년 전에 머물러 있는 강의자료와. 그 마저도 최악의 강의력으로
    족보와, 원래 잘하는 학생들, 몇몇 빼고는 4년동안 학원 속성 1년 보다 못한 지식을 배워갑니다.
    교수님들은 학생 가르치는 일엔 관심이 없지요.
    워낙 바쁘시기도하고, 자신의 지식의 양이 강의력을 담보하는 것은 아니니까요.
    초기 프로그래밍 랭귀지는 그럭저럭 다들해도 3,4학년 심화과정은 더하지요.
    저는 차라리 학원강사가 가르치거나
    포프선생님의 인강을 듣고 시험봤으면 좋겠습니다.
    다가오는 이때에 현재 시스템의 대학은 확실히 개정되야 한다고 생각합니다.

    • @포프티비
      @포프티비  Před 6 lety +36

      +deja vu _ 초특급학교 아니곤 비슷한 현상이 있는거 같아요. 그만큼 학교의 목적이 많이 변해서 겠죠. 씨뿔뿔 연말주터 계획 들어갑니다 :)

    • @jej4042
      @jej4042 Před 6 lety +5

      맞아요. 이런 학교를 다니면 혼자 스스로 해야된다는...

    • @rayerDalam
      @rayerDalam Před 6 lety +6

      공감이가서 슬프네요

    • @user-cu2nm4ud4t
      @user-cu2nm4ud4t Před 6 lety +3

      포프TV 안녕하세요. C++ 연말부터 계획 들어간다는 말씀을 하셨는데요. 무슨 계획이 있으신거예요??

    • @shushumong7788
      @shushumong7788 Před 6 lety

      월레가 아니고 원래

  • @jk-vn5nh
    @jk-vn5nh Před 6 lety +6

    프로그래머로서 기초와 근원을 깊이 튼튼히 다지려면 unmanaged를 깊이 공부해야하고, 몇몇사용자가아닌 광범위한다수도 좀더쉽게 사용할수있는 프로그래밍을 이해하기 위해서 managed를 알 필요가 있는것이군요. 이제 막 c언어 공부를 시작했는데 포프님 말씀덕분에 동기부여와 와닿는 필요성을 얻고 갑니다 감사합니다

  • @SJYoon29
    @SJYoon29 Před 6 lety +7

    전적으로 동의합니다. 현재는 C sharp 을 주로 개발하는데 영상쪽을 전공하다보니 unsafe한 데이터를 많이 다룹니다. C를 충분히 해본 사람과 아닌 사람의 메모리에대한 이해는 꽤나 크게 차이나더군요. 다행히도 저는 전자과임에도 C, C++를 주로 다뤘고, 펌웨어단 공부하면서 어셈블리도 조금 알고 있습니다. 항상 많은 것을 배워갑니다.

  • @김김-e2l
    @김김-e2l Před 6 lety +12

    두가지 언어 (c/c++) (c# or Java) 여기에 파이썬이나 자바스크립트같은 빠르게 코딩 and 컴파일 수 있는 스크립트 언어 하나 더 배워도 좋을거 같아요.

  • @WaitingForStorm
    @WaitingForStorm Před 4 lety +5

    1-2년 전에 이 영상을보고나서 학과 커리큘럼보고 대학을 정했었는데 아직 시작이지만 덕분에 방향을 잘잡은 것 같습니다

  • @KS-eh5yy
    @KS-eh5yy Před 5 lety +4

    네 동의합니다. 다만 unmanaged언어에 너무 빠지지않고 현재 흐르는 페러다임을 놓치지않고 잘 따라간다면 완벽한 개발자라할 수 있겠네요. 요즘은 예전과 달리 미래에 대한 불확실성과 성장속도가 기하급수적으로 빨라져 너무 하나에 꽂혀 살게된다면 나중에 세상이 변했을때 대응하기 힘들것 같습니다.

  • @Onulharu
    @Onulharu Před 5 lety +29

    포프 TV를 본게 어언 5년이 넘어가네요.
    갓 졸업해서 구독해서 벌써 5년차 개발자가 되어가는데요.
    항상 길라잡이 역할을 해주셔서 감사합니다.
    저도 전공은 임베디드 쪽이어서 하드웨어와 소프트웨어를 같이 배웠던게
    많은 도움이 되고 있습니다.

    • @포프티비
      @포프티비  Před 5 lety +1

      5년간 꾸준히 봐주셔서 제가 더 고맙습니다. :)

  • @younglaebae9283
    @younglaebae9283 Před 2 lety +4

    나하고 똑같은 말을 하는 분이 있군요, 저도 자바나 웹 따위만 하자는 교수들하고 많이 싸웠습니다. 문자열 변수가 진짜 변수라고 진짜 생각하는 그분들은 하드웨어가 좋아져서 C C++같은건 필요없다고 단체로 덤벼들어 참 난감했지요 ㅎㅎ

  • @tj671
    @tj671 Před 5 lety +8

    진짜 programming language를 공부하고 싶다면 C -> C++ 순서로 공부하세요. language와 컴퓨터 구조 동시에 공부가 됩니다. java, c#, python은 language가 아니고 사실상 스크립트라고 보는게 맞습니다. C/C++만 잘 이해하면 나머지 언어들은 최대 일주일이면 다 이해할 수 있습니다.

    • @ppap6676
      @ppap6676 Před 5 lety +2

      정말 그친구들은 스크립트라고 보는게 맞긴하죠 ㅋㅋ 저순서대로 배우면 나머지 일주일이면 이해는 가능하지만 C 에서 포기할가능성이 높긴합니다 워낙 어려워서

    • @yjisang9352
      @yjisang9352 Před 5 lety +1

      그렇게 해봐야겠네요!!

    • @NHKimNamo
      @NHKimNamo Před 5 lety

      진짜 프로그래밍 언어가 있고 가짜 프로그래밍 언어가 있는지 모르겠군요.

  • @박헌남
    @박헌남 Před rokem +3

    C#으로 포인터와 참조에 대해서 이해하게 되고 JS로 App설계를 배우게 된 이후로는 C와 C++를 처음 배웠을 때와 다르게 모든 개념이 쉬워졌고 CPU와 RAM이 제 머릿속에 얹혀진 느낌을 받게 되었습니다. 이때부터 컴퓨팅에 대해 이론적 추상화가 가능해졌고 마치 모든 코드를 부처님 손바닥 위에서 보는 뜻한 느낌을 받게 되었습니다. 이 과정이 속이 뒤틀리고 머리가 뜨거웠지만 지나가고 보니 모든 코딩이 쉬워지고 재밌어지게 되었습니다. 그리고 지금은 아키텍처에 가장 많은 관심이 가고 모든 언어나 코드는 아키텍처가 전부란 생각이 듭니다.

  • @BrianCho7
    @BrianCho7 Před 5 lety +4

    오랜 경험으로 알게된 것 중 하나. 어떤 프로그래밍 언어를 아는가가 중요하지 않다. 수많은 과제를 하면서 깨닫게 된 것임. 말을 논리적으로 잘하는 사람이 프로그래밍도 잘한다. 왜냐고? 결국 실제 언어나 프로그래밍 언어나 논리를 표현하는 방법의 차일뿐이더라. 글을 잘 쓰거나 말을 논리적으로 잘하는 사람이 프로그래밍도 잘한다. 말 많고 많이 안다고 시끄러운 사람의 코딩을 보면 그 사람의 사고가 얼마나 엉망인지 알겠더라는....

  • @lymlee3113
    @lymlee3113 Před 4 lety +6

    언어도 언어지만.. 그 외에 중간중간에 공감가는게 너무 많네요.. 특히 13분쯤 성장속도 얘기..ㄷㄷㄷ

    • @user-hi4yn6hh5j
      @user-hi4yn6hh5j Před 4 lety

      논리 적인생각>수학 >영어 >알고리즘 >노력 >천재 >여자 >남자

  • @user-kw6br7qh9l
    @user-kw6br7qh9l Před 6 lety +8

    영상 항상 잘보고 있습니다.
    비전공에 이십대중반에 접어들면서 프로그래밍에 관심을가져서 지금이나마 열심히 공부중인 1인입니다ㅎㅎ..
    공부하다가 가끔 멘붕오면 포프님 영상보러온다는 - -
    생각정리.. 또는 정신적지주가 되어 줄때도 있엇네요
    늘 좋은 영상 감사합니다.^^/

  • @seongxwoo
    @seongxwoo Před 6 lety +5

    unmanaged language를 알아야 한다는 점에는 정말 공감합니다.
    Heap이나 Call stack을 있다고만 알고 정확히 어떻게 동작하는지 모르는 있는 사람들이 몇몇 있더군요.
    value type의 variable은 함수를 벗어나면 사라진다던가 재귀함수를 계속 부르면 스택오버플로우가 난다던가 진짜 제 생각으로는 상식이라 생각했던 사실을 모르는 사람들을 종종 많이 봤습니다.

    • @JongDeu
      @JongDeu Před 6 lety

      앵? 진짜요? 전 독학으로 C를 공부하다 보니까 이런 것들은 당연히 배우는 줄 알았는데..
      모르는 사람이 있다는게 신기하군요..

  • @elecricecooker
    @elecricecooker Před 3 lety +1

    소프트웨어쪽으로 마음을 잡고 있는 전자과 학생입니다. 이렇게 좋은 채널을 너무 늦게 알게되어 아쉽네요. 좋은 영상 감사하고 아직까지도 댓글 피드백 주시는 것을 보니 더욱 신뢰가 갑니다(물론 포프님의 커리어만 해도 의심할 여지는 없지만요). 발음이 또랑또랑하셔서 공부 틈틈히 라디오처럼 틀고 듣습니다. 항상 감사해요

  • @yeonie8889
    @yeonie8889 Před 4 lety +4

    프로그래머로 진지하게 나갈 거면 C/C++ 베이스가 좋긴 한 것 같아요.
    전 cs 전공했는데 학부 때 메인 언어는 c 로 4년 + java로 oop 개념 1-2년 같이 배우고 c++로 석사 2년 했어요.(지금은 아닌데 당시에는 oop 너무 싫어서 c++보다 c를 더 선호했죠ㅋ) 근데 cs에서는 비주얼적인 걸 하나도 안 배우니까 너무 재미가 없었어요. 몇 시간 코딩했는데 고작 터미널 창이나 텍스트 파일로 결과물 보는 게 너무 demotivating 한 거에요ㅋ
    항상 비주얼적인 것에 대한 굶주림이 있다가 석사 졸업 후 취업을 했는데 그 때 막 UX라는 개념이 떠오르던 시기라 회사 내에서 UX 부서에서 일할 사람들을 모집했어요. 뭔가 비주얼적인 걸 할 수 있을 것 같아 거기 지원했는데 운좋게 붙었어요. 그래서 UX 디자이너로 거의 8년을 일했죠. 코딩 완전 손놓고. 그러다 해외 유학 나왔는데 학교가 디자인이랑 코딩을 같이 가르치는 곳이라 코딩 수업 수준이 딱 수박 겉햝기로 트렌디한 툴과 기술들 엄청 많이 가르쳐주는 식이었어요. 그래도 비주얼적인 거 코딩하니까 그제서야 코딩이 재미있더라구요.
    cs 졸업한지 너무 오래돼서 다 까먹었을 줄 알았는데 그래도 다시 하니까 꽤 기억 나더라고요. 자료구조나 알고리즘 시간에 왜 배우는지도 모르고 배웠던 것들이 진짜 실용적인 상황에 적용할 일이 생기니까 아 이래서 그런 개념이 필요하구나 이해가 돼서 넘 짜릿했어요. 포인터 개념도 신기하게 아직까지 기억하고 있어서 자바스크립트 디버깅 할 때 아 클래스 이거 뒤에서 포인터처럼 돌아가는구나 이해하고 고치기도 하고 그랬어요.
    그리고 c언어를 베이스로 해놔서 그런지 다른 언어 배울 때는 웬만하면 다 쉽게 느껴진다는 장점도 있어요ㅎㅎ 포인터 따로 안써줘도 돼? 어레이 크기 미리 지정 안해줘도 돼? 동적 메모리 할당 같은 거 안해줘도 돼? 개꿀. 이런 느낌? ㅋㅋㅋ

    • @SeongYoonHuh
      @SeongYoonHuh Před rokem +1

      일차적으로 포프님의 영상을 보고 많은것을 느끼지만, 댓글들을 보면서 다른분들의 생각과 견해, 경험을 볼 수 있어서 많이 참고하는편입니다.
      @yeonie8889님이 이야기가 나만 그렇게 느꼈던게 아니구나하는 생각과,
      몇시간 고민 끝에 콘솔로 결과를 나타내면 항상 문제는 해결해서 뿌듯함은 있어도 크게 동기부여가 안된 스스로를 보며 내가 추구하는게 뭔지를 항상 갈팡질팡했는데 이 글을 보면서 조금은 답답했던 것을 해소하게 되지 않나 싶습니다.
      좋은 경험 들려주셔서, 공유해주셔서 감사드립니다. 해와 같이 빛나는 하루 되세요 :)

  • @roem21ful
    @roem21ful Před 4 lety +7

    C언어는 먼저 꼭 배우고 자바를 하든 스위프트를 하든 웹 쪽으로가든 하세요. C언어 마스터까지 바라는 건 아님. 스터디만 하세요. 그럼 다른 언어는 쉽게? 이해하고 사용할수 있어요.

    • @larayun1247
      @larayun1247 Před 4 lety

      안녕하세요, 지나가던 비전공자 입니다. 이제 입문을 해보려고 검색하다가 이 영상을 보게 되었고, 댓글을 보다가 궁금한 점이 있어서 글을 남겨요.
      저는 swift를 배우고 싶어서 찾아보는 중인데, 아무 기반도 없이 배우려니 막막합니다. 그런데 C를 먼저 배우라고 하시니, 바로 swift를 배우면 안되는 것인가 의문이 생깁니다. 입문자가 바로 뛰어들어 공부하면 안되는 부분인가요 ㅠㅠ 정말 몰라서 질문 남겨요...

    • @clairejgj8393
      @clairejgj8393 Před 4 lety

      안녕하세요! 현재 컴공 학부생인데 일단 자료구조는 씨쁠로 배웠는데 알고리즘은 자바로 배울지 씨쁠로 배울지 고민중입니다. 혹시 씨쁠로 알고리즘 배우는게 날까요?? 감사합니다!

    • @roem21ful
      @roem21ful Před 4 lety

      @@clairejgj8393 어디까지나 제가 그동안 업무에 관련된 이야기 입니다만 c 를 먼저 어느정도 사이즈가 되는 프로젝트를 한번 해보세요. 어느정도 레벨이 올라가면 c++, java, python 등등등 어렵지 않게 쉽게 넘어갈수 있을꺼에요.

  • @이름-y3p
    @이름-y3p Před 4 lety +9

    C언어로 임베디드 업무를 하다가 파이썬을 배우니까
    파이썬이라는 언어자체보다 파이썬 프로그램을 어떻게 만들었을까가 궁금해지더군요.
    예를 들면 리스트 자료형을 링크드리스트 처럼 쓸수있던데 밑단에서 이거 구현하는 코드 어떻게 짜놨을까 라든지..

  • @usi323wofjlj
    @usi323wofjlj Před 3 lety +3

    제가 다녔던 학교도 저번에 보니까 1학년부터 시작하는 기초프로그래밍 교과목과 객체 지향 등의 교과목에서 C,C++을 빼버리고 자바로 교체했습니다. 아는 후배는 C,C++언어를 배우고 군대 다녀왔더니 모든 커리큘럼 자바와 파이썬 중신으로 바뀌어 있어서 복학 첫학기부터 고생했다고 제게 말해줬던 기억이 있네요. 처음 프로그래밍을 접하는 신입생들에게 C나 C++은 너무 어렵게 느껴져 포기하는 애들이 많아졌다며 커리큘럼을 말씀하신 manged 언어로 바꾸는 학교들이 늘고 있는데 개인적으로는 정말 아쉽습니다...

  • @seongxwoo
    @seongxwoo Před 6 lety +4

    이 비디오와 전 비디오를 보고 나서 든 생각인데 프로그래밍을 전혀 모르는 사람이 프로그래밍을 시작할 때 입문 언어로는 managed language를 사용하는 것이 좋을까요?
    저는 C로 시작을 했고 그래서 unmanaged language로 입문해야 메모리에 대한 이해도가 높고 managed language로 시작하고 나면 나중에 unmanaged langage를 배우기 어렵기 때문에 입문은 C로 하자파였습니다.
    그런데 최근 들어 입문자가 굳이 메모리에 대한 이해까지 해가며 프로그래밍을 배워야 하는지 의문이 들더라고요.
    단순한 예로 scanf 함수는 인자 앞에 &를 붙이는 이유라던가 굳이 처음 배우는데 이걸 알아야 할까 생각이 많이 들었습니다.
    포프님이 C# 으로 입문서를 쓰신 것 보면 후자가 맞다는 생각이 들기도 하지만 이렇게 managed language로 입문하고 나서 나중에 영상에서 말씀하신 것처럼 1년동안 unmanaged language를 배울때 엄청 어려워 하지 않을까 우려가 됩니다.
    포프님 생각은 어떠신지 궁금합니다.

    • @clarte2369
      @clarte2369 Před 6 lety +2

      그러게요... 저 c 입문한지 얼마안됫는데 scanf함수 몇진수 &d 이런거 너무 헷갈려서

    • @포프티비
      @포프티비  Před 6 lety

      +Kyle John 입문책은 말그대로 프로그래밍의 맛뵈기만 보여주는거라 생각합니다. 따라서 매니지드가 당연히 좋지만 그 매니지드 언어를 깊게 가르칠 필요도 없다는기 제 생각이죠. 입문을 했는데 재미가 없다면 관두고 재미가 있다면 오히려 언매니지드로 새시작(?)하는게 더 낫다는 생각입니다

    • @user-ln7ov4ji9v
      @user-ln7ov4ji9v Před 6 lety

      포프께 여쭤본 질문에 답을 달아 죄송합니다만...저도 이 문제로 많이 고민했던 부분입니다..주제와 좀 벗어나는 답변일지 모르겠지만... 결국 문제는 딱 2개 더라구요...1. 입문자가 정말로 흥미와 탐구열을 가지고 열정적으로 프로그래밍을 배우고 있는가?2. 교육자가 입문자의 수준에 맞게 입문자가 받아들일 수 있을 만큼 눈 높이를 맞춰서 가르치고 있는가?1번의 경우는 입문자의 자질이 어느정도 수준 이상만 되면 별 문제는 없는데...2번의 경우는 교육자가 얼마나 고민하고 다양한 관점에서 어떻게 설명할지 생각하고 정리해 놓지 않으면 정말 답이 없는 교육이 많지요... 결국 컴퓨터가 어떻게 동작하는지 로우레벨 수준에서 이해하고 또 가르치기 위해 unmanaged 를 가르치는게 맞지 않나 싶네요. 문제는 대부분의 학교에서 컴퓨터가 어떻게 동작하는지를 알아가기 위해 unmanaged를 가르치는게 아니라 그냥 unmanaged 문법만 가르쳐서 문제가 되는게 아닐까 싶습니다.. 이야기하다보니 많이 옆으로 빠졌네요 ㅈㅅㅈㅅ

    • @user-kx2ed5xf1c
      @user-kx2ed5xf1c Před 5 lety +1

      흔히 초등학교에서도 코딩교육을 하고있죠.
      알고리즘에 대한 기초적인 교육을 위해 시행하고있습니다.
      그 아이들에게는 그저 성적을 평가하기위한 수단의 하나로 작용하기에 하드웨어단에서 어떤 연산이 일어나는지, 메모리제어는 어떻게 하는지가 중요하지 않겠죠.
      그런 맥락으로 보면 알고리즘을 쉽게 교육할 수 있는 매니지드언어가 좋습니다.
      하지만 컴퓨터공학을 전공으로하는 사람으로서는 언매니지드 언어를 먼저 익히는게 맞다고 생각합니다.
      '첫인상' 이라고 하죠. 인간에게는 이런게 있어서 처음에 어떻게 생각했는지가 나중에 하는 생각까지 영향을 미칩니다.
      처음에 하드웨어 연산에 대해 생각을 하게되면 나중의 언어를 배우면서도 '하드웨어에서는 이게 어떻게 동작하지?'를 나도모르게 생각하고 있습니다.
      주입식 교육의 무서운점도 바로 이와마찬가지라고 생각합니다.
      단순히 공식을 암기하고 풀기때문에 이 공식이 어떻게 유도되었는지 궁금해 하질 않아하죠. 조금만 모르는 내용이 첨가되면 바로 넉다운.

  • @thouxcv
    @thouxcv Před 5 lety +1

    C++이나 C#이나 결국 컴파일되어서 컴퓨터 언어로 변환 되는거니깐. C#으로 코딩하다가 메모리관리는 C++로 따로 관리하게 코딩이 가능한가요?
    마치 한국어와 일본어를 같이 쓰는 느낌으로 되는건가요? 아니면
    C#에서 메모리 관리를 위해 C#만으로 C++의 노하우를 사용하여 메모리를 관리 하나요?
    제가 코딩 입문을 C#으로 하려고 많이 조사해보는데 포프님의 영상에서
    입문, 교육방법, 책 등등 도움이 되는 팁들을 조사해보다가
    갑자기 든 생각입니다.
    요약 : C#과 C++의 코딩이 혼재된 프로그램이 가능한가요?

    • @NHKimNamo
      @NHKimNamo Před 5 lety

      이승기 가능합니다. C#을 managed language라고 하지만 라이브러리를 보면 많은 부분이 unmanaged 부분을 내부적으로 호출을 하고 있습니다. (마샬링) 가령 C로 구현되어 있는 시스템콜(Windows API)를 CLR로 추상화 해놓았다고 볼 수 있습니다.
      다만 직접 리소스를 관리 해주지 않으면 메모리 릭 같은 것이 발생할 가능성이 있으므로 주의해서 코드를 작성해야 합니다.

  • @ji-d
    @ji-d Před 6 lety +19

    진짜 선배로서의 조언임 이거 정말 좋은 영상임 님들 꼭 새겨두세요ㅠㅠ

    • @포프티비
      @포프티비  Před 6 lety +7

      감사합니다. 저도 진심어린 마음에서 하는건데 은근 기득권 층에서 맘에 안들어하는 사람들이 있더라구요

  • @youngminchung540
    @youngminchung540 Před 4 lety +1

    Unmanaged로 시작해서 지금 Managed를 즐겨쓰고 있는 졸업반 학생입니다. 현업에 나가야 하니 초심에 대하여 생각해보는 찰나, 때 마침 유투브가 1년 전에 봤던 본 영상을 다시 보여주며 뭐가 중요한지 알려주시네요. 다시 한 번 잘 보고 갑니다. 꾸벅.

  • @user-mo9ff2iu3p
    @user-mo9ff2iu3p Před 4 lety +2

    공감합니다 저는 무작정 c, c++부터 시작했었는데 어느정도 프로그램도 만들고 했는데 뭔가 작업을 하는 시간보다 눈에 보이는 결과물은 항상 보잘것 없어보여서 다른 프로그램은 어떻게 만드는것일까 궁금하더라구요 그리고 지긋지긋한 메모리 관리도 자동으로 할 수 있게끔 c로 구현해보고 싶었고 그래서 다른 언어들은 어떻게 할까 궁금해서 찾아보다가 자바나 파이썬을 입문하게 되고 사용해보면서 이렇게 편리하다고? 그때는 c++에서 stl 사용해보고 정말 편하다고 생각했던 시점이라 저한테는 다른언어가 주는 장점이 엄청나게 신선했었죠 그러면서 점점 견문이 넓어지더군요 근데 c를 이해한 상태에서 다른언어를 바라 보니깐 다 쉬워보이더라구요 물론 알고리즘부분이 아닌 외적인 부분 그래서 한언어만으로는 절대로 뭔가 할 수 없다는 생각이 들더라구요 그래서 자연스럽게 웹쪽 html이나 css 자바스크립트까지 그쪽도 관심이 생기고 하게되었고 자료를 저장하고 검색하는 효율적인 데이타베이스 설계도 관심이 가게되고 그래서 젤 중요한건 low 레벨에서 놀 수 있어야 된다는것 다만 c++ c 로 시작하는건 좀 생각해봐야될듯 제가 머리가 안좋아서 그럴지도 모르겠지만 하루에도 수십번 좌절했던때라 진짜 포기하고싶다는 생각을 몇번했는지 ㅎㅎ 지금 컴퓨터 공학이나 관련학과에 있다면 수업에서 뭔가 얻을 수 있다는 생각은 버리시는게 좋습니다. 일단 자기가 최대한 많은 프로그램을 기획하고 많이 만들어보는게 중요함 코딩은 결국 회사가면 다시배워야되는건 매한가지라 많이 만들어보면서 기초를 다지는것이 도움이 됨.. 학교에서 배웠던 학교다니면서 짯던 코드들은 흑역사일뿐.. 솔직히 말하면 대학교에서 가서 인맥을 넓혀서 창업할거 아니라면 그냥 고졸로 회사 입사해서 배워가는게 더 빠르다고 생각되네요 저같은 경우만해도 입사하고 인턴생활 6개월한것이 이미 대학4년과정보다 더 많은것을 배울수 있었다고 생각합니다.. 저는 그시간이 엄청 후회되더라구요 물론 제생각임

  • @eyeoftheinsight
    @eyeoftheinsight Před 6 lety +27

    우선, 포프님의 주제들은 대부분 게임과 같이 성능에 비중이 큰 개발 분야... 가끔은 그중에서도 그저 엔진에만 의지 하지 않는 수준을 아우르는 개발자를 '목표'에 두고서 이야기 하는 경향도 있습니다, 문제는 이러한 전제를 못 박고 이야기하지 않다 보니 영상에서 다뤄지는 이야기들이 인구 차원에서 사실상 대부분의 개발자들이 일하고 있는 분야에도 함께 적용될 것처럼 보입니다.
    아무튼, managed language 와 unmanaged language 를 나름 열심히 배우고 현장을 경험해 온 '일반적인 수준의 개발자'로써 의견을 조금 꺼내 보자면...
    영상 내용을 간단히 줄이자면, '소수의 최상급 개발자들은 고도의 테크닉을 지녔다, 그들은 unmanaged 언에 매우 능하다. 개발자로서 그래야 할 필요가 있다' 는 의견이라고 볼 수 있겠습니다. 저도 이 의견에 공감은 합니다. 다만, 현실(현장의 실전)을 반영하면 '이제는 굳이 그럴 필요까지는 없어진 거 같다.' 라는 생각으로 머리가 좀 복잡해 질 일이 된다는 생각입니다. 물론, 앞으로 취업하고 그런대로 잘 살아보겠다는 보편적 의지를 가진 대다수에게만 해당 될 이야기죠.
    제가 외국은 잘 모르니 그저 국내 실정만으로 이야기 하자면, 국내 대다수의 개발자들이 일하고 있는 개발분야는 managed 언어가 낼 수 있는 성능 범위 이상을 요구하지도 않거니와 실무적으로는 거론도 하지 않는 게 사실입니다. 이런 분위기는 대략 20여 년 특히 십 수년 사이에 급속도로 변해 왔죠. 그저 어쨌든 에러 없이 돌아가기만 하면 되고, 성능은 해당 툴이나 언어가 보편적으로 제공하는 수준에서 사용에 그다지 문제만 없으면 오직 '납품!' 이 관건입니다. 튜닝은 나중의 일이고 이것도 특별히 전문가가 배치되기보다는 그 파트를 담당했던 개발자가 수습하듯 날림으로 해결하며 이 역시 사용된 언어와 툴의 영역에 갇혀 있습니다.
    이쯤 돼서 아마 다음과 같은 의견이 나옵니다.
    "그 중에서도 unmanaged language 등급의 기술에 능한 사람들이 결국 인정 받고 좋은 위치에 남게 된다" 라고 말이죠.
    이 의견에는 다시 다음과 같은 긴 설명이 필요할 겁니다.
    "영상에서도 언급하듯 결국 그런 사람들은 어차피 특화된 분야의 극소수이다. 자기 생활 없이 삶에 급급해 살다보면 그냥 보편적으로 일하며 버티는 직장인이 돼 있는 것이 경험적 통계로 98%는 될 것이며, 이들에게 있어 unmanaged language 등급의 지식들은 어쩌다 가끔 신입들 앞에서 '이건 이렇게 해결될 문제가 아니고 에... 사실...'라는 멘트로 슬쩍 꺼내 들었다가 '야 일단 밥이나 먹으러 가자' 라는 마무리로 이제는 학창시절의 추억이 돼 버린 기억 정도의 역할이 고작인... 배워서 도움이 된 거 같긴 한데 뭐 하나 나열하기도 힘든... 느낌적인 느낌 같은 것이 돼 버린 게 국내 프로그램 개발 산업 전반의 현실이다." 라는 긴 설명 말이죠.
    결국, 배워서 나쁠 것 없지만 자신이 추구하는 목표에 따라 집중할 가치는 매우 크게 다르다는 생각 입니다.
    이상, 앞으로 변할 가능성이 거의 없는 현 실태 차원에서 보는, '이상적으로는 바람직하지만, 대다수의 개발자들에게는 더 이상/그다지 실용적이지도 않다' 라는 의견이었습니다.

    • @포프티비
      @포프티비  Před 6 lety +26

      업계를 바라보는 눈은 저와 크게 다르지 않으시며 저도 많은 부분 동의합니다.
      저랑 의견 차이가 있는 것은 두개 정도 인거 같은데요.
      1) 게임 등 성능에만 국한된 이야기라서 98프로에겐 의미없는 이야기다.
      일단 98프로라는게 매우 과장인 거 같고요. (현재 프로그래밍 언어 점유율만 봐도 C/C++을 합치면 30프로가 넘는 부분에서 그리 생각.
      그리고 현재 웹 프로그래밍을 주로 하는 저로써는 아키텍트급의 엔지니어도 염두에 두고 한 이야기 입니다.
      그 결과 저는 분야 막론하고 상위 20프로안에 들어가려는 사람들에게 적용되는 이야기라고 봅니다.
      2) 살아남는다는 의미에 대한 인식차이
      제목에서도 그리고 비디오에서도 말했듯이 전 프로그래머로 10년뒤에도 떳떳이 살아남기위해 필요한 언어라고 말했습니다. 하지만 들어주신 예는 제 기준에서는 그냥 일반 직장인으로 일단 봉급 받으며 다소 주먹구구식으로 일해보자. 먼미래(즉 한 10년 15년 뒤에도)에 내가 경쟁력이 있을지는 모르겠다. 인듯 합니다. 전 이 때 여전히 눈치보며 짤리면 갈때 없다는 걱정하고 있는게 살아남는 길은 아니라고 봅니다.
      그리고 업계상황은 변할거라고 봅니다. 단 이상적이지 않은 방향으로요. 저임금의 프로그래머가 더 양산되면서 그저그런 일반 프로그래머들의 경쟁이 더 치열해질 것이고 결국 나이먹은 프로그래머는 점점 설 곳이 더 적어질 거라고 생각하죠. 하지만 이런 걸 깨닫는 순간이 보통 경력 10년이후라 생각합니다. 따라서 너무 늦기전에 새로 업계에 들어오는 사람들이 방향을 잘 잡아서 대비를 했으면 하는 바람에 만든 비디오 입니다. 즉 상위 20프로 이상으로 올라가서 살아남을거냐 아니면 하위 80프로에서 머무르며 늙어서 맘편히 못살거냐..

    • @sunkyulee8809
      @sunkyulee8809 Před 5 lety +2

      결국 취업은 첫단추

    • @_________________________....
      @_________________________.... Před rokem +6

      c/c++ 로 FFI만들어서 브라우저/js런타임에서 돌리게 하거나
      Node-API로 rust/c를 wasm으로 컴파일해서 사용하거나
      emscripten을 사용하거나.. 등
      이미 웹환경에서 최적화를 위해 이루어지고 있는 시도들이고
      상당히 많은 라이브러리들이 개발이 되고 있죠..
      (wasmtime, wasi, wasm3)
      왜 모질라재단에서 적자까지 내며
      rust기반으로 새로운 브라우저 엔진 servo와
      webrenderer를 만들고 있을까요?
      왜 새로운 Js 런타임 deno, bun과 같은 게 등장했으며
      사람들은 열광을 하고 있을까요?
      왜 swc와 같은 js/ts컴파일러에 사람들은
      열광하고 있을까요?
      이런 움직임들을 보시면
      한번쯤 멈추고 생각해볼 필요가 있습니다.
      10년, 20년 뒤로 갈수록,
      AR과 webxr이 시간이 지나면서
      safari, chrome, firefox등의 메인스트림 브라우저에서 보편화될수록,
      더더욱 웹생태계는 unmanaged lang에 대한 요구가 높아지게 됩니다.
      30년정도 가면 vr도 원하게 될거구요..
      그때가면 web생태계에서 진정한 메타버스를 요구하고자 하는
      움직임이 일어나겠죠.
      지금과 같은 수준의 최적화는 얼척이 없는
      높은 수준의 엔지니어링이 반드시 요구되는 사회가 될거라 이 말입니다.
      elixir와 같은 erlang기반 언어들이 백엔드에 점차 도입되는 게
      늘어나는 이유도 위와 같은 배경에서 입니다.
      지금도 번들링된 js파일 크기가 커지면서 spa체계에서는
      로드시간이 길어져 lodash같은 라이브러리들로 해결하고 있죠.
      하지만 webxr, webaudio같은 기술들을 점차 유저들이 원하게 되고
      글래스가 보급될 수록 지금과 같이 react니 vue니 이런
      라이브러리 아는 수준의 웹 생태계와는 달라질 겁니다.
      애초에 웹에서 요구되는 UX가 upside down하게 바뀌게 된다구요..
      또한 그즈음되면 ethereum뿐만 아니라
      다른 블록체인 프로토콜들이 많이 개발되고
      사이드체인, 롤업들이 충분히 준비되어서
      지금보다 훨씬 web3에 가까운 모습이 만들어져있을 겁니다.
      이를 위해서 노력하는 천재개발자들이 정말 많다는 걸
      github에서 좀만 살펴봐도 다 알 수 있습니다.
      지금 비단 웹 클라이언트 생태계에서 말했는데도 이정도인데
      하물며 게임씬에서는 어떻겠습니까?
      백엔드 씬에서는요?
      제발 미래를 생각하고 시니어이상급으로 성장하고자 하는 개발자라면
      반박할 것도없이 unmanaged의 중요성을 느낌과 동시에
      computer science를 철저히 공부해야 하는 겁니다.
      특히 컴공 대학생이면 축복받았다고 생각하시고
      부모님께 감사드리면서 대학공부 열심히 하시면 되고요.
      이런 이유가 바로
      학원에서 되지도 않는 이상한 강의 팔아제끼면서
      돈빨아먹는 부트캠프들이 나쁜이유입니다.
      전혀 미래가 없는 방식으로 가르치거든요..

  • @llollapalooza
    @llollapalooza Před měsícem +1

    코볼도 unmanaged 로 알고 있는데요. 코볼을 대신 파도 될까요…? 회사에서 사용하고 있어서요…
    +추가: 결국 메모리 관리 및 가비지 컬렉션이 메인 이슈이니만큼, 코볼도 그런 기능이 없기에 C나 C++ 처럼 코볼을 파도 될까요…?

    • @포프티비
      @포프티비  Před 29 dny +1

      제가 코볼은 잘 모르지만... 말씀해주신대로 메모리 관리를 직접해야 한다면 C++대신 해도 무방해 보입니다!

  • @magingaet
    @magingaet Před 4 lety +3

    저도 C부터 시작해서 C#... 지금은 java를 주로 하고있는데
    C에서 배운 메모리를 다루는 개념, 정말 도움이 되고있습니다 ㅎㅎ

  • @user-zg7ob8ns2l
    @user-zg7ob8ns2l Před 5 lety +1

    뼈때리는 말씀 듣고 덧글 남겨요! 저도 managed 프로그래밍을 하고 있지만, 살아 남기 위해서는 Unmanaged 프로그래밍을 알아야 되더라구요.
    저도 시작은 C++ 로 시작을 하고 지금은 C# 을 하고 있는 프로그래머 였습니다.
    다시 스터디 하러 가러 가겠습니다~

    • @포프티비
      @포프티비  Před 5 lety +1

      그래도 좋은 언어들만 공부/사용하고 계시네요 ^_^/
      우리 다들 즐겁게 코딩 합시당~

  • @dannyk6809
    @dannyk6809 Před 6 lety +6

    이분은 볼때마다 느끼는건데 개발자로서의 낭만을 추구하시는 것 같아요. 부럽습니다. 치이고 치여서 살다가 뒤돌아보니 어느새 개발자로서 꿨던 꿈은 사라졌네요.. 의욕도 안나고..

  • @user-iv3ox5nb5g
    @user-iv3ox5nb5g Před 5 lety +2

    맞습니다. 학교에서는 언매니지드를 해서 기초를 좀 해두시는게 낫고 사회에서는 그냥 회사서 시키는거 하는게 좋아요. 굳이 지금 웹에이전시 같은 곳 들어갔는데 C++배우실 필욘 없습니다. 월급은 어차피 거기서 거기에요.

  • @jasonpark7892
    @jasonpark7892 Před 11 měsíci +1

    제가 다닌 학교에서는 1학년때 python으로 어지간한 알고리즘 구현이나 oop 개념을 가르치고, 1학년 말때쯤 cpp 로 자료구조 구현, c로 시스템 프로그래밍을 배우고 2학년때 심화, 그 이후의 클래스들에선 언어는 선택에 맡기거나 이론 수업이나 운영체제 수업에선 c를 사용하는 프로젝트들을 했습니다.
    개인적으론 학위를 가졌다 한다면 추상적인 언어와 c 모두 잘 다룰 줄 알아야 하고 사실 둘을 잘 안다면 직장을 위해서 다른 언어를 익힌다고 해도 정말 어렵지 않게 배워 적응할 수 있죠. 사실 문법만 조금씩 다르지, 핵심적인 개념들은 대부분 공유하니까요. 언어는 그 프로젝트에 맞는 것을 선택해야 한다는 것이 제 생각입니다.
    제가 한국 프로그래머들의 커뮤니티에서 조금 충격을 받았던 점은 그들의 언어에 대한 자부심 등이었습니다. 물론 선호하는 언어가 있을 순 있지만, 추상화 단계가 높은 언어는 프로그래밍도 아니라는 식으로 이야기를 하는데 솔직히 그분들이 하는 소리 들어보면 로우레벨 언어를 잘할 것 같지도 않고 하이레벨을 쓴다고 고생산성을 낼 수 있을 거 같지도 않더군요.

  • @dukgukim-n9m
    @dukgukim-n9m Před 5 lety +3

    좋은 말씀 감사합니다.
    현재 졸업 예정인 대학생인데 학교에서 배우는 C, C++, 어셈블리를 배우면서
    '다른 학교들은 앱 개발이나 프로젝트같이 실용적인걸 가르쳐주는데, 왜 우리학교는 이런것만 가르쳐줄까' 생각했었는데 이런 깊은 뜻이 있었구나 생각이 드네요.

  • @user-ml6dm6db3n
    @user-ml6dm6db3n Před 5 lety +6

    제가 전부를 아는건 아닙니다. 다만 경험을 바탕으로 이야기 하자면, Programming language를 가르치는 강사 혹은 교수들의 대부분 Language를 왜 사용하는지 모르고 가르칩니다. 보다 근본적인 사실을 생각하지 않고 그냥 책의 흐름대로 읽어줄 뿐입니다. (8:45)
    #include

    void bubble_sort (int* a, int size);
    void swapping (int* a, int* b);

    int main (void) {

    int a[10] = { 8, 4, 2, 5, 3, 7, 10, 1, 6, 9 };
    int i = 0;

    bubble_sort (a, sizeof (a) / sizeof (int));

    for (i = 0; i < sizeof (a) / sizeof (int); i++) {

    printf("%d ", a[i]);
    }
    printf("
    ");

    return 0;
    }

    void bubble_sort (int* a, int size) {

    int i = 0, j = 0;

    for (i = 0; i < size; i++) {
    for (j = 0; j < size - 1; j++) {
    if (a[j] > a[j + 1]) {

    swapping (a + j, a + j + 1);
    }
    }
    j++;
    }
    }
    void swapping (int* a, int* b) {

    int tmp = 0;

    tmp = *a;
    *a = *b;
    *b = tmp;
    }
    이러한 종류의 코드를 매우 많이 봐왔을 것입니다. (기본적인 Bubble sort Algorithm 입니다.) 보통 반복문을 사용할 때 절대적으로 i, j를 사용합니다. 그리고 쓸데없이 변수를 생략하거나 줄입니다. 상황에 맞지 않게 사용하는 경우도 매우 빈번하게 있습니다. 심지어 소스코드를 재대로 설명해주지도 않습니다. 여기서 i는 무엇이고, j는 무엇이며 Algorithm의 흐름조차 언급하지 않습니다. 더 문제인 것은 위의 코드는 그나마 모듈화가 재대로 되어있지만, main()내에 섞어 설명하는 경우도 매우 많습니다.(모듈화를 하지 않고 설명합니다.) 아래 코드를 봐주세요.
    #include

    void bubble_sort (int* array, int size);
    void swapping (int* current, int* next);

    int main (void) {

    int Array[10] = { 8, 4, 2, 5, 3, 7, 10, 1, 6, 9 };
    int index = 0;

    bubble_sort (Array, sizeof (Array) / sizeof (int));

    for (index = 0; index < sizeof (Array) / sizeof (int); index++) {

    printf("%d ", Array[index]);
    }
    printf("
    ");

    return 0;
    }

    void bubble_sort (int* array, int size) {

    int allElement = 0, partialElement = 0;

    for (allElement = 0; allElement < size; allElement++) {
    for (partialElement = 0; partialElement < size- 1; partialElement++) {
    if (array[partialElement] > array[partialElement + 1]) {

    swapping (array + partialElement, array + partialElement + 1);
    }
    }
    partialElement++;
    }

    return;
    }
    void swapping (int* current, int* next) {

    int temporary = 0;

    temporary = *current;
    *current = *next;
    *next = temporary;

    return;
    }
    위의 조금 익숙치 않는 형태의 코드를 볼 것입니다. (일반 학생 기준) 변수는 저의 주관대로 씌여졌고, 의미하나하나 제가 부여한 것입니다. 위의 Algorithm과 다른 것 처럼 보이지만 동일한 Algorighm 입니다. 보통 수업을 들을때 위와같이 생략되지 않은 형태의 소스를 기반으로 수업을 듣나요? 대부분 전자의 코드를 보고 수업을 받을 것입니다. 이것이 왜 문제가 되는가? 에 대한 물음을 한다면 한편의 시를 예로 들어보겠습니다. (비슷한 맥락)
    김소월에 을 예로 들어보겠습니다. (고등학교 과정을 거친사람들이라면 아실꺼라 믿습니다.) 이 시에 모든 단어 하나하나를 a,b,c.. 와 같이 바꿔주세요. 그리고 한번 읽어보길 바랍니다. 이미 아는 내용임에도 불구하고 매우 이상하게 느껴질 것입니다. (오히려 가독성이 떨어질 것입니다.) Programming Language도 마찬가지입니다. 변수 하나하나에 적절한 의미가 있고, 적절한 단어를 사용해줘야 합니다. (이유는 가독성 및 이해의 차원에서 효율이 좋기 때문입니다.)
    이러한 기본적인 맥락도 모른체 엉터리로 수업하고 학점을 부여합니다. 저는 이 부분이 매우 잘못되었다고 생각합니다. 마치 이런거죠. 프로그램을 못하는 사람이 프로그램을 가르치고 있는 상황인 것입니다. 기본조차 재대로 알고 있지 않는 사람들이 수업을 하고 있습니다. 더큰 문제는 젊은 강사들이 더 심하다는 것입니다. 그저 암기한 내용을 기반으로 떠들기 바쁘죠.
    이 글을 핵심을 이해하고 공감할지 모르겠지만 조금이라도 알아줬으면 하는 차원에서 이 글을 씁니다.

    • @포프티비
      @포프티비  Před 4 lety +2

      (홍보) 그래서 포큐 아카데미레 오셔야 하는 겁니다. 최대한 훌륭한 회사에서 쓸법한 코딩표준으로 모든 코드를 제공하려하고 있습니다.
      pocu.academy

  • @user-xg2ey7qy8w
    @user-xg2ey7qy8w Před 6 lety +10

    저는 서울 상위권 대학 분교에 다녔는데 커리큘럼이 졸업 떄까지 unmanaged language를 다뤘고 managed language는 한 학기정도만 다뤘던 것 같네요. 정말 학교 다닐 때는 왜 이걸 4년 내내 들어야하고 써야하는지 몰랐는데 지금 제가 원하는 직무를 잡고 포프님 영상을 보니 제가 배웠던 교수님들께서 커리큘럼을 왜 잡으셨는지 이해가 되네요. 그땐 정말 소홀히 했었는데 지금은 열심히 리뷰하며 취업준비 중입니다 ^^

  • @Firebat337
    @Firebat337 Před 6 lety +13

    저는 중상위권 정도되는 학교를 재학중인데 총 5학기 동안 unmanaged language를 교육하는데 주력합니다. 물론 중간에 managed language를 교육하긴 합니다만 커리큘럼상에서 주력하고 있는 것은 unmanaged language네요. 교수님들도 평소에 컴퓨터가 어떻게 동작하는지에 대한 것을 많이 이야기하시는데 이게 정말 바람직하다는 것을 몸소 체험해보고 포프님 영상보면서 다시 한번 환기하게 됩니다. 겨우 학부생 과정을 공부하고 있지만 프로그래머가 컴퓨터 하부구조를 모르고서 코딩을 한다는건 말이 안된다고 친구들끼리 많이 이야기를 했었는데 맞는 말이었네요.

    • @포프티비
      @포프티비  Před 6 lety +1

      +퍼퍼퍼펑 좋은학교네요. 어느학교인지 이름이라도 듣고 싶은데 개인정보 노출때문에 좀 꺼리실려나요?

    • @user-hw9fb3oj6j
      @user-hw9fb3oj6j Před 6 lety

      저도 궁금하네요

    • @shyda6197
      @shyda6197 Před 6 lety

      퍼퍼퍼펑 저도듣고싶습니다

    • @toysmoon
      @toysmoon Před 6 lety +2

      저는 10학번 숭실대 인데 거의 모든 강의와 과제가 C, C++이였습니다.

    • @leelee0704
      @leelee0704 Před 6 lety +4

      저도 숭실대학교인데,, 학부때는 빵판에 회로를 설계 하면서까지, 어셈블리 언어를 직접 만들면서까지, 리눅스 커널 코드도 짜고, 네트워크 프로토콜도 손수 설계시키며 가르치는 학교 커리큘럼에 학을 뗐었는데, 현업에 나와보니 저희 학교의 커리큘럼이 얼마나 좋았던 것인지 새삼 느낍니다!
      진짜 생각의 출발점부터가 다릅니다. 다른 학교출신(비하하는 의미는 아니지만) 동료들의 이야기를 들어보면 진짜 컴퓨터가 마법을 부리는줄 알더군요... 다 누군가가 직접 만든 코드인 것인데...
      포프님의 생각에 깊이 공감하게되네요

  • @user-38e9f4e7cu
    @user-38e9f4e7cu Před 2 lety +1

    포프님, 언매니지드 언어로 C++를 공부해보고 싶지만..문제는..웹개발 쪽인데 쓸 일이 거의 없을거 같아서요. 이런 경우는 어떻게 해야할까요? 실제로 안쓰면 공부해도 금방 다 잊어버릴까 걱정입니다ㅠㅠ
    p.s. 파이썬을 공부하는데 파이썬 내부가 C로 돈다니 파이썬 내부를 공부하면서 C 지식을 활용해보는 방법 정도가 생각났읍니다. C++까진 아니더라도 C로도 괜찮을까요?

    • @포프티비
      @포프티비  Před 2 lety

      씨부터 배우고 좀 쓰다가 씨뿔뿔을 배우면 좀더 쉽긴 하죠. 전 나쁘지 않은 생각 같습니다

  • @Kimjh79
    @Kimjh79 Před 5 lety +17

    8비트 부터 컴퓨터를 만져놓으니 그때 배운 것들 기초가 쌓이고 쌓여서 40대가 된 지금에도 도움이 많이 됩니다.

  • @chunca-k4c
    @chunca-k4c Před 4 lety +1

    포프님 항상 감사합니다. 이런영상들을 올려주신 것 덕분에 제 진로를 찾아가는 것 같습니다. 정말 감사합니다 :)

    • @포프티비
      @포프티비  Před 4 lety

      다행이네요. 이런 이야기 하면 그냥 무시하시는 분들도 계셔서 걱정이었거든요

  • @TannyTales
    @TannyTales Před 5 lety +2

    프로그래밍 아무리 잘하고나서도 드는 생각이 살아남기 위해서 중요한 언어중 하나는 다름 아닌 우리가 일상 대화하는데 쓰는 언어인것 같습니다. 버스 타고 가는 길에 요즘같은 세상에 아주 흔치않은 어여쁜 표준어 어법의 대화가 들렸는데 이건 정말 ㅠㅠ 잊을 수 가! 없쪙!

  • @명영환-u5t
    @명영환-u5t Před 5 lety +3

    저는 TTL과 ATMEL HW설계와 어셈블리언어로 정년을 채우고 지금은 그걸 강조하고있는데 . . .
    내용이 격하게 정말 대단하십니다..
    교수님 건강하시고 젊은이를 위해 좋은기사 계속응원하겠습니다.
    아울러 요즘시작한 제 유튜브도 응원바라겠습니다. 감사합니다.

  • @gclim2246
    @gclim2246 Před 6 lety +2

    포프님 영상 보면서 불혹 다 되어 프로그래머 생활을 시작하려 합니다. 포프님 책 보는데 궁금했던 것 들이 많이 써 있어 좋네요. 저도 포프님처럼 멋진 엔지니어가 되는 게 목표입니다.^^

  • @winizk4054
    @winizk4054 Před 5 lety +1

    저는 4년간 게임메이커(GML) 과 언리얼 블루프린트로 게임을 5개?정도 만들어본 학생입니다.
    몇달 전부터 C++을 공부하고 있는데요,
    말씀하신대로 C++은 Managed Language인것은 명확한데, 고작 스크립트 언어 수준인 GML과 언리얼 블루프린트를
    UnManaged Language로 생각해도 될까요?
    아무래도 예시로 말씀해주신 자바나 C#에 비하면 GML이 더 HighLevel Language 이긴 하지만
    이 영상의 맥락에서 본다면, 결국 메모리 관리는 손도 못대는데다 누군가는 Managed Language로 만들어 낸 언어 라는점에서는
    일치하거든요.
    심지어 GML은 그나마 코드를 작성하지만 언리얼블루프린트는 비주얼 툴인데도
    이 영상에서 말하신 내용에는 맞춰볼 수 있는 것인지 궁금합니다.
    + 추가로
    어렸을적부터 스타크래프트1 맵 에디터의 트리거를 활용해서 만들고 놀았는데, 이런것도 포함이 될까요?
    PS: 요즘 C++을 공부하면서 메모리관리나 이런것들을 보니 영상에서 말씀하신것 하나하나가 와닿는것 같습니다.

    • @simonkim22
      @simonkim22 Před 5 lety +1

      C나 C++같은 언어들은 Managed가 아니라 Unmanaged 언어입니다. 용어 뜻을 혼동하고 계신듯한데 Managed의 의미는 '관리되는' 이라는 말로 언어 차원에서 메모라 관리 기능을 제공하는 언어를 말합니다. 대표적인 예로 GC (Garbage Collection) 을 이용하는 C#, Java 등 그리고 Ref Counting 을 이용하는 스크립트 언어들이 있습니다. 언어 차원에서 메모리를 관리해주기 때문에 편하긴 하나 깊이 파고들면 각각 방식의 문제점이 있습니다. (GC의 경우에는 가비지 컬렉터가 작동할때는 프로그램 로직이 잠시 일시 중지된다던지 가비지 컬렉션의 시점을 예측 할수 없다던지 또 Ref Counting의 경우에는 Circular Reference 가 생기는 경우에 메모리 누수가 생긴다던지 등) 그에 반헤 C/C++ 의 경우에는 언어 차원에서 메모리를 관리해주진 않고 프로그래머에게 관리 책임이 전적으로 있는, 즉 메모리가 자동으로 관리되지 않는 Unmanaged 언어입니다. 물론 Unmanaged 의 경우라 하더라도 아예 모든 메모리를 수작업으로 해제를 하는 경우는 드뭅니다. 보통은 C++의 경우엔 Smart Pointer라 해서 포인터들을 일종의 Wrapping을 해서 Ref Counting을 이용한다던지 등 어느 정도의 메모리 관리를 도와주는 라이브러리를 제공하기도 합니다.
      결론을 말씀드리자면 GML 의 경우엔 제가 해본적이 없어 모르겠으나 블루프린트나 스타 맵 에디터 (이 경우에는 루아를 사용하는 걸로 알고있습니다) 등은 일반적으로 Managed Language라 보시면 될것같습니다.

  • @cibokim5758
    @cibokim5758 Před 6 lety +4

    무슨 언어든...일반 사람들에게 얼마나 쓸만한지, 어떠한 가치가 나오는지가 더 중요한듯요..물론 그다음 전문가끼리 싸워야하는 레벨에서는 디테일이 중요하지만요

  • @JK-ed6pp
    @JK-ed6pp Před 6 lety +2

    항상 좋은 내용 감사합니다.
    저는 여기 약간 추가한다면..
    운영체제 이론이 코드에 사용하는 방법(?)과 비슷한 부분이 많아서
    운영체제가 메모리,하드디스크를 어떻게 관리(페이징,인덱싱...)하고 사용할까 ?

  • @user-us6cg1vr9v
    @user-us6cg1vr9v Před 6 lety +2

    대학 자체가 취업을 위한 수단이 된 마당이다보니 깊이 있는 학문 보다는 빠른 사회 진출을 통한 일종의 학교 실적 채우기에만
    급급해서 생기는 자연스런 부조리라고 생각해요.

  • @saehun2488
    @saehun2488 Před 5 lety

    -
    비전공자로 C언어의 배열까지만 배웠습니다.
    포인터까지 공부해봐야할지 고민입니다.
    현재 2학기에 인공지능개론을 배웠거든요. 지식이 조금 남아 있을때 이번 방학에 파이썬기초+ 머신러닝을 공부하는건 어떻게 생각하시나요ㅠ?
    그래도 C의 포인터를 이해하는게 중요하다고 생각하시는가요??

  • @user-rax146
    @user-rax146 Před 5 lety +1

    프로그래밍을 로직구현을 목표로하느냐 시스템구동을 목표로하느냐의 차이가 아닌가 싶네요. 프로그래밍이 주력인 사람은 아니고 영상 알고리즘 개발하는터라 내 코드가 그대로 상용으로 가진 않는데요. HAL과 접하는 코드들은 대부분 C/C++을 쓰고 꽤 잘해야 되죠. 물론 회사니까 잘하는 사람이 기틀을 잡아놓고 대부분은 그 코드를 갖다쓰고 프로그래밍보단 영상이라는 도메인의 지식을 가지고 일을 충분히 할 수는 있습니다. 그렇지만 역시나 코드가 몇년지나면 한번 갈아엎을때가 올수밖에 없는데 그일을 할 수 있는 사람은 몇 안되죠. 그때는 정말 HW(컴터만이 아니라 DSP나 영상 전용 칩등을 모두포함)와 시스템을 잘 알면서 C++잘하는 사람이 그 일을 해낼수 있죠

  • @김민겸-d5x
    @김민겸-d5x Před 4 lety +1

    이번에 대학 입학하고 한 학기 다녀보면서 고민, 걱정이 많이 생겼었는데 이 영상 덕분에 공부의 방향성을 잡은 것 같고 학교 커리큘럼에 대한 신뢰가 생겼네요

  • @beomsookim
    @beomsookim Před 5 lety +3

    로우레벨도 디테일도 정말 중요하지만 하이레벨 언어를 말하면서 몇몇 분들이 "쉬운언어" 운운하는 것은 좀 황당하네요. 사람이 하는 일이 쉬울 수는 있어도 어떻게 언어 자체가 쉬울 수 있겠습니까😂 스몰토크, 리습 이런 퓨어한 하이레벨 랭귀지를 제대로 접해보셨다면 생각이 많이 바뀌실 수 있을 텐데.... 또 어떤분들은 무슨 파이썬이라고 쉽게 생각하시는 것 같은데, 이탈리아의 대표적인 프로그래머 Alex Martelli의 경우 젊은 시절 C++전문가로 명성을 날렸지만, 파이썬으로 넘어오고 부터는 몇십년을 해도 계속 배울 점이 있어 참으로 고마운 언어라고 말한답니다. 로우/하이 두개를 잘 한다면 정말 좋겠지만 사실 하나를 잘하는 것만으로도 정말 대단한 거지요. 평범한 프로그래머가 한쪽을 택한다고해서 뭐라 할 필요는 없다고 생각해요. 미국에서는 리습으로 만드는 운영체제 수업같은 것이 매우 중요하게 여겨지는데 우리나라에서는 그런 랭귀지가 있다는 것도 잘 모르지요. 우리나라에서는 잘한다는 프로그래머들이 하이레벨 랭귀지에 대한 관심이 별로 없는게 훨씬 큰 문제라고 생각합니다.

    • @포프티비
      @포프티비  Před 5 lety

      지금 들어주신 논거에 몇 가지 오류(혹은 모르는 사람이 보면 잘못 이해할 부분)이 있는 거 같아 몇가지 첨언합니다.
      1. 쉬운 언어라는 표현은 보다 쉬운 언어를 의미하는 겁니다. 그 언어가 무조건 쉽다라는 의미가 아니구요. 언매니지드 언어가 매니지드 언어보다 어렵다는 것은 많은 분들이 동의한다고 생각하고요.
      2. 미국에서 오에스 가르칠 때 리스프보다 C를 더 많이 씁니다. 제가 미국에서 컴공 석사 받을 때도 C로 오에스 개념들을 만들어야 했습니다. 메이저한 거의 모든 운영체제가 C로 만들었기 때문이죠. 참고로 미국에서도 스몰토크, 리스프란 언어가 있는 거 모르는 프로그래머들 많습니다. 그게 문제라면 한국만의 문제는 아닙니다.
      3. 잘하는 프로그래머들이 매니지드 언어(퓨어한 하이레벨 언어라고 표현하신게 매니지드 언어라 생각해서 그렇게 표현하겠습니다. 씨, 씨뿔뿔도 하이레벨 언어라서요. 그게 아니라 함수형 언어를 말씀하시는 거라면 댓글 달아주세요.)에 관심을 안 가지는게 문제라고 하셨는데 그거에 대한 논거를 제시하셨으면 좋겠습니다. 그 반대 논거를 드라자면 현재 널리 쓰이는 매니지드 언어를 만들고 발전시켜 나가는 주요 멤버들이 그 잘하는 프로그래머들입니다. (특히 C#진영) 그럴 수 밖에 없는 게 매니지드 언어의 기능 등을 만드려면 그 언어자체(컴파일러 및 인터프리터)에서 하드웨어 제어를 해줘야하기 때문에 언매니지드 언어를 잘 아는 사람이 아니면 그런 일을 하기 어렵습니다.

    • @beomsookim
      @beomsookim Před 5 lety +1

      ​@@포프티비 ​ 안녕하세요. 우선 친히 답변을 해주셔서 정말 감사하게 생각합니다. 포프님보다는 여기에 달린 다른 댓글들을 겨냥하여 쓴 말이긴 한데요. 포프님께서 해주신 말씀에 대해서도 답변을 드리겠습니다.
      1. 그 보다 쉽다라는 내용에 대해서도 동의하지 않습니다. malloc, epoll등 함수등을 깊게 이해하는 것 만큼이나, 클로져, 메타프로그래밍, 신택스트리 자체를 동적으로 변경하는 리스프의 매크로 같은 기능을 이해하는 것이 어렵고 동시에 프로그래머에게 큰 자산이 된다고 봅니다. 로우레벨 랭귀지에는 로우레벨 전용 기능이 있듯이 하이레벨 랭귀지에는 하이레벨 전용 기능이 있다고 보셔야 하지 않을까요. 제가 평소 자주 인용하는 블럽패래독스라는 말을 링크합니다(wiki.c2.com/?BlubParadox).
      2. 오해의 소지가 있게 말씀드린 점은 죄송합니다. 저도 미국에서 C가 대학과정에서 운영체제를 가르치는데 주류 언어라는 점은 잘 인지를 하고 있습니다. 다만 소위 상위권 대학으로 갈수록 오히려 하이레벨 랭귀지로 운영체제를 가르치는 경우가 많습니다. 리스프와 과 같은 하이레벨 랭귀지가 정말 '쉬운' 언어 였다면 설명하기 힘든 현상이지요. 대표적으로 MIT의 SICP라는 리스프로 구현하는 운영체제 교과서/강의가 있는데요, 컴퓨터과학을 통틀어 가장 권위있는 강의중 하나입니다.
      3. 제 논지는 우리나라 고급프로그래머들이 너무 로우레벨쪽에 편중되어 있다는 것이었고 말씀해 주신 내용은 오히려 제가 말한 논지를 강화시키는 것으로 보입니다. GNU의 창시자 리처드 스톨만 같은 분은 로우레벨 랭귀지에 벗어나지 못하는 세태를 비판하고 하이레벨 랭귀지를 정말로 많이 강조를 했습니다. gcc, bash, emacs 등 굵직굵직한 작품을 보면 이런 철학이 잘 녹아있지요. 현재 우리나라 토양에서는 이런 분이 나오기 힘들다고 생각했습니다.

    • @포프티비
      @포프티비  Před 5 lety

      1. 하이레벨의 개념부터 잠시 잡아주시고 논의를 진행하는게 좋을 듯 합니다. 정확히 무슨 기준으로 하에레벨 로우레벨을 나누시는 지요. 제가 지금 느끼기에는 함수형 언어의 특징들을 하이레벨 언어라고 말씀하시는 것 같아 묻습니다. 시샵, 자바. 심지어 씨와 씨뿔뿔도 하에레벨 언어인데 지금 말씀하시는 부분이 적용되지 않는 거 같아서요. 패러다임이 다른 언어를 말씀하시려는 데 로우/하이레벨 언어라고 표현하는 건 아닌가 생각이 들지만 그건 대답해주시리라 생각합니다.
      2. 미국의 상위권 대학에서도 C로 운영체제를 가르치는 일이 더 많습니다. (그리고 씨도 하이레벨입니다) 그리고 어떤 과목을 특정 언어로 가르친다고 해서 그 언어가 더 쉽지 않다는 이유가 되진 않습니다. 오히려 더 쉽기에 그 언어로 가르치면서 프로그래밍이 아닌 개념을 이해시키려는 시도도 많이 합니다.
      로우레벨 전용 하이레벨 전용 기능이란 말도 잘 이해가 되지 않는 말인게.. 하이레벨 언어의 기능은 로우레벨 언어로 구현이 가능하지만 로우레벨 언어의 기능은 하이레벨 언어로 구현이 불가능한 경우가 많습니다. 그게 바로 로우레벨 하이레벨의 차이고요. 결과적으로 로우레벨 언어는 하이레벨 언어를 쌓아올리는데 기반입니다. (근데 다시 한 번 말씀드리지만 하이레벨 언어의 정의부터 내려주시는게 가장 필요할듯 싶습니다. 하이레벨이 중요하단 말씀을 하시는 게 아닌거 같아서요)
      3. 로우레벨 프로그래머가 숫적으로 많다는 말도 사실과 다른 이야기 같습니다. 하이레벨 프로그래머가 수로 압도적으로 많습니다 현재 프로그래밍 언어통계만 보셔도 로우레벨보다 하에레벨 언어가 압도적으로 높습니다. 허나 이 논의도 하에레벨에 대한 정의를 다르게 내리셔서 그럴수도 있다고 생각합니다.

    • @beomsookim
      @beomsookim Před 5 lety

      ​@@포프티비 예 진작 명확하게 얘기를 드리지 못한 것 같아 죄송합니다! 수십년전에는 씨와 같은 랭귀지가 하이레벨 랭귀지라고 불렸던 것이 사실이지만, 단어에 대한 정의는 시간에 따라 많이 변할 수 있다고 생각합니다(en.wikipedia.org/wiki/High-level_programming_language "Relative meaning"항 참고). 애초에 하이레벨 랭귀지라는 것이 명확한 학술적 정의가 없고 상대적일 수 밖에 없기 때문에 제가 생각하는 정의를 말씀드리겠습니다. 저는 clean & terse한 랭귀지가 하이레벨이라고 받아들입니다. 구체적인 특징으로는 말씀해주신 함수형 언어의 특징도 들 수 있겠지만 거기에 더해 객체지향 / 다이나믹타이핑 / 동적코드 수정 능력등을 꼽을 수 있을 것 같습니다. C++같은 경우에는 명목적으로는 앞서 말씀드린 기능을 어느정도 제공하긴 합니다만 실제로 그것이 (상대적으로) 짧고 간결한 코드로 이어지지는 않기 때문에 하이레벨 랭귀지로 분류하기는 힘들다고 봅니다. 명목적으로는 C++과 Ruby모두 람다식을 지원하는 랭귀지지만 실제로 그 둘에서 경험하는 람다식은 확연히 다를 수 밖에 없다고 생각합니다. 소위 주류언어로 불리는 것들 중에서 하이레벨랭귀지로 꼽을 수 있는 것은 파이썬, 루비, 펄 정도라고 생각하고 있습니다. 그럼에도 하이레벨 랭귀지라는 구분 자체가 싫으시다면, 위 랭귀지를 Very 하이 레벨 랭귀지로 받아들여주셨으면 감사하겠습니다.

    • @beomsookim
      @beomsookim Před 5 lety

      ​@@포프티비 2.번에 대해서는 몇가지로 나누어서 답변을 드릴 수 있을 것 같은데요 우선 상위권 대학에서 조차 C로 운영체제를 더 많이 가르친다는 것은 저도 인정을 하고, 오해하실 수 있게끔 말씀을 드린 점은 사과합니다.(하지만 여전히 SICP가 미국 컴퓨터과학에서 가지는 입지는 대단한 것이라고 생각합니다...).
      다음으로, "로우레벨 언어는 하이레벨 언어를 쌓아올리는데 기반입니다"라는 말에 대해서는 동의하지 않습니다. 애초에 랭귀지 디자이너 입장에서 하이레벨 랭귀지를 정의하고 머리속으로 프로그래밍을 하는데에는 로우레벨 랭귀지의 도움을 받을 필요가 없습니다. 때문에 C라는 랭귀지가 나오기 이미 수십년전에 lisp이란 언어가 발명 될 수 있었던 것이지요.
      하지만 현실적으로는 메모리나 연산속도의 제약이 있고 그 제약속에서 최고의 성능을 끌어내기 위해 로우레벨 랭귀지의 도움이 필요한 것으로 저는 이해하고 있습니다. 그리고 저도 "지금 이시점"의 "현업"에서 파이썬 프로그래머들이 CPython 구현을 제대로 이해하고 레퍼런스 카운팅이나 바이트코드를 제대로 이해하는 것은 매우 중요하다고 받아들이고 있습니다. 때문에 2번에서 어떤 의미에서 말씀을 주셨는지는 백번 이해합니다.
      그리고 전용 피쳐에 관한 문제에 대해서는.. 애초에 어떤 랭귀지든 다른 모든 랭귀지의 피쳐를 지원하는 것이 가능하고 이건 사실 수학적으로 증명도 가능합니다(물론 구체적으로 운영체제의 도움을 받기 위해서는 ffi를 통해 특정 언어의 특정 함수를 호출할 필요가 있을 수 있겠습니다만 이것은 제가 말씀드리는 것과는 다른 측면의 이야기입니다). 때문에 사실 진정한 의미에서 전용피쳐는 없다고 보는 것이 맞겠지요. 다만 현실에서 하이레벨 랭귀지에서는 하이레벨 랭귀지에서 일반적으로 쓰는 기능이 있고 로우레벨 랭귀지에서는 로우레벨 랭귀지에서 주로 쓰는 기능이 있다고 생각합니다. C/C++ 유저들이 리습에서 매크로와 같이 고도로 추상화된 기능을 사용하는 것은 현실적으로 보기 힘든 광경이라고 봅니다.

  • @새벽별-t6d
    @새벽별-t6d Před 6 lety +3

    많이 공감하고 있습니다.예를들어 안드로이드가 처음에 자바로 개발되었는데..커널이 5.0버젼부터(?) c언어 계열 언어로 개발되면서 os가 빨라졌다는 소문을 들었던 것 같네요.언어별로 장단점이 있으니까 적재적소에 잘쓰는게 중요하다는 생각이 듭니다.

    • @jamiecha
      @jamiecha Před 6 lety +3

      성능상의 문제가 되는 부분을 조금씩 Native (C++) 로 옮겨간 사례입니다. Native 언어로도 성능 확보가 안되면 HW IP 를 이용하는 식이 되는거죠... 모든 플랫폼에서 최적화 단계에 일어나는 자연스러운 현상입니다.

    • @cogidtjr
      @cogidtjr Před 2 lety +1

      오래된 글이지만 좀 잘못된게 있어 적습니다
      안드로이드는 커널은 리눅스
      런타임인 가상머신은 달빅이라는
      C로 구현된 런타임 위에
      자바로 구현된 프레임워크로 돌았습니다
      이게 2015년 이후로
      런타임이 C++호 구현된 아트 런타임으로 바꾸기
      가비지 컬렉션과 JIT그리고 점진적인 AOT등
      인터프리터의 한계를 벗어나 점점 속도가 개선되었습니다
      이런 기술들이 댓글 다신 것처럼
      언어가 달라진게 주된 요소는 아닙니다

  • @SeongYoonHuh
    @SeongYoonHuh Před 3 lety

    피와 살이 되는 말씀 감사드립니다. 종종 올바른 길로 가는게 맞는지, 스스로 맞는건지 항상 의문이 들때마다 찾아오게 되는 영상이라..
    감사합니다.

  • @rgasion8653
    @rgasion8653 Před 5 lety +4

    전자공학을 공부하다가 아무래도 맞지 않는 것 같아 평소 관심을 가지고 있던 컴퓨터공학으로 전과를 준비하면서 고민하고 있었는데 이런 좋은 영상이 있었네요. 덕분에 공부에 집중할 언어를 선택하는데 도움이 되었습니다. 이런 좋은 영상 올려주셔서 정말 감사합니다.

  • @hyokun7
    @hyokun7 Před 5 lety +19

    오늘 처음 포츠TV 와서 Subscirbe 했습니다.. 전 37살 먹은 아들 아빠이며 아일랜드 리머릭에 거주하고 현재 Limerick Institude Technology에서 3학년 재학중이네요. 처음부터 지금까지 C++가 항상 모듈이 있으며 저희 교수이 정말 여기서 유명하신 분이십니다. Unmaged Langauge를 아주 강조합니다. 2학년때 서서히 알고리즘들과 소트들을 배우는데 정말 배우는 입장에서 아주 중요다고 생각합니다. Managed Language 2학년부터 C샵 3학년 현재는 JAVA와 C샵을 현재 깁숙히 배우고 있고요... 정말 유용한 정보 감사드리고, 공감이 가서 이렇게 글 남깁니다..

    • @chaidle
      @chaidle Před 5 lety +3

      먼말이지... 아니 37인데 학생???

    • @hyokun7
      @hyokun7 Před 5 lety +1

      @@chaidle 예. 늦각이 대학생입니다. 현내 아일랜드 거주중이고 limerick Institute Technology 3학년입니다. 일년 더남았구요. 곧 인턴쉽을 Kemp technology에 Reserch and development 에서 stack developer로 일할 예정이구요

    • @hyokun7
      @hyokun7 Před 5 lety

      @@chaidle 한국 나이로는 80년 생이니 39살 입니다..

    • @포프티비
      @포프티비  Před 5 lety +7

      오빠~ 😍

    • @hyokun7
      @hyokun7 Před 5 lety

      @@포프티비 왜 그러세요.. ㅎㅎ. Happy Christmas and Happy New year.

  • @tameyoung8003
    @tameyoung8003 Před 4 lety +2

    비전공자인데 늘 배우고싶었던게 이쪽인지라 공부 방향을 어떤식으로 잡을지 항상 고민됬는데, 정말 좋은 말씀 감사합니다.

  • @kennethlee873
    @kennethlee873 Před 4 lety +1

    채용하는 입장이되고나니 더 와닿습니다... 요세는 너무 하드웨어 스펙이 좋아져서 누수가 조금생겨도 눈에 안뛰게되면서 그런지 모르겠지만. 많이들 메모리에 대한 이해가 부족한것같더군요..

  • @user-ps4ic4zc6m
    @user-ps4ic4zc6m Před 4 lety +1

    안녕하세요!
    저는 일부러 코딩공부하려고 군대를 공군으로 온 공대생(컴공은 아닙니다.) 입니다.
    다행이 공부할 수 있는 시간은 많습니다.
    학교에서 1학년때 c언어를 배운적이 있어서, 근데 많이 까먹어서 지금 c언어를 다시 공부하고있습니다. 제 원래 계획은 올해에 c,c++ 을 공부하고 내년에 python과 java를 공부하려고 했었는데,
    (내년 12월 전역입니다.)
    이 영상을 보니 3개월, 6개월 깔짝깔짝 하지 말라고 하시고, unmanaged 언어와 managed 언어 하나씩을 공부하라고 하신것 같은데,
    그러면 올해 c언어 만을 공부하고, 내년에 java나 python 같은 managed언어 중 하나 골라서 공부하는게 나을까요?
    공부는 기본서로 공부 -> 백준 문제풀기 이런식으로 하려고 하는데 어떻게 생각하시는지 궁금합니다!
    또, c언어와 c++은 결국 c++만 쓰게된다고 c언어 문법만 다시 공부하고 c++을 하라는 말도 들었는데 이에 대해서는 어떻게 생각하세요? 이미 c언어 하고있으니, 그냥 c언어만 진득하게 하는게 나을까요?
    질문이 너무 길었네요ㅠㅠ
    미리 감사합니다!

    • @포프티비
      @포프티비  Před 2 lety

      답이 늦었지만 이런 질문에 대한 대답으로 제가 POCU 아카데미를 차리면서 공부 순서릉 정해놓은 게 있습니다. pocu.academy 로 가시면 제일 아래쪽에 로드맵 링크가 있는데 그걸 누르시면 그 순서를 보실 수 있습니다

  • @onecoregames1352
    @onecoregames1352 Před 5 lety +2

    현직 1년차 개발자입니다.
    현재 회사와서 c#으로 1개 프로젝트 완성하고 2번째 대형 프로젝트 c++과
    리눅스를 이용하여 서버개설완료후 클라이언트 개발중입니다.
    정말 제가 겪은 모든게 들어맞는 영상이네요. 처음 왔을때 뭣모르고 c#에서 contains함수 남발하다가 발적화된 경험에 특히 매니지먼트에서 메모리릭이 일어나면 환장하겠더군요..
    찾는데 하루걸린적도 ... 어휴
    그리고 리눅스로 서버 개설해서 CentOs에서 요 망할놈의 posix 멀티 쓰레드에서 동기화 문제때문에 뮤택스 세마포어 다 걸어가보고 나중에 상황에 따라 멀티쓰레드와 멀티프로세스와 입출력다중화는 상황에 따라 사용처가 많이 갈린다는 경험들.. 학교에서나 학원에서 배운거 돌이켜보니...
    언어 하나만 잘해도 평생 밥벌어먹고
    산다는 얘기도 들엇는데 다 개소리입니다.이게 언어 하나만 잘해도 밥벌어먹고 산다는 급이 어느정도인지도 모르고 학생들은 망연하게 그냥 언어 하나만 파는경우도 허다하죠. 데이터 베이스 서버 클라
    모든게 다 모여서 하나의 프로그램 서비스를 만드는데 저는 개인적으로 자신의 전공 1순위 기술은 지키며
    부로 나머지 전반적인 기술은 깔려야 된다고 생각합니다.

    • @포프티비
      @포프티비  Před 5 lety

      그래도 겪으시면서 발전을 꾸준히 하시고 계시는 것 같아 보기 좋습니다. 한 1년~2년정도만 그렇게 노력하시면 그 뒤부터는 그나마 조금은 더 심장이 쫄깃하는 일이 적게 개발하실 수 있지 않을까요? 우리 모두 힘냅시다!

    • @_________________________....
  • @dannyk6809
    @dannyk6809 Před 6 lety +5

    경험해본 사람은 알겠지만.. 메모리관리가 어려운 언어는 자동으로 메모리관리를 해주는 언어들입니다. 자바 개발로 먹고 살게되면 한번씩은 다들 넘어야하는 고비인 듯 해요

    • @정은철-o7t
      @정은철-o7t Před 5 měsíci

      내가 느낀거랑 똑같네요.. C/C++의 메모리 모델이 더 심플한데.. ㅋㅋ 요즘 입문용 언어로.. 파이썬, 자바스크립트 추천하는거보고.. 아니? 코딩 입문자들이 저거부터 배우면.. 이해가 됨? 라는 생각이..

  • @positoyy
    @positoyy Před 4 lety +1

    포프님, 면접에서 'unmanaged 언어가 갖는 장점이 뭐냐'는 질문을 받았습니다.
    저는 '메모리를 직접 관리하면 더 효과적으로 쓸 수 있다. 예를 들어서 반복적으로 할당/해제가 필요한 경우 미리 heap영역에 할당하면 할당/해제이 필요한 비용이 줄어든다'라고 답변했는데 사실 확신이 안 서더라구요. 좀 더 구체적인 사례가 있을까요?
    지금 좀 더 생각해보기로는...
    Java에서는 함수에서 처음 정의된 인스턴스들은 함수가 종료되기 전까지 메모리를 유지하기 때문에,
    해당 함수에서 인스턴스의 사용이 끝났더라도 함수의 종료 없이 stack 메모리에 함수 콜이 쌓여간다면 메모리가 허비됩니다.
    Java에서 GC를 이해한다면 인스턴스의 사용 범위를 파악하여 중괄호로 scope 를 지정해주거나 함수 단위로 쪼갤 수 있을 것 같고요.
    좀 더 구체적인 사례가 있을까요?
    레이서 사례도 그렇고 추상적으로 이해하지만 와 닿는 사례가 없는 것 같습니다. 아래에서도 동의하지 않는 분들이 보이구요.
    okky.kr/article/724956?note=1997798

    • @포프티비
      @포프티비  Před 4 lety +6

      일단 제가 답변하기 조금 애매한 질문을 주셨는데요. 그래도 솔직히 답변드리겠습니다. (상처받지 마세요)
      1. 질문자의 실제 의도
      질문자의 의도는 단순히 언메니지드 언어를 잘 이해하냐가 아닌 것 같습니다. 그 보다는 매니지드/언매니지드 하에서의 메모리 관리 원리를 잘 알고 있느냐 같습니다. 그런 질문을 물어보는 이유는 코드를 작성할 때 그 코드가 도는 원리가 뭔지를 고민하는 사람을 뽑고 싶어서겠죠. 왜냐면 원리를 고민하면 코드를 작성하는 사람들은 하나를 가르쳐줘도 그와 비슷한 10개의 문제를 스스로 해결하지만, 그렇지 않은 사람들은 그 10개의 문제를 다 다른 문제로 인식해서 그 10개를 다 가르쳐줘야 하거든요.
      (okky의 댓글에서 동의하지 않는 분들은 면접관이 이런 질문을 하는 이유를 파악하려도 하지 않은 채 '매니지드 언어도 충분히 좋다'라는 말만 하고 있는 거 같습니다. 결국 문제의 본질을 보려고 고민하는 사람들은 아니라는 거죠. 이런 글들을 보는 건 본인에게 별로 도움이 되지 않는다고 생각합니다. 뭐 그 외에 fact하고 다른 이상한 이야기도 섞여 있으나 그거 하나하나 제가 지적하진 않겠습니다. 커뮤니티가 제대로 돈다면 그런건 자정작용으로 해결되야 하거든요. 따라서 okky 와 관련된 이야긴 여기서 마치겠습니다)
      2. 잘못 대답하신 부분
      면접에서 하신 답변으로 미루어볼 때, 언매니지드/매니지드 언어에서 메모리 관리가 어떻게 이뤄지는지 확실히 이해하고 계신 것은 아닌듯 합니다. 아래 몇 가지 예를 들겠습니다.
      a) 범위(scope)_가 넘어간다고 Java에서 그 메모리를 곧바로 지우지 않습니다. 실제 GC가 간간히 깨어나서 작동하기 전까지는 그 메모리는 유지됩니다.
      b) 언매니지드 언어에서 다른 함수를 호출하기 전에 메모리를 지울 수 있는 경우라면 java에서도 그 함수 호출전에 null을 대입하는 방법으로 동일한 일을 할 수 있습니다.
      c) 언매니지드 언어의 할당 비용이 매니지드 언어보다 작을리는 없다고 합니다. 그 보다는 해제의 비용만 작습니다 (GC의 작동 원리를 알면 대답 가능한 부분)
      3. 언매니지드 언어의 장점
      언매니지드 언어의 장점 결국 예측가능성이라고 봅니다. 언매니지드에서는 정확히 메모리 할당/해제가 일어나는 시점을 프로그래머가 control할 수 있습니다. 매니지드에서는 물가능하고요
      한 프레임(update() 함수 한번 호출마다)에 메모리 해제를 1000번씩 하는 프로그램을 작성해봅시다. 그러면 언매니지드 언어에서는 한 프레임마다 정확히 1000번의 메모리 해제가 일어나며 해제에 그만큼의 시간이 들어갑니다. 이게 한 0.01초가 걸린다고 해보죠. 그에 비해 매니지드 언어에서는 사용하지 않는 개체가 매 프레임마다 1000개씩 나옵니다. 하지만 실제 메모리 해제는 안하기 때문에 전혀 시간이 들지 않습니다. 그러다가 갑자기 100번째 프레임에 GC가 작동을 하며 모든 개체를 지운다고 해봅시다. 그러면 못해도 1초(0.01초 x 100 프레임)의 시간이 걸리겠죠. 이게 의미하는 바는 언매니지드 언어에서는 언제나 모든 프레임이 동일하게 작동하며 스무스한 애니메이션을 보여주지만 매니지드 언어에서는 100프레임마다 1초씩 멈칫~ 하는 현상이 나온다는 거죠. (안드로이드 게임을 하다보면 가끔씩 멈칫 하는 프레임이 나오는 이유가 이 때문이기도 합니다)
      따라서 매니지드 언어는 실시간 응용프로그램에서는 제약이 있습니다. 이런 걸 해결하는 최적화 기법 등이 여러개 들어왔지만 완벽한 것은 없습니다. 몇가지 키워드를 드리겠습니다.
      a) seasonal GC
      b) 멀티스레드 에서 도는 GC: 단 이미 응용프로그램이 모든 스레드를 사용하고 있을 경우, 역시 멈칫 현상은 발생할 가능성이 큽니다.
      4. 매니지드 언어에서의 누수 문제
      매니지드 언어도 메모리 누수가 납니다. 언매니지드 언어하고 다른 방식으로 날 뿐 여전히 있습니다. 언매니지드 언어에서 발생한 메모리 누수는 매니지드 언어에서 발생한 매모리 누수보다 훨씬 찾기가 쉽습니다. (언매니지드 언어이기에 그걸 막기위한 베스트 프랙티스가 존재하고 그걸 따르라고 조언을 하니까요. 즉 패턴이 정형화 되어 있음) 그에 비해 매니지드 언어에서의 메모리 누수는 찾기도 어렵고, 해당 커뮤니티에서 GC의 작동법을 제대로 아는 프로그래머들의 비율도 적어서 '그냥 서버 재부팅하세요', '서버 수를 늘리세요' 등의 답을 내놓으면서 그게 해법이라고 말하죠. 참고로 서버 재부팅이나 서버 수를 늘리는 것은 뭐든간에 회사의 운영비를 높이는 방법입니다. (실제 꽤 규모큰 전자상거래 서버 개발을 한 경험에서 드리는 말씀). 따라서 꼼수지 올바른 해법은 아니죠.
      5. VM의 문제점
      매니지드 언어는 VM에서 실행될 수 밖에 없습니다. 그리고 그 VM은 특정 운영체제마다 설치하는 프로그램 입니다. (이 프로그램 위에서 내가 작성한 코드를 실행하는 게 전부죠. 잘 이해 안되신다면 게임 에뮬레이터와 비슷한거라 생각해주세요). 일반 데스크탑 OS 용 VM은 큰 문제가 없습니다. 하지만 데스크탑이 아닌 다른 기기 (예: 임베디드, IOT 등)용 VM은 지원 안되는 기능들도 툭하면 있고 GC도 매우 느린 경우도 많습니다. 지원 안되는 기능이 있을 경우 데스크탑에서는 제대로 작동하던 코드가 어떤 기기에서는 작동을 안하며(컴파일은 다 된 코드), GC가 느리면 데스크탑에서는 프레임속도의 0.1%만 걸리던 메모리 해제 속도가 여기서는 200%가 들 수도 있습니다.
      6. 기타
      위에서 드린 장/단점은 지금 제가 생각나는 현상들을 말씀드린 겁니다. 그러나 시작은 결국 GC가 작동하는 법에서 기반하며 다 필요할때마다 논리적으로 도출해낼수 있는 결론입니다. GC란 결국 C/C++에 있는 기능들로 누군가가 만든 기능이죠(실제 C++에서 작동하는 GC를 구현한 라이브러리도 있습니다.) 그 내부가 어떻게 도는지 아는 사람들은 제가 위에서 말씀드린 부분을 쉽게 생각해낼 거고요. 아닌 사람들은 그게 안 되면 여러가지 방향으로 답을 내놓을 것입니다. 몇 가지 예를 다시 들어드립니다. 어떤 사람들이 정직하게 올바르게 개발자로 살고 있는지는 본인이 스스로 판단해보시면 좋겠습니다.
      a) '이건 제가 정말 모르는 분야네요. 더 잘 아는 사람에게 물어보세요'
      b) '이런 건 개발자에게 필요 없는 거에요..' (그러나 실제 더 잘하는 다른 개발자가 해결함)
      c) '언어는 도구일 뿐입니다. 모든 언어는 똑같아요' (그러면서 굳이 자기가 사용하는 언어만 두둔함)
      d) '언매니지드 언어는 과거의 산물이고 죽어가고 있습니다.' (20년 넘게 반복된 말. 하지만 프로그래밍 언어 1위는 현재 C. Tiobe 기준)

    • @_________________________....
      @_________________________.... Před rokem

      @@포프티비 😀

  • @danielnam8298
    @danielnam8298 Před 5 lety +3

    ㅋㅋㅋㅋ솔직히 여기서 은근 c언어 부심 있는 사람들 좀 보이는데 학생여러분은 잘 생각하셔야돼요. c언어가 중요한 언어는 맞지만 개발분야에따라 도구를 다르게 씁니다. C언어 안배워도 매니지드언어를 주력으로 쓰더라도 관심만 가지면 포프님이 말씀하시는거 이해할 수 있어요 단지 c언어 공부하면 좀 더 도움이 된다 정도로만 받아들이면 적당할 듯 하네요
    그리고 파이썬 공부하라고 하시는 분들도 많은데 이것도 같은 맥락에서 잘 생각해보셔야하는게 본인이 데이터과학이나 인공지능같은 연구에 관심이 없다!? 라면 파이썬은 필수 공부대상이 아니에요. 분야마다 적절한 언어가 있습니다. 제발 잘 생각해보셔야 합니다. 그렇다고 비주얼베이직같은거 하시면 안되구요ㅜㅜ

    • @w30k37
      @w30k37 Před 5 lety +1

      비주얼베이직은 왜요?

  • @jwlee4484
    @jwlee4484 Před 5 lety

    어쩌다 봤는데 끝까지 봤네요. 중간에 레이서로 설명해주신 부분은 정말 좋은 비유 같아요.
    프로그래밍뿐만 아니라 모든 '것'을 사용함에 그 것을 이해하고 사용하는 것과 안하고 하는것은 큰 차이가 있다고 생각해요

  • @jihwan816
    @jihwan816 Před 6 lety

    현재 C++ 프라이머 교재로 씨플플 공부중인데 혹시 추천해주실 C++ 교재 있으신가요?
    그리고 현재 다이렉트 x12 를 프랭크 루나라는 사람이 쓴 책으로 공부중인데, 다이렉트x를 처음부터 12로 입문해도 괜찮을까요? 원래 외국 포럼에서 x11 이 입문하기에 더 낫다고 해서 그걸로 가려 했으나 x11 교재에 실린 소스들이 더 이상 작동이 안 된다고 해서 그냥 12로 공부중인데 포프님은 어떻게 생각하시나요? 또 다른 한가지는 혹시 포프님 마소에서 나온 windows internals 읽어보셨나요? 현재 어셈블리어를 읽을 줄 아는데 이 책을 읽으면 리버스 엔지니어링을 공부하는 데 필요한 기반 지식은 충분하다고 생각하시나요?

  • @user-ej3tc6hv1x
    @user-ej3tc6hv1x Před 5 lety +2

    매우 동감합니다.
    사실 C/C++을 먼저 해야 하는 것은 컴퓨터 아키텍처에 대한 이해를 바탕으로 프로그래밍을 해야만 한다고 생각하기 때문입니다.
    그런데 컴아키텍트를 이해하는데 C/C++ 만한게 없죠.
    깔끔한 정리 좋았습니다.

  • @coderxdox
    @coderxdox Před 2 lety

    말씀하시는 내용의 깊이가 정말 대단하신것 같아요 ㅎㅎ

  • @totoro013
    @totoro013 Před 5 lety

    언매니지드 언어를 깊게 배우면 컴퓨터의 동작원리를 파악하기 좋다는건 잘 알겠습니다만,
    말씀하셨던 내용 중,
    시스템 구조와 CPU, 메모리 작동 방식같은 개념과 cpu 아키텍쳐별로 효율을 높일 수 있는(?)
    프로그램 설계법같은 이런 개념들은 어떻게 배울 수 있나요?
    혹시 참고하기 좋은 서적이나 강의같은게 있다면 추천 부탁드립니다..
    그리고 제가 포큐아카데미에서 C++강의를 수강할 예정입니다. 혹시 그 강좌에 위에서 언급한 개념들도 잘나오나요?

    • @포프티비
      @포프티비  Před 5 lety

      포큐 의 모든 과목은 언제나 하드웨어 작동방법을 염두에 두고 진행합니다. 따라서 어떤 과목을 들으시던 '프로그래밍 할 땐 이래이래야 한다'라는 말을 하는데 그게 하드웨어 를 고려한 방법이죠.
      실제 하드웨어가 도는 방법을 직접적으로 설명하는 과목은 아직 오픈안 한 컴퓨터 구조가 있으며 그 다음으로 가까운 과목은 운영체제, 어셈블리어, 씨 언어 순인데.. 씨 언어는 곧 공개합니다.

  • @menba3237
    @menba3237 Před 3 dny

    지나가던 컴공학부생입니다 잘들었습니당

  • @코더-g2w
    @코더-g2w Před 6 lety +3

    저는 현재 작은 IT 회사에서 1년 조금 넘게 일하고 있습니다.
    신호처리를 주로 다루는 회사라 C#도 쓰지만 C언어를 많이 쓰는데, 메모리 관리가 정말 핵심입니다.
    저희 회사에서 사용하는 코드들을 보면 다른 모든 객체에 들어가는 메모리 관리 객체가 있고, 부분적인 객체를 관리하는 상위 객체가 있어서 부분적인 객체들을 동적할당/해제 하여 효율적으로 메모리 관리하게끔 짜여 있습니다. 이걸 배운게 정말 도움이 많이 되었지요.. 정말 대학교에서는 상상도 할수 없던...코딩방법

  • @박재현-t6e
    @박재현-t6e Před 5 lety +1

    좋은말씀 감사합니다.
    C/C++ 공부에 박차를 가하도록 하겠습니다.

    • @포프티비
      @포프티비  Před 5 lety +2

      포큐 아카데미에서 최고의 씨/씨뿔뿔 상의사 있다던데... (광고 중...)

    • @박재현-t6e
      @박재현-t6e Před 5 lety

      @@포프티비 pocu.academy/ko/Courses/COMP3200
      이거 맞나요 ㅎㅎ
      학부생이라...금전적 여유가 있다면 듣고싶네요 ㅜㅜ

    • @포프티비
      @포프티비  Před 5 lety

      @@박재현-t6e 맞습니다 호호호 ^_^

  • @taylorshin
    @taylorshin Před 3 lety

    Rust 도 공부를 해보니까 포인터를 알아야 기본 구조를 이해 가능하더군요.
    그런데 파이썬은 매니지드 언어이기는 한데 요즘 많이 구인하는 노드JS 같은거에 비해서 언어라고 할 수 있을지 모르겠네요.
    어쨋든 파이썬도 c로 바꿔주는 익스텐션(예를 들어 cython 등)으로 내 스크립트를 변환해보면 생각보다 배울 것도 많고 재미있더군요. 물론, 이런저런 부분은 빼도 좋겠다 라는 생각도 들고.
    저 같은 경우는 전공이 프로그래밍은 아닌데 이러저러해서 프로그램을 좀 배우게 되었습니다. 반도체 시뮬레이션을 돌려야 하는데 90년대 쓰던 코드를 현재 64비트에 돌리려고 컨버젼도 해 보기도 하고 그러다 간단한 링크드 리스트 등등 구현해 보면서 C를 배웠죠...
    한편, 전자과 학부에서 수강했던 컴퓨터 구조론(CPU 설계, 당시 교과서는 MIPS를 가지고 수업)과 8051 실습 등이 어셈블리였다는 걸 알게 되니 먼 Exception 이 어쩌구 저쩌구 하는 추상적인 언어보다 C같은 언어들이 더 재미있어 지더군요.

  • @tonymak4029
    @tonymak4029 Před 6 lety +1

    예를들어 C 언어를 지금부터 혼자 공부한다고 하면 어떻게 하는게 좋을까요??책을 사서 보는게 좋을까요 아니면 인강을 듣는게좋을까요?? 인강이나 책 추천 해주실게 있으면 부탁드립니더

    • @JongDeu
      @JongDeu Před 6 lety

      열혈강의 C 추천합니다 ㅋㅋ 오래되긴 했는데 - 18학번 새내기가..

  • @ddongheyy
    @ddongheyy Před 6 lety +11

    포프님 만나서 다행이에요 ㅎ

  • @Yorkie-l6o
    @Yorkie-l6o Před 7 měsíci

    언젠가 저도 포프님처럼 인정받는 프로그래머가 되고 싶습니다.. 꿈이 없어서 몇년을 혼자서 괴로워 만하다 코딩을 접하고 꿈이 생기고, 목표가 생기고, 소망이 생겼네요.. 코딩을 접한지 2개월밖에 안된 침팬치이지만.. 비전공자 이기에 앞길이 매우 절망적이고 힘들거라고 각오하고 꾸준히 달려볼려고 합니다..
    사실 그냥 포프님의 영상이 우매한 저에게 등대같이 방향을 알려주는거 같아 너무 감사하다는 말을 드리고 싶었습니다.

  • @jws1837
    @jws1837 Před 3 lety +3

    아키텍트급으로 올라가기 위해서는 언어가 대신해주는 추상성까지 알아야 한다.

  • @sanzzi-b5d
    @sanzzi-b5d Před 2 lety

    주 언어는 있을 수 있지만 모두 다뤄야하죠 어쩔수없이..
    언어를 무엇을 배울지 어떻게 배울지 보다는 문제를 파악하고 해결해나가는 방법이 중요한것같아요

  • @charlotte2010ful
    @charlotte2010ful Před 4 lety +1

    프론트엔드 지망하고 있습니다. C언어 배우고 다른 언어 배우는게 훨씬 편해졌어요. 기회가 된다면 C는 정말 1년 정도 배우고 싶습니다.

  • @user-ke3we3ut1l
    @user-ke3we3ut1l Před 6 lety +7

    파이썬도 깊게 배우는게 가능한가요? 최근 흥미로 기본적인 프로그래밍을 시작했고 파이썬이 쉽다고 해서 시작했는데
    말이 쉽다쉽다 해도 파이썬이 깊이가 얕은 언어인건 아니겠죠?

    • @포프티비
      @포프티비  Před 6 lety +8

      +na mu 파이썬 안쉬운데요.... 스페이스와 탭이 다른 역할을 한다는걸 아시나요... 눈에 보이지 않지만 실행이 안되는 상황이 나오죠...
      이런거 다 깊게 배울순 있습니다. 특히 파이썬을 쓰는 주이유인 넘파이 라이브러리를 깊게 배울수도 있고요.. 근데 그건 파이썬으로 쓰여진게 아니란게 또 함정 ㅡ.ㅡ

    • @user-ke3we3ut1l
      @user-ke3we3ut1l Před 6 lety

      역시 그렇죠? 인터넷으로 프로그래밍 언어를 추천 받아서 시작했는데 하나같이 파이썬이 쉽다쉽다 하더라구요; 깊게 배울 수 있다면 깊게 배우면 더 재밌을거 같아요

    • @user-kx2ed5xf1c
      @user-kx2ed5xf1c Před 5 lety +6

      자동차를 예로 들어본다면,
      수동변속에서 자동변속으로 넘어오면서 운전하기는 더욱 쉬워졌지만 변속기에 들어가는 부품과 기타 전자기기들은 더욱 복잡하고 정교해 졌습니다.
      자동변속차량으로도 얼마든지 레이싱 할 수 있겠지만 그정도로 복잡한 일들을 하는건 사용자가 얼마나 자동변속기와 엔진에 대해 잘 알고있는가의 문제이겠지요.
      운전을 쉽게하는것과 테크니컬하게 하는것은 엄연히 다른문제인거고, 파이썬은 자동 변속기를 달고나온 '운전하기 편한'자동차 이지만, 내부에는 강력한출력의 엔진으로 구성되어있어서 엔진의 특성만 잘 알면 시너지효과가 어마어마하다고 생각합니다.
      영상에서 나온 이야기들을 되풀이 해드렸습니다.

  • @dev-playing-gt
    @dev-playing-gt Před 6 lety +3

    군대가기 전에 학원을 다녀볼까 해서 상담을했었는데 자바를 굉장히 강조하길래 자바를 공부하고있는데(결론적으로 학원은 안다녔고 애초에 씨는 책한권정도맍공부했었음)
    요즘들어 단순 자바는 한국식 찍어낸 코더들인 것 같고 언매니지드의 중요성이 느꺼지네요!!

  • @user-br2oh1fe1k
    @user-br2oh1fe1k Před 6 lety +2

    포프님 안녕하세요. 우선 좋은 영상 감사드립니다. 얼마전에 포프님이 쓰신 입문자용 책을 다보고 재밌어서 언어를 더 배워보려고 합니다.
    밑에 댓글 다신 것 보니 시샵으로 입문하고 c, c++ 순을 추천한다고 하셨는데 시샵 입문은 포프님 책을 말씀하신건가요?
    책 보면서 재미 붙혔고, 더 공부하고 싶으면 c언어로 넘어가면 될까요?

    • @포프티비
      @포프티비  Před 6 lety

      아뇨. 이제는 C#을 처음부터 끝까지 훑는 책 한권 보시고 그 다음에 씨로 넘어가시는게 좋을 듯 합니다. :)

    • @user-br2oh1fe1k
      @user-br2oh1fe1k Před 6 lety

      포프TV 답글 감사합니다. 포프님 영상 덕분에 프로그래밍을 한번 시작해봤는데 책 보고나니 호기심이 더 커지네요.. 좋은 책 내주셔서 감사하고, 포프님 유튜브 영상도 앞으로 감사히 잘 보겠습니다 :)

  • @386compt
    @386compt Před 5 lety

    결국 자기가 어떤 일을 하느냐에 따라 적절한 언어를 선택할 수 있다면 된다고 생각합니다. 다재다능한 프로그래머라면 항상 많은 연장을 들고 골고루 쓸 수 있겠죠. 개중에는 스패너의 장인도 있을거고, 심지어 도구를 만들어내는 사람도 있을 겁니다. 근데 확실한건 도구를 써보고 만져봐야 도구를 알고 접근할 수 있다는 거겠죠