Java에서 Queue 인터페이스를 사용하는 도중 add와 offer는 같은 동작을 하는 것 같은데, 왜 분리되어 있는 걸까? 라는 생각이 들었다. 보통 Queue는 LinkedList 자료구조를 활용하기 때문에 LinkedList 에서는 어떻게 구현하고 있는지를 확인해봤다. ..? 소스 코드로 구현 원리를 파악할 수는 있지만 offer도 결국 add를 사용하는 것처럼 보였다. add와 offer가 분리된 명확한 이유를 모르겠어서 구글링의 단계로 돌입했다. add와 offer의 차이 우선 'add'와 'offer' 모두 요소를 컬렉션에 추가하는 데 사용된다. 그럼 차이는 뭘까? 'Collection' 인터페이스에서 'add' 메서드의 반환 값은 항상 'true'이다. 따라서 Queue 인터페이스를 구현한..