공개적으로 만들기: DSA에 대한 내 생각 (그리고 공유하는 이유)
Source: Dev.to

나는 공개적으로 만들고, 내가 어떻게 생각하는지 글을 쓰며, 실제로 DSA를 사용하면서 배운 것을 공유하고 싶다—단순히 준비하는 것이 아니라.

DSA에 대한 내 시각이 바뀐 이유
어느 순간부터 DSA는 문제 자체에만 국한되지 않는다.
다음과 같은 점을 눈치채게 된다:
- 같은 아이디어가 계속 반복된다
- 대부분의 “어려운” 문제는 새로운 것이 아니라 조합이다
- 진짜 어려움은 어떤 접근법을 적용할지 인식하는 것이며, 코드를 짜는 것이 아니다
이 변화는 내가 수백 개의 문제를 풀어서가 아니라, 한 걸음 물러서서 왜 같은 패턴이 계속 등장하는지 스스로에게 물었을 때 일어났다.
그걸 깨닫고 나면 DSA는 고된 작업이라기보다 일련의 사고 모델처럼 느껴진다.
지금 내가 믿는 것
내 현재, 다소 주관적인 견해는 다음과 같다:
- 끝없는 문제 풀이가 필요하지 않다
- 패턴을 독립적으로 마스터해야 한다
- 쉬운 문제는 보통 하나의 패턴을 사용한다
- 중간 난이도 문제는 하나 혹은 두 개의 패턴을 결합한다
- 어려운 문제도 그 이상은 거의 아니다
불변식을 설명할 수 있다면 절반 이상은 성공한 것이다.
내가 “이해한다”라고 말할 때, 템플릿을 외운다는 뜻이 아니다.
어떤 접근법이 왜 작동하고, 다른 접근법이 왜 작동하지 않는지를 설명할 수 있다는 뜻이다.
여기서 내가 쓸 내용
다루지 않을 것
- LeetCode 문제 모음
- 문제 리스트를 빠르게 푸는 방법
- “X일 안에 Y문제 풀기” 같은 콘텐츠
대신 다룰 것
- 제약 조건을 보고 DSA 패턴을 어떻게 인식하는지
- 특정 패턴이 왜 작동하는지 (그리고 언제 안 되는지)
- 면접 난이도가 종종 오해받는 이유
- 같은 아이디어가 실제 시스템에 어떻게 나타나는지
- 내가 만들고, 재고하고, 배우는 과정
이를 엔지니어링 노트, 즉 큰 소리로 적는 메모라고 생각하면 된다.
공개적으로 만들기
이와 동시에 나는 indexedcode라는, 패턴‑우선 DSA 학습 방식을 만들고 있다.
- 강의가 아니다.
- 순위표가 아니다.
- 고된 훈련이 아니다.
오히려 내가 일찍 가졌으면 하는 레퍼런스로, 패턴, 불변식, 의사결정에 초점을 맞춘다.
내가 만든 것, 바꾼 것, 틀린 것을 공유할 것이다.
누군가가 더 명확하게 생각하는 데 도움이 된다면 그것만으로도 성공이다.
대상 독자
다음에 해당한다면 당신에게 맞을 것이다:
- DSA가 생각보다 어렵게 느껴진다
- 면접 준비 중이지만 무차별적인 풀이에 지쳤다
- 외우기보다 이해를 더 중시한다
- 천천히 생각하고 논리적으로 접근하는 것을 좋아한다
해당되지 않아도 괜찮다.
앞으로의 계획
다음과 같은 주제로 시작할 예정이다:
- 대부분의 DSA 문제가 사실은 반복이라는 점
- 올바른 패턴을 초기에 어떻게 식별하는지
- 난이도 라벨이 왜 오해를 불러일으키는지
- 배열 패턴만 마스터해도 놀라울 만큼 멀리 갈 수 있다는 점
고정된 일정은 없다. 공유할 가치가 있는 내용이 생길 때마다 글을 쓸 것이다.
이 중 하나라도 공감한다면, 머물러도 좋다. 공개적으로 만들면서 여러분과 함께 배우고 싶다.
백엔드 엔지니어. DSA, 시스템, 그리고 엔지니어가 실제로 어떻게 사고하는지에 대해 많이 고민한다.
indexedcode을 공개적으로 진행 중.