개발자

개발자에게 수학이란?

2022년 10월 15일조회 8,049

안녕하세요, 개발 공부를 하고있는 학생(?)입니다. 저는 대학1학년 때 중퇴 후 현재는 웹 개발 공부를 하고 있는데요, 학교를 그만둔 후로 따로 수학 공부를 한적이 없습니다만 처음으로 코딩테스트 연습을 하면서 수학적인 부분이 굉장히 코딩할때 도움이 되거나 필수적일 수 있다고 느꼈습니다. 역시 수학공부도 병행하면서 개발 공부를 하는게 좋겠죠? 근데 막상 공부하려니 어디서부터 어떻게 해야할지 모르겠어서 조언 부탁드립니다 선배님들. 참고로 웹개발로 진로를 확정 지은것은 아니고 게임개발, ai, 데이터분석, 블록체인 등등 여러분야에 관심이 있어서 아직 고민중입니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 5

인기 답변

이도행님의 프로필 사진

안녕하세요. 지나가던 개발자입니다. 결론을 말씀드리면, 수학을 하신다면 멀리 가실 수 있고, 수학을 안하셔도 개발자는 될 수 있다고 이야기 드리고 싶네요. 왜냐하면 필연적으로 프로그래밍하면서도 충분히 수학적 사고가 키워지기 때문인데요. 중요한건, 수학적 지식에 부딪쳤을 때 피하지 않고 호기심을 갖고 끈기있게 이해하시는 자세일 것 같습니다. 제 팁을 좀 알려드리면, 수학적 사고나 수학이라는건 단기간에 공부하기에 매우 어렵습니다. 동시에 내가 배우는 수학이 어떤식으로 활용되는지도 명확하게 알기 어렵죠. 때문에 꾸준히 프로그래밍 공부를 하시다가 보이는 수학을 꼼꼼하게 배우시는 탑-다운 방식의 꼬리 질문 공부법을 조금 추천 드립니다. 개인적으로 일찍 지치는 방식은 이런 방식입니다. AI를 위해서 무슨 수학을 해야하지? => 선형대수부터 해야하나? => 선형대수 첫장부터 펴본다 => 금방 지치게 됩니다. 허나, 탑다운 방식으로 하게 되면 나름 길이 보입니다. 정렬 알고리즘에 대해서 본다 -> 언어에 구현된 sort를 본다 -> 왜? 모든 언어에 구현된 sort는 퀵소트지? -> 퀵소트를 본다 -> 다른 정렬 법도 배워본다 -> 많은 소트 방법중에 퀵소트가 좋은 이유를 수학적으로 고민해본다 혹은 찾아본다 -> 이해하면 넘어간다. 이렇게, 탑에서 꼬리 질문을 하듯이 배우시면, 처음엔 시간이 매우 오래걸릴 수 있지만 많은 도움이 될것입니다. 꼬리 질문도 연습이 필요하니 다양한 질문을 만들어보시는것도 중요합니다. 특히나 요새는 이런 접근이 유튜브나 다양한 학습 도구가 있어서 가능한대요. 예를들면, AI를 보다가 선형회귀(Linear regression)이라는 표현이 나오면 이 용어에 대한 것을 이해하는 데 집중하고 이해하면, 넘어가는 것입니다. 알고리즘이나 자료구조도 비슷합니다. 그리고선 다양한 예시를 훈련하는 것입니다. 프로그래밍도 괜찮고, 수학적 예시들을 만드는 것도 좋을 것입니다. 너무 어려워서 이해가 안된다면 가능하면 이해가 되는 학습 도구(책, 유튜브, 전문가 강연등)을 찾아보시는게 좋습니다. 그게 5시간이고, 10시간이더라도, 이해하셨다면 대단하신 겁니다. 이 수학적 방식을 찾아내고 증명하는데 수많은 천재들이 수천년 동안 쌓아올린 지식이라는걸 잊지 않으셨으면 좋겠습니다. 추가로, 다양한 분야를 고민하고 계시다고 하시니, 분야별로 조금 수학적으로 보시면 좋은 부분도 이야기 드리면, 🌐 웹 개발 : 웹개발이라는게 범위가 매우 큰 분아랴서, 특정지을 수 없지만, 우선 알고리즘과 프레임워크등의 기본이 되는 대수학(Algebra)이 중요하지 않을까 싶습니다. 🎮 게임 개발 : 선형 대수(Linear Algebra), 특히 공간 관련된 Vector/Matrix가 중요한 분야입니다. 실제로 게임 개발쪽을 배우시다보면, 시작 자체가 카메라 스페이스, 로컬 스페이스, 월드 스페이스등 다양한 벡터 변환부터 시작합니다. 🧠 AI : 대수학(Algebra), 통계(Statistics), 미적분학(Calculus)등 현대의 AI는 최근 수학적 지식의 집합입니다(그리고 어디로 발전할지 모릅니다) 때문에 수학적으로 높은 수준의 이해도 뿐만 아니라 적용도 필요한 분야입니다. 그래서, 전략적으로 접근하시는게 좋은데, AI로 어떤 문제를 해결하고 싶으신지를 먼저 고민하시는게 중요하지 않을까 싶습니다. 예를들면, 단백질 구조를 찾는 AI를 만들려면, 수학, 생명과학, 컴퓨터공학을 모두 알아야 시작할 수 있습니다. 🔎 데이터 분석 : 통계학(Statistics)과 모델링(Modeling)이 우선 매우 중요합니다. 허나, 데이터 분석만 하는 개발자는 매우 소수일 것입니다. 데이터를 수집하고, 관리하고, 최적화하는 등 Database나 Data Wrangling과 Cleaning등과 관련된 지식도 매우매우 중요합니다. 🔐 블록체인 : 블록체인은 암호학(Cryptography)부터 시작됩니다만, 분산과 관련되서 컴퓨터 공학 관련 지식도 매우 중요합니다. 이것도 최근에는 다양한 분야랑 융합이 중요한 시기라서 어디에 활용하고 싶은지를 많이 고민하시는 것 또한 중요하다고 이야기 드리고 싶습니다. ----------------------- 저도 모든 분야를 다 알거나 전문적으로 해보진 않아서, 틀린 정보가 들어가 있을 수 있습니다. 하고 싶은 분야를 꾸준히 탐색하시고, 고민하시면, 저보다 더 좋은 답이나 지식에 도달 하실 수 있을 것 같습니다. 앞으로 멋진 개발자가 되시길 기대하겠습니다 :)

profile picture

익명

작성자

2022년 10월 15일

자세한 설명과 응원 정말 감사합니다:) 열심히 해보겠습니다!

인기 답변

DCode님의 프로필 사진

당신의 업무내용이 수학을 다룬다면, 수학 공부는 필수입니다. 이 중에서 선형대수 및 이산수학은 프로그래밍과 밀접한 관련이 있는 것으로 잘 알려져 있습니다. 대표적으로 많이 사용되는 분야는 영상처리이며, 게임 엔진을 직접적으로 다룬다면 심심찮게 수학 지식을 필요로 하는 문제들이 존재합니다. 다만 현업에서 사용되는 수학은 고등학교 수준의 어떤 문제풀이 공식같은 접근은 곤란합니다. 왜냐면 각자가 해야 하는 일의 특성이 다 다르기 때문입니다. 결국 수학적인 문제를 만났을 때의 해결방법은 계산능력 자체 보다는 문제에서 원하는 답을 이끌어 낼 수 있는 수식을 세울 수 있어야 하고, 그것을 프로그래밍 언어로 구사할 수 있는 사고방식이 필요합니다. 그런데, 사실 직접적으로 수식을 사용하는 수학의 문제가 아닐지라도, 이러한 식으로 접근하는 사고방식이 프로그래밍의 일반적인 사고과정에 해당합니다. 이것을 우리는 수학적인 사고 또는 문제해결능력이라 부릅니다. 따라서 프로그래밍을 한다는 것은 좋건 싫건 끊임없는 수학적인 사고과정을 한다는 이야기이며, 그렇기 때문에 입문하는 단계에서 수학적인 소양이 있는 사람들이 종종 처음부터 돋보이는 재능을 보이며 앞서나가게 마련입니다. 그리고 거꾸로 프로그래밍을 오랫동안 꾸준히 한 사람들이 수학적인 사고방식이 형성되는 경우도 많구요. 단순한 프로그래밍 언어 스킬 구사로 만족하신다면 굳이 수학을 깊이 공부하실 필요는 없습니다. 프로그래머에게 있어서 수학이란, 현업에서 사용될 수 있는 가능성을 염두에 두고 익히는 기술이자, 직무적 사고과정을 훈련시키는 도구로서 기능하는 정도로 만족할 수 있습니다. 한 편으로 분명하게 구분해야 할 것은 프로그래머와 컴퓨터공학 연구자입니다. 직업으로서의 프로그래밍 언어 구사자라면 앞서 이야기 드린 정도로 분명히 충분한 부분이 있지만, 후자라면 당연하게 훨씬 더 깊은 수학적인 능력이 필요합니다. 예를 들어당신이 논문 작성을 해야 하는 인공지능 연구자가 된다면, 수학은 오히려 프로그래밍 언어 구사 능력보다 더 중요한 도구가 되기도 합니다. 다만 프로그래머의 직업특성상, 어느정도 연구자의 성격을 가지는 직군들이 존재하기에 종사하는 분야에 따라 요구되는 수학적인 능력이 달라지게 됩니다. 그래서 많은 분들이, 능력있는 프로그래머가 되기 위해서는 수학을 해야 한다고 이야기하는 것입니다. 아주 단순하게, 당장 시험문제로 출제되는 이 복잡한 미적분을 어디다 쓰냐는 질문을 할 수 있겠습니다. 프로그래밍은 바로 그 문제를 해결할 사고과정과 능력이 필요한 일이기 때문입니다.

삭제된 사용자님의 프로필 사진

삭제된 사용자

2023년 01월 12일

예전에 애플커뮤니티에서 골빈해커님이 자기는 알고리즘이 뭔지도 모르는데 개발자로서 아무런 문제없다고 호언장담하는 글을 보고 댓글배틀이 붙은 적이 있었습니다. 단순히 수학이라고 말하면 수학의 정석과 입시지옥이 연상되는 분들도 있을테죠. 프로그래밍 분야에서는 수학보다는 문제해결을 위한 알고리즘이라고 표현하는게 적확할 듯 합니다. 물론 SW개발에 있어서 이미 수학적으로 완성된 알고리즘이 Library로 충분히 개발되어져 있기에 얼마나 빠르고 효율적으로 찾아 쓰느냐가 관건이라는 블로그 글도 읽은 적이 있습니다. 초보개발자라고 하면 아직 알고리즘 개발보다는 Standard Library에서 필요한 함수를 찾는데 더 많은 시간을 쏟는게 개발속도를 높이는데 도움이 되겠지만 좀더 나은 개발자나 SW architect를 Career path로 잡는다고 하면 알고리즘을 이해하고 개발할 수 있는 수학지식은 필수랍니다. 20년전 제가 벤처다닐 때만해도 Donald Knuth의 The Art of Computer Programming 시리즈는 회사마다 (장식용?!) 비치해 둔 책이었는데 한글로도 번역이 되어 있습니다. Concrete Mathematics라는 교과서도 있지요. 빌 게이츠는 위에 언급된 책들을 한번이라도 정독한 개발자가 있다면 무조건 뽑을거라고 할 정도였는데 SSAFY, Multi-it 에서는 언급조차 안되고 있는 실정이라 조금 안타깝기도 합니다. 물론 취업을 위한 단기 실무프로젝트 기반의 교육 커리큘럼 탓이기도 하고 No Code developer platform 까지 나와 있는 현재 상황을 보면 알고리즘 개발을 못해도 돈 많이 버는 직업으로 보일 수 밖에요. 하지만 Careerly가 추구하는 Human Nature인 ‘향상심’(spirit of improvement) 측면에서 볼 때 수학은 고급SW 개발자로 가는 지름길이라는 사실은 변하지 않습니다. 수학 못해도 공대가는 나라의 미래는 암울할 뿐입니다. https://biz.chosun.com/site/data/html_dir/2010/07/27/2010072700295.html 단편 지식은 홍수, 고등 지식은 가뭄 https://www.chosun.com/site/data/html_dir/2010/08/25/2010082502012.html 컴퓨터 프로그래밍과 코딩은 컴퓨터가 어떻게 작동하는지 알게 된다는 점에서 중요합니다. 하지만 코딩은 그냥 컴퓨터의 일부분일 뿐입니다. 논리적 사고와 귀납법, 수학적 소양 등이 먼저 갖춰져야 합니다. https://biz.chosun.com/site/data/html_dir/2017/09/19/2017091900399.html

문승욱(카이론)님의 프로필 사진

문승욱(카이론)

베스핀글로벌 Manager2023년 03월 18일

아트 오브 프로그래밍은 너무가셨는데요 ㅋㅋ

손유승님의 프로필 사진

머신러닝이나 통계분석 등 대규모의 복잡한 서비스를 개발하지 않는다면, 당장은 집합론을 공부하는 것을 추천합니다. 집합론은 if문의 조건을 설정할 때 큰 도움이 됩니다. 무한집합까지는 가지 않더라도, 수학과 학부생이 배우는 집합론의 처음 30%~50% 정도면 충분합니다. 집합론으로 논리적 사고력이 향상되었다면 그 다음은 정수론을 추천합니다. 물론 수학과 학부 수준으로 깊게 가기보다는 특히 나머지 정리와 합동식 위주로 공부하면 반복문을 짜는 데 큰 도움이 됩니다. 다만 보안, 특히 암호 알고리즘을 공부하려면 훨씬 더 깊이 들어가야 합니다.

커리어리 AI 봇님의 프로필 사진

안녕하세요! 개발 공부를 하고 계시는 분들에게 수학은 매우 중요한 역할을 합니다. 특히 게임 개발, AI, 데이터 분석, 블록체인 등과 같은 분야에서는 수학적 개념이 큰 도움이 됩니다. 다양한 분야에 관심이 있으시다면, 수학 공부를 병행하는 것이 좋습니다. 수학 공부를 시작하실 때, 기본부터 차근차근 공부하시는 것이 좋습니다. 다음과 같은 주제들을 공부하면 도움이 될 것입니다: 1. 이산수학 (Discrete Mathematics) : 컴퓨터 과학에서 중요한 개념들을 이해하는 데 도움이 됩니다. 집합, 논리, 그래프 이론 등을 공부합니다. 2. 선형대수 (Linear Algebra) : 벡터와 행렬을 다루는 수학의 한 분야로, AI와 데이터 분석, 그래픽 등에 매우 중요합니다. 3. 확률과 통계 (Probability and Statistics) : 데이터 분석, 머신러닝, AI 등에서 중요한 역할을 합니다. 기본적인 확률 이론과 통계적 방법들을 익히면 도움이 됩니다. 4. 미적분학 (Calculus) : 최적화 문제를 풀거나 머신러닝 알고리즘을 이해하는 데 도움이 됩니다. 기본적인 미분, 적분, 다변수 미적분학 등을 공부합니다. 5. 알고리즘 (Algorithms) : 컴퓨터 과학의 핵심적인 부분으로, 효율적인 알고리즘을 설계하고 분석하는 능력을 기르는 것이 중요합니다. 이러한 주제들을 공부하실 때, 온라인 강의, 도서, 학습자료 등을 활용하시면 좋습니다. 또한, 실습을 통해 수학적 개념을 코딩으로 구현해보시면 이해가 더 빠를 것입니다. 다양한 분야에 관심이 있으시므로, 각 분야의 기초 수학을 익힌 후에 어떤 분야에 집중할지 결정하시면 좋겠습니다. 화이팅하세요!

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

비슷한 질문 2

Q. 개발자를 하려면 수학을 어느정도 해야하나요?

안녕하세요 저는 중학교 1학년 이에요 제가 꿈이 개발자가 되는것입니다! 그래서 개발자가 되려면 수학을 어느정도 해야하나요? 지금 빨리 알아봐서 공부를 하고싶어요

잘 하면 잘 할 수록 좋습니다. 고등학교 이과 수학 수준으로 능숙하게 하시면 좋을 것 같습니다. 물론 개발 분야에 따라 더 필요할 수도 있고 덜 필요할 수도 있습니다. 개발을 위한 수학 공부를 하신다면 많이 알 수록 좋다고 말씀 드릴 수 있습니다만 단순히 학교 문제를 잘 푸는 수준의 수학 실력이 아니라 해당 수학 개념이 왜 필요하고 어디에 어떻게 쓰이는지 짚어가시며 학습하시면 좋을 것 같습니다.

외 1개 답변 보러 가기

Q. 수학공부를 해야될까요

공대2학년 웹과 모바일소프트웨어를 공부중인 학생입니다. 저는 프론트로 갈 생각입니다 그리고 제가 고3초반까지만 수학공부를 하고 여태까지 하나도 안해서 다 잊었는데 학교수업에 선형대수랑 확통 등이 있네요 물론 전공선택이라 무조건 들어야하는건 아닌데 나중에 개발자가 되는데 필수적으로 들어야하는거면 방학때 수학공부를 따로 해서 들을생각입니다. 지금 현업에서 개발하시고 있는 선배님들 선형대수, 확통이 필수+개발할때 쓰이는지 아니면 알고리즘 풀면서 모르는 수학내용알아가면서 해도 상관없는지 알려주시면 감사하겠습니다.

웹과 모바일 소프트웨어 개발자가 되기 위해 꼭 필요한 수학 지식은 다양합니다. 일반적으로 웹개발자나 모바일 개발자가 되기 위해서는 선형대수학이나 확률 및 통계 등의 수학 지식이 꼭 필요하지는 않습니다. 그러나 이런 수학 지식들은 다양한 곳에서 활용될 수 있습니다. 1. 알고리즘 이해: 선형대수학이나 확률 통계 등의 수학 지식은 알고리즘을 이해하고 구현하는 데 도움이 됩니다. 특히 데이터 구조와 알고리즘에 대한 깊은 이해는 프로그래밍 효율성을 높이는 데 큰 도움이 될 수 있습니다. 2. 기계 학습 및 데이터 과학: 만약 인공지능(AI)이나 데이터 과학에 관심이 있거나 향후 이 분야로 이동할 계획이 있다면, 확률 통계, 선형대수, 미적분 등의 수학 지식은 필수입니다. 3. 그래픽스 및 애니메이션: 만약 게임 개발이나 복잡한 UI/UX 개발에 관심이 있다면, 선형대수학(벡터, 행렬 연산 등)은 매우 중요합니다. 결국, 수학 공부의 필요성은 당신이 어떤 분야의 개발자가 되고 싶은지, 어떤 종류의 문제를 해결하고 싶은지에 달려 있습니다. 하지만 어떤 경우든지, 수학은 문제 해결 능력과 논리적 사고 능력을 키우는데 큰 도움을 줍니다. 따라서 만약 시간이 허락한다면, 기본적인 수학 지식을 공부하는 것을 추천드립니다. 알고리즘을 공부하면서 필요한 수학 지식을 익히는 것도 좋은 방법입니다.

이 질문 바로 가기

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!