inflearn logo
강의

Course

Instructor

Complete in 6 weeks! 4 strategies to differentiate your backend resume - How to stand out among identical resumes

4-5. But how does this work? - InnoDB

수치화 관련 질문

Resolved

50

작성자 없음

0 asked

0

 

안녕하세요. 잘 수강하고 있습니다.

수치화 하는 부분에 있어 궁금한 점이 있습니다!

개선점을 수치화 하기 전에, 개선에 앞서서 미리 문제 상황을 예상하고 고려 할 수 있는 방법도 궁금합니다.
미리 고려 했어야 하는 점과, 실제로 실무에서도 문제상황으로 마주하는 부분을 구분하기가 어려운 것 같습니다. 현업에서는 어디까지 미리 고민을 해보고, 어느 정도부터는 실제 문제로 마주하게 되는지 궁금합니다.


질문의 배경은 아래와 같습니다.

면접에서 개선 및 수치화 사례에 대해서 "해당 이슈는 매우 known이슈인데, 충분히 미리 고려 할 수 있는 부분이 아니었는지? 고민을 안했었는지?" 질문을 받았었습니다.

예를 들어 7초 -> 2초 줄이는 것보다 2초 -> 0.7초 개선하는것이 더 어려울텐데
설계나 개발전에 미리 고민해보고 2초로 시작 할 수 있었던 문제 아니냐 라는 질문 같았습니다!

수치화를 위한 수치화로 보인다거나, 사전에 고려하지 않는 태도로 보였을까봐 우려되는 지점이었습니다.

이러한 우려를 피하고 싶은데 고견 부탁드립니다

감사합니다!

이력서

Answer 1

0

dingcodingco

고양이님 좋은 질문 해주셔서 감사합니다.

이 질문은 정말 많은 주니어 분들이 실제로 겪는 고민이에요. 면접관 입장도 이해가 가지만, 실무 현실도 분명히 있거든요. 하나씩 같이 파헤쳐 봅시다!

실무에서는 이런 단계로 진행돼요

프로젝트 초기 (MVP 단계) 이 시점에는 솔직히 말하면 "일단 동작하는 것"이 우선입니다. 왜냐하면 서비스가 실제로 유저를 받을지, 어떤 부분이 병목이 될지 아무도 모르거든요. 트래픽이 하루 100명도 안 오는데 동시 접속 1만명 대비 설계를 한다? 이건 오버 엔지니어링이죠.

서비스 성장 단계 (실제 부하 발생) 유저가 늘면서 "어? 이 부분 느린데?"가 나타나기 시작합니다. 이때부터가 진짜 최적화 타이밍이에요. 실제 데이터와 트래픽 패턴을 보고 병목 지점을 찾아서 개선하는 거죠.

그래서 7초 → 2초 개선이 전혀 이상한게 아닙니다. 오히려 "우리 서비스가 성장하면서 병목을 발견하고, 데이터 기반으로 개선했다"는 스토리거든요.

그래서 면접관이 정말 묻고 싶은 건 이거 같습니다

  • "문제를 발견하는 능력이 있나?"

  • "왜 이 방법을 선택했는지 논리가 있나?"

  • "다음에는 어떻게 할 건가?"

"왜 미리 안 했어?"가 아니라 "어떻게 생각하는 사람인가?"를 보는 거죠.

 

그래서 다음과 같이 흐름을 준비해가시면, 충분히 좋은 대답을 하실 수 있을 것 같습니다

상황 설명 "초기에는 서비스 검증이 우선이어서 기본적인 구현에 집중했습니다. 당시 트래픽은 하루 평균 X명 수준이었고, 응답 속도도 크게 문제가 되지 않았어요."

문제 발견 "그런데 X월부터 일 방문자가 Y명으로 증가하면서, 특정 API의 응답시간이 평균 7초까지 늘어나는 걸 모니터링에서 발견했습니다. 특히 오후 2-3시 피크 타임에 문제가 심각했어요."

분석 과정 "slow query log를 분석해보니 WHERE 절에 사용되는 컬럼에 인덱스가 없어서 풀 테이블 스캔이 발생하고 있었습니다. 10만 건 데이터를 매번 전체 검색하고 있었던 거죠."

개선 및 결과 "해당 컬럼에 인덱스를 추가하고, 실행 계획을 확인해서 index scan으로 변경됐는걸 확인했습니다. 결과적으로 평균 응답시간이 2초로 개선됐고, 피크 타임에도 안정적인 서비스가 가능해졌어요."

배운 점 "이 경험을 통해 서비스 초기부터 모니터링 환경을 구축하는 게 중요하다는 걸 배웠습니다. 다음 프로젝트에서는 Spring Actuator + Prometheus를 초기부터 세팅해서 쿼리 성능을 실시간으로 추적했고, 덕분에 비슷한 이슈를 사전에 발견할 수 있었습니다."

이런 식으로 답변하면 "반성하고 성장하는 개발자"로 보여요.

그럼 실제 프로젝트에서 이런 경험을 쌓아보시고, 면접에서 당당하게 말할 수 있는 스토리를 만들어보세요. 좋은 질문 감사합니다!!

Build 관련 문제 (테스트 관련 문제)

0

30

1

인덱스 관련 질문 있습니다.

0

51

1

비관적 락 구현 방식 문의 건

0

58

2

외부 api 처리 방안에 대하여 궁금한 점이 있습니다.

0

87

2

네임드 락 사용 시 커넥션 풀을 분리하는 방법에 대한 질문

0

78

2

이벤트) 백엔드 기술면접 실전문제집

0

99

2

로컬에서 테스트 한 결과를 이력서에 써도 괜찮을까요?

0

127

2

Redis 캐싱을 도입하는데 db조회와 성능이 차이가 거의 없습니다.

0

107

2

k6 부하테스트 중인데 개선 전 성능이 너무 안나와서 고민

0

115

2

강의와 성능수치 비교

0

100

2

13강 강의 뒷부분의 과제 안내부분은 어디있나요?

0

48

2

이벤트 참가자 수 증가 후, save 메서드 호출 코드 질문

0

63

2

[수업 자료 질문] Cache Aside의 특징 문의

0

82

2

[수업자료 문의] RedisTemplate으로 SETNX 시 리턴값 문의

0

79

2

블로그에 학습 내용 정리 포스트를 올려도괜찮나요?

0

107

2

멀티스레드 상황인데 currentParticipants 가 AtomicInteger가 아닌 이유?

0

86

3

클라우드 환경 배포시 부하 테스트 방식에 대하여

0

133

2

k6 dashboad 안나오는 상

0

111

2

2-4 도커 빌드 에러가 계속 납니다.

0

295

2

AWS EC2에 도커 컨테이너가 동작하지 않을 때 확인 해야하는 것

0

112

2

성능 측정시

0

104

2

API 별 실행 쿼리 모니터링 구현 질문 있습니다.

0

79

2

이력서 작성에 대한 질문

0

105

2

트랜잭션 격리성 설계도 어필포인트로 가져갈 수 있을까요?

1

63

2