본문 바로가기

🌈 일상/백엔드 개발자 다가가기

백엔드 신입 개발자가 쌓아야 하는 역량은? 자료구조/알고리즘/코딩테스트

반응형
SMALL

 

 

 

백엔드 신입 개발자가 쌓아야하는 역량은 무엇인가?


개발자 지원자는 많지만 기업에서 원하는 역량을 가진 개발자를 구하기 어렵기 때문에 개발자는 항상 수요가 많다 

그렇다면 기업에서 필요로 하는 개발자의 역량은 무엇일까?

 

1. 커뮤니케이션 능력 

2. 문제해결 능력

3. 기술 숙련도

 

 

 

 

역량이 무엇을 위한 척도로 움직이는가?


기업에서 역량을 보는 목적을 생각해보자. 

기업에서 수익을 발생하기 위해서는 한 부서만 움직이는 것이 아니다. 기획,마케팅, 개발 등 다양한 부서가 한가지 목적을 위해 긴밀한 관계를 연결한다. 백엔드 개발자를 채용한다면 본인 업무 외 여러부서와의 협업, 관계 등을 통해 문제를 해결하여 결과적으로 수익이 되는 형태로 다가가기 위해 어떤 개발자를 채용할건지 생각하게 된다. 또한 추후의 비용절감이 가능한 형태가 유지되는것을 원할것이다. 

 

그럼 커뮤니케이션 능력을 통해 소속 부서 내의 관계 및 다른 부서와의 트러블이 발생하지 않도록 어떤 성향을 가지고 있는지 기업에서는 확인이 필요할것이다. 하지만 입사 전에 긴밀한 관계를 파악하는것은 어렵기 때문에 자기소개서, 포트폴리오, 블로그 등의 통해 어떤 사람인지 행적을 볼수 있다. 프로젝트의 개인의 역량, 팀과의 협업 등을 통해 간접적으로 파악하게 될것이기 때문에 포트폴리오에 나 자신이 어떤 사람인지 원활한 관계 형성과 팀워크를 위해 어떤 행동을 했는지 준비하자 

 

기업에서는 업무 진행시 발생한 문제에 대해 어떤 태도를 가지고 어떤 관계를 유지하여 해결하려고 하는지도 중요하다. 이는 개발자이기 때문에 중요한 문제가 아닌 모든 회사에서 근무할때 가져야하는 태도라고 본다. 기업은 이익을 추구하는 업체이기 때문에 기업 내부적인 문제가 아니더라도 그 외 사회적인,경제적인 다양한 문제로 인해 기업은 타격을 최소화하고 성장하기 위해 계속 변화를 시도한다. 

 

그 변화를 따라가기 위해 새로운 기술을 적극적으로 배우려고 노력하고 시야를 넓히기 위해 새로운 시도를 해야한다.

커뮤니케이션 능력은 본인의 적극적인 태도로 인해 커버가 될수 있다고 하지만 문제해결 능력과 기술 숙련도는 기술적인 측면으로 공부해야한다. 

 

컴퓨터 공학에 대한 이해도와 실제 코딩 역량, 오픈소스를 활용하여 새로운 기술 도입, 실제 프로젝트를 통한 기여도 및 기술 숙련도 등을 지속적으로 업데이트하여 새로운 환경에 대비하고 준비하자 

 

 

 

 

그 역량을 쌓기위해 어떻게 할것인가?


 

기술적인 측면으로 자료구조와 알고리즘을 공부하여 코딩테스트를 통해 자신의 기술 숙련도를 입증하는 방식이 있다. 

어떤 문제가 발생했을때 어떤 자료구조와 알고리즘을 활용하여 문제를 해결하고 추후에도 새로운 기술을 도입하거나 유지,보수에 용이할수 있도록 설계하는것이 목적이다. 

그렇다면 자료구조와 알고리즘은 어떤 종류로 분류되어있고 어떻게 활용할지 공부해야한다. 

아래 자료구조와 알고리즘 종류를 통해 각각의 특성을 공부하고 효율적으로 사용할수 있도록 코딩테스트를 통해 나의 위치를 파악하고 성장하자

 

 

자료구조


컴퓨터에서 사용할 자료를 효율적으로 저장하고 처리할수 있도록 자료의 특성과 사용용도에 따라 분류하고 정리하여 구조화 한것이다. 

자료구조를 효율적으로 정리하면 알고리즘 구현시 시간복잡도와 공간복잡도를 최소화할수 있다. 

 

 

자료구조 단순구조 정수  
실수
문자
문자열
선형구조 순차리스트
연결리스트 단순연결리스트
이중연결리스트
원형연결리스트
스택  
테크
해쉬
비선형구조 트리 일반트리
이진트리
그래프 방향그래프
무방향그래프
파일구조 순차파일  
색인파일
직접파일

 

 

 

알고리즘


제한된 공간과 시간 안에서 데이터를 어떻게 효율적으로 처리할것인지 정해놓은 로직 

 

 

탐색 선형탐색
이진탐색
순차탐색
해시탐색
정렬 버블정렬
선택정렬
삽입정렬
퀵 정렬
병합정렬
힙정렬
기수정렬
계수정렬
완전탐색 브루트포스
비트 마스크
백트래킹
재귀함수
순열
너비우선탐색 깊이우선탐색
분할정복  
동적계획법  
그리디  
트리 이진검색트리
그래프 위상정렬
최단경로 Floyd-Warshall
다익스트라
Bellman-Ford
최소신장트리 Kruskal
Prim
비트연산  
진수변환  
재귀  
유클리드 호제법  
투포인터(슬라이딩윈도우)  
조합 순열  
파라메트릭 서치  
최장 증가 수열  
최소 공통 조상  
비트 마스크  

 

 

코딩테스트


코딩테스트를 통해 나의 기술 숙련도 위치를 파악하고 다른 사람의 코딩기술을 분석하여 나의 것으로 만들수 있다. 또한 코딩 분석을 통해 다른 사람들의 시야도 간접경험할수 있다. 코딩테스트는 프로그래머스, 백준 사이트에서 쉽게 접할수 있고 또한 코딩테스트 대회 등을 통해 경험해볼수 있다. 경험하기 전에는 시야가 넓어지지 않으니 최대한 많은것을 접하는것에 목표를 두어야한다. 

 

 

 

프로그래머스 _ 코딩테스트

 

 

백준_ 코딩테스트 

 

 

대회 

반응형
LIST