[LG Uplus 유레카 4기] 백엔드 개발자 성장기: 알고리즘의 기초를 다지다
안녕하세요, 유레카 4기에서 열공 중인 수강생입니다. 요즘 백엔드 개발의 핵심인 알고리즘의 바다에 풍덩 빠져 있는데요. 기초부터 드디어 그래프 탐색의 꽃인 BFS & DFS까지 마쳤습니다!
공부한 내용도 복습할 겸, 지금까지의 유레카 여정을 기록해 봅니다.
1. 알고리즘 분석의 기초: "감"이 아닌 "숫자"로
처음에는 코드가 돌아가기만 하면 되는 줄 알았는데, 시니어의 관점은 다르더라고요. 점근적 표기법(Big-O)을 배우면서 내 코드가 얼마나 효율적인지 수학적으로 증명하는 법을 익혔습니다. 사실 아직은 수학적으로 하는게 더 빠른거 같고너무 어렵지만,,,ㅠㅠ 힘들게 따라가고 있습니당 ㅠㅠ
- 마스터 정리와 점화식을 통해 복잡도를 분석하며, 대규모 데이터를 다루는 백엔드 개발자에게 왜 효율성이 생명인지 깨닫는 시간이었습니다.
2. 정렬(Sorting)의 미학: 퀵(Quick)하고 스마트하게!
단순한 선택/버블 정렬부터, 분할 정복을 이용한 병합(Merge)과 퀵(Quick) 정렬까지!
- 상황에 따라 어떤 정렬이 유리한지 판단하는 안목을 길렀습니다. 특히 힙 정렬(Heap Sort)의 구조는 보면 이해는 하는데 실제로 해보는건 어렵더라구요.
3. 효율적인 데이터 관리: 검색 트리와 해시
데이터를 무작정 쌓아두는 게 아니라, 어떻게 하면 빛의 속도로 찾을 수 있을까?
- BST(이진 검색 트리)의 원리부터, 균형을 맞추는 AVL 트리, 그리고 실무에서 정말 많이 쓰이는 해시 테이블까지! 충돌(Collision)을 해결하는 메커니즘을 배우며 시스템 설계의 기초를 탄탄히 다졌습니다.
4. 드디어 그래프 탐색: BFS & DFS
지금까지 배운 내용 중 가장 흥미로웠던 파트입니다!
- BFS(너비 우선 탐색): 큐(Queue)를 이용해 옆으로 넓게 퍼져나가며 최단 경로를 찾는 전략!
- DFS(깊이 우선 탐색): 스택(Stack)이나 재귀를 이용해 끝까지 파고드는 끈기 있는 탐색!
- 어떤 상황에서 어떤 탐색을 써야 할지 고민하며 알고리즘의 '설계도'를 그리는 재미를 알아가고 있습니다.
! 유레카 4기 중간 회고
백엔드 소프트웨어 교육 과정이 쉽지만은 않지만, 하나씩 문제를 해결해 나갈 때의 쾌감이 정말 커요. 특히 알고리즘을 배우면서 현실의 복잡한 문제를 논리적으로 쪼개는 법을 배우고 있습니다.
함께 밤늦게까지 고민하는 우리 4기 동료들 덕분에 지치지 않고 여기까지 올 수 있었던 것 같아요. 이제 BFS/DFS를 넘어 더 깊은 백엔드의 세계로 나아갈 준비를 더 열심히 해야할것 같아요,,,
