개발자가 자료구조와 알고리즘을 알아야 하는 진짜 이유
안녕하세요.
로스윗의 코딩캠프에 오신걸 환영합니다.
오늘은 개발자가 자료구조를 왜 공부해야 하는지에 대한
포스팅을 진행해볼까 합니다.
바로 시작해보겠습니다~!
- 개발자가 자료구조와 알고리즘을 알아야 하는 진짜 이유
1. 코딩 테스트
보통의 IT기업에 서류전형이 통과하고 나면
쿠팡이나 네이버 등 대기업에서는 코딩테스트 라는 것을 봅니다.
이때 자료조사에 대한 베이스가 없으면 많이 힘들 수 있습니다.
코딩테스트 뿐만 아니라 면접에서도 자료구조에 대한 질문을 하기도 합니다.
예를 들면 array list랑 linked list의 차이를 내부구현 관점에서 설명하시오. 라던가
아니면 어떤 Merge sort의 시간복잡도를 증명하시오. 이런 질문이 면접에서 나올 수 있습니다.
2. 현업 문제 해결
단지 코딩테스트나 면접이나 취업만을 위해서 자료구조를 공부해야 하는 건 아닙니다.
여러분이 취업을 하시게 되면 본격적으로 개발자로서 일을 하시게 될 텐데
현업에서 알고리즘이나 자료구조를 모르면 해결할수 없는 문제를 직면하는 경우가 있습니다.
10에 8~9정도는 몰라도 문제 없이 해결할 수 있을 수 있습니다.
그런데 그 한 번을 만났는데 그 때 알고리즘이나 자료구조를 몰라서
프로그램을 완성시킬 수 없다면 의미없는 프로그램이 되겠죠.
또 자료구조의 실제 내부 동작 과정을 모르고 사용하게 되면
말 그대로 자료구조를 잘못 사용하게 되는 경우가 발생하겠죠.
잘못 쓴 자료구조 하나 때문에 프로그램의 성능이 굉장히 저하될 수 있고
반대로 자료구조를 적합하게 바꿔주는 것만으로 성능을 향상 시킬 수 있습니다.
3. 프로그램 성능 향상
여러분이 자바언어를 배우기 시작하셨다면 array list를 한번쯤은 보셨을겁니다.
만약 여러분이 수십억개의 데이터를 array list에 저장을 하고
필요할 때마다 list에서 data를 찾아와서 data를 써야 한다면 얼마나 시간이 걸릴까요?
그 동안은 그렇게 많은 양을 쓸 일이 없으니 생각해보지 못하셨을 수도 있습니다.
실제로 회사에서 일을 하게 되면 많은 양의 데이터를 필연적으로 관리하고 다루어야 할 일이 생길텐데
이때 자료구조를 모르고 무조건 array list만 쓴다면 문제가 발생할 수 있습니다.
우리는 한정된 시간과 공간내에서 우리가 원하는 결과를 최대한 빠르게 찾아낼 수 있어야 하고
그 기본에는 자료구조와 알고리즘이 있습니다.
물론 단순히 자료구조와 알고리즘만 안다고 해서 저절로 다 해결되는 건 아니고
말씀드린것처럼 모든 것의 기본이 되는 기초라고 할 수 있습니다.
그래서 앞으로 로스윗의 코딩캠프에서
최소한의 기본적인 자료구조와 알고리즘에 대해서 하나씩 천천히 알려드리도록 하겠습니다.
물론 강의만 듣는다고 해서 다 여러분의 것이 되진 않겠죠?
개인적으로 공부하는 시간도 꼭 가지셔야 합니다.
그럼 다음 포스팅에서는 자료구조에 대한 이론을 설명드리고
실습도 해보는 시간을 가져보겠습니다.
그럼 다음 포스팅도 기대해주세요~! 감사합니다!!
※ 추가설명
문과는 비전공자 출신으로 개발을 막 시작하신 분들이라면 프로그래밍을 하는데 있어서
문과의 공부스타일이랑 프로그래밍을 공부하는 방법은 많이 차이가 있습니다.
처음 공부를 시작할 때 포인트를 잘못 잡아서 힘들어하는 경우가 종종 있습니다.
그래서 자료구조를 공부하시면서 공부 스타일에 대한 패러다임을 많이 바꿀 수 있고
컴퓨팅적 사고능력도 많이 발달하게 됩니다.
비전공자 출신 개발자 여러분들
모두 화이팅!
'컴퓨터 공학 > 자료구조와 알고리즘' 카테고리의 다른 글
Arraylist(어레이리스트) 핵중요한 특징 3가지!! (0) | 2022.10.14 |
---|---|
그림으로 쉽게 이해하는 빅오표기법 시간복잡도 (0) | 2022.10.13 |
개발자 여러분, 빅오표기법이 헷갈리신가요? 확실하게 알려드리겠습니다! (2) | 2022.10.10 |
그림으로 쉽게 이해하는 자료구조와 알고리즘 차이 #2 (0) | 2022.10.09 |
그림으로 쉽게 이해하는 자료구조와 알고리즘 차이 (1) | 2022.10.08 |