<코드에만 갇히지 않기> 10년차가 되어도 여전히 자주 하는 실수 중 하나는, 문제를 정의하는 것부터 해결하는 흐름을 코드에서만 찾는다는 것입니다. 예를 들어, 웹사이트의 속도가 느리다는 제보가 어디선가 들어옵니다. A. 웹사이트의 속도가 느리대요! B. 어 왜 느리지? 코드 살펴볼게요. B. 코드에 불필요한 코드가 너무 많았네요. 다 제거해볼게요. B. 다 제거해서 배포했습니다. A. 그래도 속도가 여전히 느린 거 같아요! B. 오 이제 최적화할 수 있는 게 없는데...? 일단 이 대화에서 몇 가지 우리가 놓친 게 있어요. 1. 웹 사이트는 지속적으로 항상 느린가? 그 순간에만 느렸는가? 2. 속도가 느리다고 말한 사람의 환경은 어땠는가? 3. 속도 측정 도구 등을 이용해 측정할 수 있는가? 4. 속도가 빠르다 <> 느리다에 대한 기준이 잡혀있는가? 제가 겪었던 이슈 중에서 이런 이슈가 있었어요. 이미지를 업로드하는 데, 이미지 최적화 서버를 제대로 구축하지 않은 상태로 이미지를 업로드해서 이미지가 원본 크기로 올라간거죠. 어떤 이미지는 10MB가 넘는 경우도 있었고 그로 인해 웹 사이트가 전반적으로 느려졌습니다. 또 이런 경우도 있었어요. 웹 사이트 메인에서 비디오를 재생하는데 이걸 최적화 안하고 올려서 30MB가 그대로 올라가버렸네요. 빠르게 최적화해서 4MB까지 줄였었습니다. CSS 코드 한 줄 때문에 IE에서 느렸던 기억도 있어요. 우리는 JS만 계속 원인이라고 생각했고, DOM 갯수가 문제라고 생각했더니 사소한 CSS 한 줄이 문제더라고요. 또 이벤트 서버에 갑자기 사람들이 몰려서, 순간적으로 순단 현상이 발생하고 있는거였는데 그걸 잘 인지하지 못하고 그냥 최적화 해야지! 만 하다가 분산 환경에서 파드 늘리니까 쉽게 해결되었던 적도 있었고요. 그러나 개발자가 가장 쉽게 해결할 수 있는 방법이 코드를 수정하는 데에 있고, 또 코드를 수정했다는 사실이 '내가 할 일은 다 했어!' 라는 자기 위안을 주기 때문에 저를 포함하여 대부분의 개발자가 코드부터 수정하려고 하는 거 같아요. 하지만 코드 바깥쪽에도 다양한 문제가 도사리고 있고, 애초에 문제가 아닌 상황일 수도 있습니다. 그러니 앞으로 어떤 문제가 발생하였을 때에는 '꼭 코드를 수정해야만 해결할 수 있는 문제인가?' 를 체크해보면 좋을 거 같아요. 자기 반성을 담아 작성했습니다.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 8월 23일 오후 12:57

 • 

저장 230조회 16,710

댓글 11

함께 읽은 게시물

《그렇게 해주세요》

... 더 보기

AI(LLM) 애플리케이션의 발전 속도가 AI 지능(능력)의 발전 속도를 따라가지 못하고 있는 상태가 되었다. 즉, 이제 AI가 부족한 것이 문제가 아니라, AI의 능력을 100% 활용하지 못하고 있는 것이 문제인 상태가 되었다는 이야기.

조회 1,223


직장생활은 결국 윗사람과 아랫사람이 나뉠 수밖에 없다. 기업들이 아무리 평등한 관계를 추구한다고 해도, 고용인과 피고용인의 관계마저 사라지는 것은 아니다. 아무리 평등하다 해도 월급 주는 사장님이 을이 될 수는 없지 않은가? 아무리 작은 조직이라도 일을 맡기는 사람과 일을 하는 사람이 존재한다.

... 더 보기

리더 입장에서 보는 ‘일 못하는 직원’ TOP8,리더 입장에서 보는 ‘일 못하는 직원’ TOP8

체인지그라운드,체인지그라운드

리더 입장에서 보는 ‘일 못하는 직원’ TOP8,리더 입장에서 보는 ‘일 못하는 직원’ TOP8

게임의 완성도는 고객이 결정한다

예술 작품은 작가의 생각을 표현하는 도구다. 따라서, 작가의 의도를 얼마나 잘 담아내고 있느냐가 중요하다. 그 의도를 대중이 몰라줄 수도 있고, 알지만 공감하지 못할 수도 있다. 그래도 괜찮다. 대중의 인정을 받지 못해도 예술성은 사라지지 않는다. 잘 만든 작품으로 남아있을 수 있다.

... 더 보기

iOS 19가 아니라 이제 iOS 26?

... 더 보기

No iOS 19: Apple Going Straight to iOS 26

MacRumors

No iOS 19: Apple Going Straight to iOS 26

무너지고 있는 프론트엔드, 백엔드 직군의 경계에 대한 고찰

AI 기술이 우리 일상과 산업 전반에 스며들면서 소프트웨어 개발 환경 역시 큰 변화의 물결을 맞이하고 있다. 특히 코딩을 돕는 AI 에이전트의 등장은 개발 생산성에 대한 큰 변화를 만들고 있다. 나 역시 이러한 변화를 체감하며, 나에게 익숙한 소프트웨어 개발의 대표적인 두 축인 프론트엔드와 백엔드 영역에서 AI 기술이 미치는 영향과 그로 인해 변화하는 소프트웨어 엔지니어의 역할에 대해 개인적인 생각을 정리해 본다.

... 더 보기

 • 

저장 34 • 조회 4,589