std::vector에 object를 넣을 때 push_back과 emplace_back 중 무엇을 써야 하는지 자주 고민하게 됩니다.많은 글에서 emplace_back이 더 빠르다고 설명하지만, 실무 코드에서는 이 문장만 기억하면 오히려 잘못된 선택을 하기 쉽습니다.emplace_back은 magic optimization이 아니라 container 내부에서 object를 직접 construct할 수 있게 해주는 API입니다. push_back과 emplace_back의 차이는 빠르고 느림보다, 이미 만들어진 object를 넣는가 아니면 container 안에서 바로 만들 것인가에 있습니다. 이번 글에서는 C++17 기준으로 push_back과 emplace_back이 어떤 상황에서 copy, move..