• Cyclohexa-1,4-diene · 962044 · 22/09/28 21:58 · MS 2020

    코딩 배울때 이해 안되는건 어떻게 하시나요..
    극 이해파라 타과목은 잘 풀리는데
    코딩은 와닫지가 않아요..

  • ✨컴공주✨ · 1052682 · 22/09/28 21:59 · MS 2021

    물고 늘어집니다. 일주일이 걸리면 일주일을 쓰죠. 그래도 안 되면 교수께 물어보구요. 가끔, 컴공을 전공한다는 녀석이 이런 것도 나한테 물어보냐고 장난삼아 꾸짖으시는 교수님들도 계시지만, 친절히 알려주십니다.

    전공자의 장점 중 하나라고 생각해요. 선배 전문가한테 모르는 걸 마음껏 물어볼 수 있는 기회랄까요.

  • Cyclohexa-1,4-diene · 962044 · 22/09/28 22:01 · MS 2020 (수정됨)

    오.. 멋지시네요..!
    감삼다
  • 홀붕 · 1153156 · 22/09/28 21:59 · MS 2022

    C++에서 함수에 파라미터 넘길 때
    void func(int a, int& b)라고 하면 & <- 얘는 무슨의미인가요?

    main함수에서 A,B가 int일 때 func(A, B) 하면 그냥 잘 동작하던데..

  • ✨컴공주✨ · 1052682 · 22/09/28 22:03 · MS 2021

    참조잡니다. 그러니까 값을 복사하면 비용이 들죠. 이게, 단순히 정수형 하나라면 모르는데 그게 만약에 1GB 정도되는 Image data라면? 아시겠지만, 함수 매개변수는 생명 주기가 함수 실행이 끝날 땝니다.

    하루살이한테 아웃백 식사를 대접하는 꼴이죠.

    하지만 참조자를 쓰면 얘기가 달라집니다. 그 Imagedata를 '참조하는 순간' 그 비용은 아예 사라지거든요. 왜냐하면, 그 매개변수에 복사된 녀석이 아닌 진짜가 들어가니까요.

    값에 의한 전달은 또 다른 옹고집이 들어가는 느낌이라면 참조에 의한 전달은 찐 옹고집을 들여보내는 느낌입니다. 2명이 들어가는 것보다 1명이 들어가는 게 비용이 낮죠.

    나중에, C++ 에서 이동시맨틱을 공부해보세요. 임시객체 이슈 하나 때문에 개발자들이 어느 정도로 고뇌했는지 알 수 있습니다.

  • 홀붕 · 1153156 · 22/09/28 22:05 · MS 2022

    아 python에서 배열을 다룰 때 직접 배열에 접근하는 것과 arr[:] 등을 통해서 copy를 만드는 것의 차이와 비슷한 느낌인가요 쓰고보니 조금 다른 느낌이긴 하지만..
    함수에 들어갈 때는 int B는 직접 들어가고 A는 매개변수로 복사된 녀석이 들어가지만
    함수 안에서 한 작업은 실제 A와 B에 적용된다고 보면 될까요 ?

  • ✨컴공주✨ · 1052682 · 22/09/28 22:08 · MS 2021

    Python에서 deep copy shallow copy 개념입니다. 옙 그렇게 생각하시면 됩니다. 다만, 참조자를 쓴 b는 생명주기가 main 함수가 닫힐 때 일 거고, a는 함수가 리턴되자마자 사라질 겁니다.

  • 홀붕 · 1153156 · 22/09/28 22:09 · MS 2022

    감사합니다
  • 호미들 · 1145945 · 22/09/28 22:42 · MS 2022

    이거 보고 컴공붕이 반수 의지를 다시 다지고 간다…

  • Sofia21 · 1143357 · 22/09/28 22:01 · MS 2022

    비전공자가 코딩하면 좋은 점 있나요

  • ✨컴공주✨ · 1052682 · 22/09/28 22:04 · MS 2021

    그 분야에서 코딩을 가장 잘하는 사람일 가능성이 높잖아요.. 그거라면 큰 이득 아닐까 합니다.

    앞으로 프로그래밍 이쪽은 더 뜰 거구요 ㅎㅎ

  • Sofia21 · 1143357 · 22/09/28 22:06 · MS 2022

    감사합니다.

  • 피어폰트 · 1164643 · 22/09/28 22:37 · MS 2022

    본전공 분야에서 자동화를 이뤄낼 수 있다는 것?

  • Ethereum · 1125665 · 22/09/28 22:06 · MS 2022

    인텔코어 13세대에 대하여 어떻게 생각하시나요

  • ✨컴공주✨ · 1052682 · 22/09/28 22:09 · MS 2021

    흠... 저는 잘 모르겠어용... 뭐 좋은 게 좋은 거겠죵

  • Ethereum · 1125665 · 22/09/28 22:11 · MS 2022

    답변 감사합니다

    혹시 상경이나 인문계에서 컴공 복전하는 분도 계시나요?

  • ✨컴공주✨ · 1052682 · 22/09/28 22:11 · MS 2021

    몇몇 있습니다. 심지어 미대 쪽에서도 있구요. 저같은 경우도 국문과에서 '전과'를 한 케이스입니다.

    수학만 된다면 문제될 것 없습니다.

  • ✨컴공주✨ · 1052682 · 22/09/28 22:12 · MS 2021

    이더리움... 블록체인 공부도 해보고 싶은데 도통 시간이 없네요... 블록체인은 아예 몰라서.... 근데 꽤 재미있어 보이던뎅

  • Ethereum · 1125665 · 22/09/28 22:15 · MS 2022

    오.. 상경계열 갈..? 문돌이인데 간혹 컴공과 복전하시는 분들 계신다하셔서 궁금해서 여쭤봤어요

    전과 정말 대단하시네요..ㄷ 국문과시면 문과이셨을꺼 같은데 학부 공부하시면서 힘드시진 않으셨을까요??

  • ✨컴공주✨ · 1052682 · 22/09/28 22:16 · MS 2021

    음... 딱히 힘든 건 없었지요 ㅎㅎ 수학 과목은 모두 A+이기도 했죠! 히히 근데 사실 수학보다 더 중요한 건 철학이나 국어 이쪽입니다.

    코딩에서 생각보다 '논리적 사고력'이 중요해서요. 국어를 잘 하는 사람이 코딩을 잘 할 가능성이 역설적으로 높습니다.

  • 홀붕 · 1153156 · 22/09/28 22:13 · MS 2022

    혹시 학부 몇학년이신가요

    제가 코딩 고수가 되는 날이 상상이 안가요

  • ✨컴공주✨ · 1052682 · 22/09/28 22:14 · MS 2021 (수정됨)

    2학년이에요 :) 코딩이야 '감각'의 일환이 아닌가 해요. 꾸준히, 오랫동안하면 안 될 건 없어 보입니다.

  • 홀붕 · 1153156 · 22/09/28 22:16 · MS 2022

    멋져요
  • ✨컴공주✨ · 1052682 · 22/09/28 22:16 · MS 2021

    우리 모두 고수가 되어보아요
  • 홀붕 · 1153156 · 22/09/28 22:17 · MS 2022

  • ✨컴공주✨ · 1052682 · 22/09/28 22:22 · MS 2021

    아 잠시만 홀붕님 제가 착각했어요. b도 매개변수라서 결국은 함수 리턴이 끝날 때 사라집니다. 다만 전달받는 과정에서, 값에 의한 복사가 일어나지 않는 거죠. 틀린 지식을 보내드릴 뻔 했네요. 깜짝이야..

  • ✨컴공주✨ · 1052682 · 22/09/28 22:25 · MS 2021 (수정됨)

    아시다시피 결국 함수라는 게 스택에 쌓이는 건데 리턴이 되자마자 스택에 있는 모든 데이터들은 Pop되지요. 다시 말하면, b 또한 그 안에 있기 때문에 결국은 사라집니다. 다만, 참조 형태이기 때문에 매개변수로 받아오는 입장에서 불필요한 메모리를 아낀다는 것이지요.

  • 홀붕 · 1153156 · 22/09/28 22:31 · MS 2022

    아 b라는 인자 자체는 함수 내에서만 존재한다고 생각하고 있었습니다. ㅎㅎ
    a는 전달받은 A라는 int를 새롭게 메모리를 할당하여 함수 내에서 사용 후 함수가 종료될 때 실제 A값에 적용한 뒤 사라지고,
    b는 전달받은 B라는 int 자체에 접근해 함수 내에서 작동한 후 함수가 종료될 때 b는 사라진다고 이해하면 되는거죠?
    따라서 int& b의 경우 추가적으로 함수 실행할 때 메모리를 아낄 수 있는 것이고요.

  • ✨컴공주✨ · 1052682 · 22/09/28 22:33 · MS 2021 (수정됨)

    맞습니다. 만약에, 함수 내에 있는 변수의 생명주기를 늘이고자 한다면 반환형식을 int가 아니라 int& 로 해주면 됩니다. 이 부분이랑 제가 헷갈렸어요.


    int& func(int& a)
    {
    a = 1;
    return a;
    }

    라고 한다면 함수가 끝나더라도 a는 여전히 살아있습니다. 이런 것이 필요하다면, 참조형 반환을 해주어야지요.

  • 홀붕 · 1153156 · 22/09/28 22:36 · MS 2022

    앗 그럼 저 경우에는 main함수에 이름이 같은 a 변수를 사용할 수 없는건가요?

    main함수에서 a는 함수 내에서 정의된 대로 계속 사용되는거죠?

  • ✨컴공주✨ · 1052682 · 22/09/28 22:38 · MS 2021

    네네 그건 아닙니다. 사용할 수 있어요. 다만 가독성을 위해서.... 그렇게는 안 하는 것이 좋지요.

  • ✨컴공주✨ · 1052682 · 22/09/28 22:39 · MS 2021

    참조자를 일종의 '별명'이라 생각하시면 됩니다. 또 다른 이름인 거죠. 원칙적으로 a의 별명을 a라고 얘기할 수야 있겠지만... 뭔가 헷갈리기 시작하죠.

  • 홀붕 · 1153156 · 22/09/28 22:39 · MS 2022

    아 그럼 a가 살아있다는 의미는 메모리 공간이 사라지지 않고 남아있는다

    정도로 이해하면 될까요

  • ✨컴공주✨ · 1052682 · 22/09/28 22:39 · MS 2021

    네 그렇습니다.

  • 홀붕 · 1153156 · 22/09/28 22:41 · MS 2022

    감사감사합니다!
  • Ethereum · 1125665 · 22/09/28 22:21 · MS 2022

    오르비 댓글에 더 이상 답변할 수 없다고 떠서 여기 남깁니다!

    친절한 답변에 진심으로 감사드려요
    편안한 밤 보내세요~

  • ✨컴공주✨ · 1052682 · 22/09/28 22:23 · MS 2021

  • 로피탈쓰는현우진 · 1141257 · 22/09/28 22:23 · MS 2022

    인공지능학과로 진학하면 대학원까지 생각해야겠죠,,,??
  • ✨컴공주✨ · 1052682 · 22/09/28 22:24 · MS 2021

    필수라고 보긴 해야죠.

  • PAKA9999 · 1094984 · 22/09/28 22:31 · MS 2021

    지금 html, css 공부하고 백엔드 공부중인데,

    온라인 강의같은 걸로 전문가 수준까지 끌어올릴 수 있나요??

    하루에 1~2시간씩 매일 공부하면요.

  • PAKA9999 · 1094984 · 22/09/28 22:33 · MS 2021

    대학은 컴공이 아닙니다.

  • ✨컴공주✨ · 1052682 · 22/09/28 22:34 · MS 2021

    매일 매일하면 안 될 거야 없지만, 전공자에 비해서는 꽤 힘든 길이라고 볼 수 있죠. 하지만 노력을 하는데 안 될 것이 뭐가 있겠습니까. 열정을 가지고 하루하루 하다보면 빛이 오겠죠. 응원합니다.

  • 란란란루 · 1080177 · 22/09/28 22:44 · MS 2021

    산업기능요원. 전문연구요원으로 빠지는 분들 많나요

  • ✨컴공주✨ · 1052682 · 22/09/28 22:49 · MS 2021

    그 케이스가 많지는 않은 걸로 알고 있습니다

  • Admitted · 994967 · 22/09/28 23:31 · MS 2020 (수정됨)

    이전글 봤는데 굉장히 열심히 사시는 거 같아서 질문드립니다.
    나태해지지 않을 수 있는 방법이 있을까요?
    제가 원하는 공부를 하는데도 불구하고 쉽게 나태해져서…

  • ✨컴공주✨ · 1052682 · 22/09/28 23:42 · MS 2021

    하이고야... 서울대생 분께 이런 말씀을 들어서 굉장히 겸손해지네요. 사실, 부족해서 열심히 사는 것이지요. 내 분수를 알기 때문에, 또 무엇인가에 대해 '안다'라고 말하는 것에 대한 무게감을 알기 때문에 그런 것 같습니다.

    한동안은, 모든 것에 대해 다 아는 척 자만하고, 스스로를 기망했던 적도 있었고, 내가 선택한 것만이 정답이고 그것과 조금이라도 다른 것이 있다면 오답이라고 규정했던 적도 있었죠.

    허나 서서히 공부를 해보니, 스스로가 볼품 없어지더군요. '아는 것'이 없다는 걸 어느 순간 알게된 셈입니다.

    잘못이라고 생각하지는 않습니다만, '공부'라는 과목에서는 실패자입니다. 실패자는 남에게나, 스스로에게나 참담할 정도로 가혹한 법이죠.

  • Admitted · 994967 · 22/09/28 23:45 · MS 2020

    멋진 말이네요 명심하겠습니다.
    저도 겸손하게 계속 공부해야겠네요….
  • 사는게 지쳐요 · 1165185 · 22/09/28 23:39 · MS 2022

    컴퓨터 전원 켜주세요
    죄송함다 노잼인 농담이에요
    미리해보는 수험생의 이른 걱정인데
    대학교에 옷 잘입는 사람 많나요?

  • ✨컴공주✨ · 1052682 · 22/09/28 23:43 · MS 2021

    예 많습니다... 특히 홍대라 그런지 더더욱 ㅎㅎ 약간 학교에 옷 잘입는 사람들이 넘 많아용

  • qoqaoskskx · 1099358 · 22/09/28 23:48 · MS 2021

    물리에 적성 하나도 안맞고 수학은 별로 잘 못하는데 컴공가면 엄청 고생하겟죠?

  • ✨컴공주✨ · 1052682 · 22/09/28 23:51 · MS 2021 (수정됨)

    수학은 잘하면 유리하긴 하지만... 못하더라도 큰 고통은 겪진 않습니다. 다만, 언어 능력이 뛰어나면 좋습니다. 언어라는 것이 결국은 절차를 기반으로 하거든요. 코딩도 결국은 절차입니다. 절차적 사고력이 본질이죠.

    그런 맥락에서, 사실 수학이나 물리보다 더 중요한 것은 철학적 사고라든가, 언어적 사고입니다. 개발을 하다보면, 개발자적 관점을 갖게 되는 건 누구에게나 자연스러운 일입니다. 하지만, 절차적 사고가 그 누구에게나 잘 열리는 것은 아닙니다. 훈련을 해야만 가능하죠. 그 과정에서 철학이나 인문학적 / 언어적 사고가 높은 쪽이 유리하단 말입니다. 덧붙여 수학도 물론 도움이 많이 되구요.