Yunseok's Dev Blog

배운 것을 적는 블로그입니다.

코딩 인터뷰 완전 분석 서평

이 책에서는 문제를 만났을 때 어떤 상황을 고려해야 하고, 문제를 명확하게 정의하여 어떻게 해결할 수 있는지 친절히 알려주는 책이다

처음에는 코딩 테스트 같은 문제 모음집인 줄 알았다. 그래서 문제만 잘 풀면 될 줄 알았다. 하지만 문제를 푸는 것보다 더 중요한 것은 문제를 정의하는 것이다. 우리는 문제를 만나면 이해하기 전에 해결하려고 한다. 하지만 문제를 명확히 정의하지 않으면 문제를 해결할 수 없다. 왜냐하면 문제는 주어진 상황에 따라서 매우 달라지기 때문이다

예를 들어 이런 문제가 발생했다고 가정해 보자. 어떤 특정 API의 응답이 특정 시간만 되면 응답 지연 시간이 급증한다. 원인은 무엇인가? 단순히 서버가 1대가 있는 경우와 100대가 있는 경우와는 문제가 완전히 달라진다. 서버가 1대 라면, 코드를 가장 먼저 의심해 볼 수 있을 것이다. 하지만 서버가 100대가 있다면, 다른 서버와의 의존하고 있는지, 네트워크에는 어떤 문제가 있는지, 고려해야 한다.

따라서 우리는 문제가 발생할 수 있는 환경에 대해서 정의할 수 있는 능력이 필요하다. 내가 단순 애플리케이션 개발자라면 코드 레벨에서 밖에 생각할 수 없을 것이다. 하지만 내가 네트워크와 대규모 애플리케이션 아키텍처에 대해서 잘 알고 있다면, 주어진 문제의 상황을 정의할 수 있을 것이다.

참고