이번에는 신입 개발자가 쌓아야하는 역량에 대해서 알아보겠습니다.
자료구조
자료구조란 컴퓨터가 데이터를 효율적으로 다룰 수 있게 도와주는 데이터 보관 방법과 데이터에 관한 연산의 총체를 말한다.
여기서 자료구조는 다시 단순 자료구조와 복합 자료구조로 나뉘어지는데,
단순 자료구조는 우리가 주로 사용하는 int, String같은 프로그래밍 언어에서 제공하는 기본 데이터 형식을 말한다.
복합 자료구조는 다시 선형구조와 비선형구조로 나뉘게 된다.
선형구조는 말 그대로 순차적으로 연결되어 만들어지는 자료구조를 뜻하고 예로 들어 배열, Queue, Deque등이 있다.
비선형구조는 선형구조와는 다르게 비순차적으로 연결된 자료구조로 Graph, Tree등이 있다.
이런 자료구조를 왜 우리가 공부하고 알아야만 할까요?
첫째, 자료구조의 내부를 이해하면 엉뚱한 자료구조를 선택하는 일을 피해서 최대한 효율적으로 메모리와 처리속도를 높일 수 있습니다.
둘째, 알고리즘이 보다 더 효율적으로 사용할 수 있게 도와주는 핵심 부품 역할을 합니다.
알고리즘
알고리즘이란 컴퓨터가 따라 할 수 있도록 문제를 해결하는 절차나 방법을 자세히 설명하는 과정으로 컴퓨터를 더 효율적이고 빠르게 작업할 수 있게 하는 작업이라고 생각하면 된다.
대표적인 것들로는 탐색알고리즘 (DFS, BFS, 이진탐색), 정렬알고리즘(Quick, Counting, Merge)등이 있다.
알고리즘은 좋은 개발자라면 알고 있어야할 중요한 요소들 중 하나로 코드의 효율적이고 생산성을 높게 만들 수 있는데,
이런 알고리즘이나 자료구조들을 공부를 해도 정작 실전에서 사용하지 못한다면 그건 반쪽짜리 실력이라고 할 수 있다.
그래서 우리는 코딩테스트를 진행해야 한다.
코딩 테스트
코딩테스트는 소프트웨어 관련 기업에서 지원자의 기술적인 역량을 시험하기 위해 실시하는 알고리즘이나 직무 연관성이 있는 기술에 대한 구현 테스트를 의미한다.
이런 테스트들을 나는 굉장히 많이 해야한다고 생각한다. 특히 나같은 예비 개발자들에게는 필수라고 할 수 있다.
왜냐면
첫째, 바로 코딩테스트를 하면서 나의 부족한 자료구조나 알고리즘에 대해서 파악할 수 있다.
둘째, 기업에 들어가기 전 준비연습이 된다.
마지막으로, 내가 작성하는 코드들을 좀 더 효율적으로 사용할 수 있는 연습이 되기 때문이다.
'ZeroBase' 카테고리의 다른 글
앞으로의 백엔드 공부 계획 (feat. 백엔드 공부법) (1) | 2024.02.08 |
---|---|
백엔드 커리어 로드맵 - 어떤 백엔드 개발자가 되고 싶은지 (1) | 2024.01.30 |
프론트엔드와 백엔드의 차이 - 백엔드 개발자가 되고 싶은 이유 (0) | 2024.01.22 |