개발일기

개발자를 잠 못 들게 만드는 코드라는 글을 읽으며...

dev-note-404 2024. 5. 21. 17:26
728x90
반응형

https://dev.gmarket.com/103?utm_source=oneoneone 

 

개발자를 잠 못 들게 만드는 코드

안녕하세요 VI Engineering 팀 김윤제입니다.Gmarket Mobile Web Vip(View Item Page = 상품 상세)를 담당하고 있는 Backend Engineer 입니다. 이번 블로그는 개발자를 잠 못 들게 만드는 코드 (잠 못 드는 밤 Feat: 내

dev.gmarket.com

이 블로그를 토대로 작성함.

 

 

1. try~catch 무시

public Result getItem(){
    try{

    }

    catch(Exception ex){
        //예외처리 해주지 않음
    }
}

 

catch 부분을 비워두면 안된다!!!

 

2. 대규모 트래픽 환경에서 API Timeout

public Result getItem() {
    try {
         result = ApiHelper.CallAPI<Result>(
                    "GET",
                    ApiHelper.MakeUrl("v1/api/getItem"),
                    5000
                );
    }
    catch(Exception ex) {
        logger.error(ex.getMessage());
    }
}

 

상황설명)

API를 처리해주는 곳에서 5초에 응답을 주면 catch에 걸리지 않고 정상 응답으로 처리되기 때문에 고객은 5초를 더 기다려야 함..API를 처리해 주는 곳에서 6초에 응답을 주면 catch에 걸리게 되고 잘못된 응답으로 처리되기 때문에 고객은 6초를 기다려놓고 상품 정보도 못 보는 상황이 된다.

 

timeout 5000ms 는 5초임. 단 시간에 트래픽 증가 시 API 호출이 많아질텐데 트래픽 부하가 생겨 지연이 발생할것이다.

상품 상세 페이지라고 가정했을때 고객들은 다른 사이트를 이용할 것이다.

 

728x90
반응형