# 코드 최적화에 대한 이야기

OSAM 집체 교육 선발 테스트에서 충격적인 코딩테스트 성적을 얻었다.

어느 날과 같이 트위터를 탐색하다 코드 최적화 글에 관심이 생겨 읽어보았다.

# 이유 없이 하지마라

뭣이 중한디?

  • 최적화가 필요하지 않은 코드를 갈아엎지 말아라 빠른 것 보다 더 중요한 것은 읽기 쉬운 코드이다.

# 성능을 좌우해주는 사소한 차이들

try-catch 대신 if, short-circuit

  • 메소드가 NULL 인지 파악하는 다음과 같은 코드가 있다고 하자.

    • try obj.do() catch ~

    • if (obj.do) obj.do()

    • obj.do && obj.do()

    차례 대로 try-catch, if, short-circuit 이라 불리는데 if와 short-circuit이 try-catch에 비해 좋은 성능을 보여준다.

    try-catch가 적합한 순간이 아닐땐 이 둘을 더 애용해보자.

map, filter, for .. in 대신 for, foreach

  • map, filter는 lambda 식에서 매우 유용하게 사용가능한 도구들이다.

    하지만 많은 성능소요가 있어 무분별한 사용은 지양하고 for이나 foreach를 애용해보자.

    for - in은 for문 들 중에서 최악의 성능점수를 찍었다. 물론 가독성은 좋겠지만 최적화를 논하는 시점이라면 생각해 볼 필요가 있다.

map이 기능이 편하고 코드 가독성도 좋아서 많이 애용했는데 이게 알고리즘 평가에 영향을 줘버린 건지 의심하게 된다.


참조 포스트