저는 이번에 백엔드스쿨 과정을 경험하면서 자료구조에 대한 정리를 처음 해 봤습니다.
그러한 과정에서 이 자료구조는 어떤 특징이 있고 어떤 데이터를 다룰 때 유용할지에 대해서 생각해 볼 수 있었고 후에 나올 알고리즘과 코딩테스트를 접할때도 많은 도움이 되었습니다.
국비교육을 들을때 처음 자료구조에 대해서 공부했을때는 그냥 막연하게 아 이런게 있구나 하고 넘어가고 적용할때 왜 이 자료구조를 적용하는걸까 하는 생각은 들지 않았는데 어째서 이 자료구조를 적용했고 이것을 적용하면서 장점이 뭐가 있을까를 고민하면서 문제를 접하는 시각이 생겼고 코딩을 함에 있어서 자료구조는 단순하게 데이터를 정리할때 사용하는게 아니라 사고력을 높혀주고 내가 아는 지식을 알맞은곳에 활용하는 능력을 기르는데에도 도움이 되는 필수적인 덕목이라고 생각하게 됐습니다.
알고리즘 역시 국비교육에서도 접했던 내용입니다. 그러나 국비교육을 들을때는 알고리즘에 대한 비중이 그렇게 크지 않았고 이런 내용이 있다~정도로만 배우고 지나갔던것같습니다.
하지만 이번에 백엔드스쿨을 진행하면서 여러가지 알고리즘에 대해서 정확한 개념도 배우고 각 알고리즘을 적용한 문제들도 풀어보면서 앞으로 개발자가 되어서 내가 만들고 싶은 서비스를 만들고 싶다면 알고리즘을 모르고 시작한다는건 피라미드를 만들면서 도구하나없이 맨몸으로 돌을 하나씩 옮겨서 쌓겠다는 생각과 다를게 없다고 느꼈습니다.
내가 원하는 데이터를 뽑기 위해서 다양한 알고리즘을 사용할 수 있고 이러한 알고리즘을 사용하면서 일일이 처음부터 내가 원하는 데이터를 찾아야하는 것을 극단적으로는 중간 과정을 거치지 않고 거의 바로 찾을수도 있는 방법이 있는데 처음부터 끝까지 썡으로 찾는건 너무 비효율적이고 좋은 개발자로서의 자세가 될 수 없다고 느끼고 알고리즘에 대해서 깊이 있게 공부해야겠다는 다짐을 하게 되었습니다.
국비교육을 들으면서 접해보지 못했던 유일한 분야입니다.
물론 국비교육을 들을때도 백준이나 프로그래머스 등 다양한 사이트에 대한 얘기들은 들은적이 있었습니다. 하지만 아직 제대로 개념도 잘 모르는데 문제푸는게 무슨 의미가 있겠어 라는 생각으로 쳐다보지도 않았었습니다. 그러다 백엔드스쿨을 진행하면서 pre코딩테스트와 프로그래머스 기초반 스터디 등등 여러가지문제를 접하면서 코딩테스트에 대한 감각을 익혀볼 수 있었습니다.
하지만 제가 경험한 문제들은 진짜 말 그대로 기초 수준이었고 기업에서 진행하는 코딩테스트나 백엔드스쿨 월간고사 등 진짜 난이도있는 문제들을 경험하고나니 내가 지금까지 푼 것들은 준비운동에 불과했구나를 느꼈고 그러한 준비운동들도 점점 쌓이고 내가 풀 수있는 문제들이 늘어나는 것을 보면서 코딩문제 푸는것에 재미를 느낄 수 있었습니다. 이 경험들을 발판삼아서 나중에 가고싶은 기업이 생긴다면 기업에서 진행하는 코딩테스트에 무난하게 통과 할 수 있는 실력을 키우고 단순히 코딩테스트용으로 실력을 키우는것이 아닌 먼 훗날에 내가 직면할 문제에 실제로도 적용할 수 있는 실력이 되는것을 목표로 공부하겠다 다짐하게 되었습니다.