1번 : 자료구조의 정의와 중요한 이유를 설명하세요.
자료구조란 데이터에 편리하게 접근하고 조작하기 위해 데이터를 저장하거나 조작하는 방법입니다. 자료구조란 상황과 문맥에게 맞게 데이터를 담을 수 있는 적절한 구조를 말합니다. 데이터에 맞는 적절한 자료구조를 사용하는 것은 전체 개발 시스템에 굉장히 큰 영향을 끼칩니다. 예컨데 주어진 데이터에 걸맞는 자료구조를 사용하는것 만으로도 효율성에 큰 영향을 줍니다.
2번 : Array(List)의 가장 큰 특징과 그로 인해 발생하는 장점과 단점에 대해 설명하세요.
Array는 비단순구조-선형구조에 속하는 자료구조입니다. 가장 큰 특징은 순차적으로 데이터를 저장한다는 점입니다. 순서가 상관 없더라도 서로 연결된 데이터를 저장할 때 사용하며, 그래서 array는 가장 자주 사용되는 자료구조 중 하나입니다.
장점 :
1) 엘리먼트는 인덱스를 가지고, 변경되지 않기때문에 인덱스를 활용해 빠르게 엘리먼트를 조회할 수 있다.
2) 이미 생성된 리스트도 수정이 가능하다.
3) 동일한 값도 여러번 삽입이 가능하다
4) cache hit의 가능성이 커져서 성능에 큰 도움이 된다.
단점 :
1) 순차적으로 담겨있는 데이터 중 특정 위치에 있는 중간의 요소가 삭제되는 경우, 삭제된 요소로 부터 모든 요소들을 앞으로 한칸씩 이동시켜줘야한다.(메모리 작업량이 크다, list)
2) 중간에 요소가 추가되는 경우도 모든 요소를 이동시켜줘야한다.
3) 요소가 움직이지 않는 경우에도 삭제시 인덱스에 따라 값을 유지하기 때문에 빈자리(null)이 남는다.(array)
4) 그러므로 사이즈 예측이 잘 안되고, 변경을 자주해줘야 되는 데이터에는 적합하지않다.
3번 : Array를 적용 시키면 좋을 데이터의 예를 구체적으로 들어주세요. (ex. 주식 차트) 구체적 예시와 함께 Array를 적용하면 좋은 이유, 그리고 Array를 사용하지 않으면 어떻게 되는지 함께 서술해주세요.
Array를 적용시키면 좋을 데이터로는 프랜차이즈 매출액 관리시스템이 있다. 지점별 - 일자별 -주요고객층 별 등으로 다차원 데이터를 구성해야 하며, 매출액이 같더라도 일자가 다르면 의미가 있으므로 데이터의 순서가 중요한 데이터다. 또한 매출액은 포스 관리시스템으로 정확하게 산출되며 하루마다 정확하게 계상되며 수정이 크게 필요치 않으므로 Array를 활용하면 좋다.