본문 바로가기
자료구조 | 알고리즘

자료구조와 알고리즘을 공부해야 하는 이유 + 코딩 테스트 사이트 공유

by 워니 wony 2019. 7. 12.

요즘에는 비전공자이지만 개발을 공부해서 직업으로 삼는 사람이 늘어나고 있다.


개발 분야가 핫하기도 하고, 점점 더 많은 인력이 필요한 분야이다 보니 전공자 뿐만 아니라 비전공자들도 많이 도전을 하고 있는 추세로 보인다.

나도 비전공자로 개발에 대한 전체적인 내용을 공부하고 취업한 케이스이다 보니, 개발자 면접을 볼때 부족한 부분을 느끼기도 하고 주변 개발자 분들이 조언을 해주는 경우가 많았다. 3년차 정도 되거나 고급기술을 사용해야 하는 경우에 부족함을 느끼고, 개발 이론 관련해서 다시 공부를 하게 된다는 이야기를 말이다. 하여 컴퓨터 공학에 관심을 가지게 되고, 결국 다시 공부하게 되는 분야에서 대표적인 것이 자료구조와 알고리즘이다.

개발자 초기에는 기획에 맞게 데이터를 나오게 하는 것 만으로도 대단하다고 느껴지고, 기존에 있는 코드를 활용하여 구현하는 것만으로도 충분하다고 느껴지지만, 점차 기능 구현뿐만 아니라 효율이 좋은 코드를 짜는 것에 관심을 가지게 되고, 그 때 자료구조나 알고리즘의 필요성을 느끼게 된다.

거기다가 신입개발 채용 과정에서 코딩테스트를 하는 경우가 많다.

코딩테스트는 해보면 알겠지만 보통 자료구조와 알고리즘 문제가 나오는 경우가 많다. map, list, queue 등 자료구조를 활용하여 결과값을 도출하는 것이 일반적이다. 코딩테스트는 값만 나오는걸 평가하는게 아니라 성능에 대해서도 평가를 같이 하게 된다. 해당 코드를 돌렸을 때 시간이 얼마나 소요 되는지 등도 평가가 같이 된다. 거기다 모두가 가고 싶어 하는 네카라쿠베 같은 유명한 회사들은 코딩테스트를 거의 보고, 대부분이 자료구조, 알고리즘 관련 문제가 나오고 있다.

 

그렇기 때문에 신입부터 경력까지 프로그래밍의 기본이라고 하는 자료구조와 알고리즘에 대한 이해가 중요하다.

 

 


프로그래밍을 해봤다면 자료구조를 사용해 봤을 것이다. 자료구조는 리스트, 스택, 큐, 트리 등을 말한다.

프로그래밍 기초를 배울 때 각 자료구조에 데이터를 넣고, 삭제하는 등의 작업을 기본적으로 배우게 된다.
허나, 각 자료구조에 따라 특징이 다르고, 성능이 다르기 때문에 이러한 것을 제대로 알고 있어야 성능이 좋은 코드를 작성할 수 있다. 그래서 데이터를 넣고 빼고 단순하게 사용할 줄 아는 것 뿐만 아니라 각 자료 구조마다 성능과 특징에 대해 제대로 아는 것이 중요하다. 


그리고, 알고리즘!

알고리즘이 무엇인지 생각해 보면 막연하게 어렵게 느껴지지만, 알고리즘은 표현 및 저장된 데이터를 대상으로 하는 '문제의 해결 방법'을 뜻한다. 배열에 담긴 점수의 평균을 구해야 한다면, 평균을 구하기 위한 방법의 코드는 알고리즘적 코드라고 할 수 있다. 

 

어떤 자료구조를 사용하느냐에 따라 문제 해결 방법이 달라지고, 성능도 달라지기 때문에 자료구조와 알고리즘은 같이 공부하는 것이 좋다.

 

왜 중요한지 알았지만 어떻게 공부를 시작 해야 할지 막막할 수밖에 없다.

자료구조와 알고리즘 관련된 서적을 먼저 보는 것도 좋고, 유튜브나 코딩테스트 사이트에서 공부를 하는 것도 좋은 방법으로 보인다.

나는 우선 코딩테스트를 한번 해보면 본인이 얼마나 알고 있는지 알 수 있어서 코딩테스트를 먼저 해 보는 것을 추천한다.

 

우선 오늘은 코딩테스트 연습을 할 수 있는 사이트를 공유하고 마무리 하려고 한다.

모든 비전공 개발자들 아자!

 

프로그래머스 코딩테스트 site GO!
 



 

 

반응형

댓글