List<String> a = new ArrayList<>();

정말 사소하지만 사소하지 않게 궁금했던 미스테리

국비에서 어찌저찌 자료구조를 배우고, 실습 과제를 할 때 일이다.
국비학원에서는 디테일하게 코드를 봐주거나 하는 일이 별로 없었기 때문에, 조원들끼리 머리를 싸매고 유사 석기시대 마냥 코드를 짜고 있었더랬다.

그 때의 우리는, 막 ArrayList, HashMap 등을 배웠고, 그걸 활용해서 간단한 프로그램을 짜고 있었는데, 나는 너무 당연하게 아래와 같이 코드를 썼다.

ArrayList<String> list = new ArrayList<>();

그러다가, 현업에서 일하는 친구를 둔 한 조원이 짠 코드를 보니 다음과 같이 선언되어 있었다.

List<String> list = new ArrayList<>();

어?

그 때는 아무리 생각해도 양쪽을 다르게 쓰는(?) 이유를 모르겠어서 친구에게 물어보니, 현업에서는 대부분 저렇게 쓴다고, 이유는 잘 모르겠지만 여튼 저렇게 쓴대!라는 답을 들었다.

물론 당시에는 코드를 짜서 실행 시키는 데 급급했기 때문에 넘어갔지만, 나와 같은 의문을 품는 사람들이 있을까봐 이렇게 기록을 남겨둔다.

저렇게 코드를 짜는 이유는

유연성

때문이다.

결국

List<String> list = new ArrayList<>();
// List 인터페이스를 참조하여 ArrayList로 구현

요 코드를 나중에 성능 개선이나 기능 추가 같은 일이 발생하여 구현을 다른 것으로 바꿀 일이 있을 때 (Vector나 LinkedList 등..) 유연하게 바꿀 수 있도록 하는 것이다.

좋은 웹페이지 즐겨찾기