AI가 빠르게 발전하면서 “지금 코딩 테스트를 계속하는 게 의미가 있을까?”라는 질문이 생길 수 있지만, 코딩 테스트의 핵심은 단순한 문제 풀이나 암기가 아니라, 문제를 해석하고 구조적으로 사고하는 능력을 기르는 과정에 더 가깝다고 생각합니다.
같은 기능이라도 구현 방식에 따라 확장성, 가독성, 메모리 사용량, 성능이 달라질 수 있습니다. 이런 차이를 비교하고 고민하는 과정 자체가 코드를 구조적으로 바라보는 힘을 키우는 훈련이라고 느끼고 있습니다.
- 문제를 조건 단위로 해석하고 구조화하는 사고
- 자료구조, 반복, 메모리 흐름에 대한 이해
- 코드 읽는 속도와 디버깅 감각
- “왜 이 방식이 더 좋은가?”를 비교하는 습관
실제 개발 과정에서도 요구사항 해석 → 구조 고민 → 구현 → 디버깅 흐름은 반복됩니다. 그래서 코딩 테스트 자체보다, 문제를 구조적으로 분석하고 사고하는 훈련 과정에 더 큰 의미가 있다고 생각합니다.
- 문제를 읽고 조건 정리하기
- 예외 상황 찾기
정상 케이스뿐 아니라, 어디서 문제가 발생할 수 있는지를 미리 생각하는 능력입니다.
예시)
1) 배열 접근 시
- index가 범위를 벗어나는 경우?
- index가 음수인 경우?
- 값이 없는 경우? (undefined/null)
- 빈 배열인 경우?
2) 개발 시
- 네트워크가 끊긴 경우?
- API 응답이 null인 경우?
- 로그인 토큰이 만료된 경우?
- 데이터가 과도하게 많은 경우?
- 사용자가 입력을 하지 않은 경우?
- 동시에 여러 요청이 들어오는 경우?
- 자료 흐름 이해하기
데이터가 어떻게 처리되고 변환되어 전달되는 흐름을 머릿속에서 추적할 수 있는 능력입니다.
1) 데이터 흐름 이해
- filter → map → reduce 흐름에서, 원본 데이터 → 조건 필터링 → 값 변환 → 최종 결과 생성
2) 개발 흐름
- 사용자 입력 → API 요청 → 서버 처리 → DB 저장 → 응답 반환 → 화면 렌더링
- 시간복잡도 고려하기
- 디버깅 능력을 통해 버그 수정하기
- 여러 방식 비교하기
다만 시대가 바뀌고 있는 것도 사실입니다. 과거처럼 “알고리즘만 잘하면 된다”는 흐름은 점점 약해지고 있고, 앞으로는 다른 역량의 비중이 더 커지고 있습니다.
- AI가 생성한 코드를 검증하고 요구사항을 정확히 해석하는 능력
- 시스템 구조를 설계하고 성능 문제를 분석하는 능력
- 유지보수 가능한 코드를 작성하는 능력
- 보안, 네트워크, 시스템에 대한 이해
- AI 활용 능력
- 코드 검증 능력
- 시스템 이해
- 구조 설계 능력
- 협업 능력
- 유지보수 역량
- 보안 / 성능 이해
성능을 비교하고 구조를 고민하며, “왜 이렇게 동작하는가?”를 계속 파고드는 태도는 단순 암기형 코딩 테스트보다 더 오래 유지되는 개발 역량에 가깝다고 생각합니다.