KeepHunDev
소프트 스킬이 향상됐다고 느꼈던 순간 본문
안녕하세요 모수 백엔드 개발자 유지훈입니다.
최근에 발생했던 장애를 대응하면서 그동안 준비해왔던 소프트 스킬 능력이 향상됐다고 느낀 순간이 있어서 회고하려고 해요.
예상하지 못한 에러

2025년 8월 27일 갑작스럽게 처음 보는 에러가 발생했습니다. DB JoinColum에서 중복되는 Id 입력의 시도가 발생했고, 트러블 슈팅을 진행하였습니다.
모니터링



CPU와 메모리, RPS가 평상시와 큰 차이가 없어서 DB 커넥션 풀에 대한 문제는 없다고 판단하였습니다.
코드를 보며 했던 생각
@Transactional
public void registerProfile(Long userId, SignUpProfileRequest request) {
UserJpaEntity user = userRepository.findById(userId).orElseThrow(
() -> new CustomRuntimeException(ErrorCode.USER_NOT_FOUND, userId)
);
checkIfProfileExistsForUser(user);
try {
ProfileJpaEntity profile = request.toEntity(userId);
profileJpaRepository.save(profile);
user.grantUserRole();
syncUserInfoFromProfile(user, request);
eventTxService.publishSuccessEvent(userId);
} catch (Exception ex) {
log.error("프로필 등록 실패: {}", ex.getMessage(), ex);
throw ex;
}
}
코드를 보고 추상적으로 profile 등록 로직이 event로 발행되어서 event가 유실될 수 있지 않을까? 클라이언트에서 요청이 동시에 2개가 들어와서 동시성 이슈가 발생하지 않을까라는 생각이 들었습니다.
프론트엔드 개발자와 대화하기
약 2달 전 토스(SLASH)의 임희진 Foundation Leader 님께서 말씀해 주신 소프트 스킬을 인상 깊게 보았습니다. 그중 “내가 요청할 때도 상대방이 “왜?”를 쉽게 알 수 있도록 합니다.”라는 문구를 보고 팀원에게 무언가를 물어볼 때, 어떤 상황이 발생했고, 나의 가정은 어떠한지를 포함해서 이야기를 해야 한다고 생각했습니다.
실천하기

제가 생각했던 부분을 명확하게 전달하여, 프론트엔드 개발자님께서 반문 없이 문제를 함께 해결하였습니다. 해당 경험이 저의 소프트 스킬이 향상되었다고 느꼈던 경험이었습니다.
마치며
나중에 회사에서 경영을 하는 입장이나 내가 직접 서비스를 운영할 때, 사람 간의 IO를 줄이는 것이 자원을 아낄 수 있겠다고 생각했습니다.
그 방법을 실천하기 위해서는 질문의 의도를 파악하고, 나의 질문의 의도를 명확하게 나타내며 소통을 잘 하는 개발자가 되는 날까지 열심히 하겠습니다.
감사합니다.
'회고록' 카테고리의 다른 글
| 텍스트 파일 조인의 성능 병목 분석 및 개선기 (0) | 2025.09.12 |
|---|---|
| JPA 양방향 연관관계에 대한 고민 (0) | 2025.09.11 |