본문내용
1. 자료구조와 정보
1.1. 자료와 정보의 개념
'자료'와 '정보'는 일반적으로 유사한 의미로 사용되지만, 자료구조와 컴퓨터 프로그래밍 관점에서는 엄연히 다른 개념이다.
'정보'는 어떠한 상황이나 현상에 대해 적절한 의사결정을 하게 하는 도움이 되는 지식이나 해석을 의미한다. 반면 '자료'는 연구, 조사, 관찰 또는 측정을 통해 수집된 값이나 사실을 의미한다. 즉, 자료를 분석하고 해석하여 실생활에 도움이 될 수 있는 형태로 가공한 것이 정보인 것이다.
빅데이터의 경우에도 '비정형 형태의, 계속해서 쌓이며, 다양한 혹은 대량의 데이터'들을 말하는 것으로, 이러한 자료들을 분석, 분류, 가공하여 노이즈를 처리하는 전처리 과정이 반드시 필요하다. 이처럼 자료와 정보가 상이한 개념이기 때문에 이를 구분하고 이해하는 것이 중요하다.
빠르게 변화하는 현대사회에서 자료는 계속해서 쌓이며 실시간으로 변화하고 있다. 또한 자료의 의미가 글자 요소뿐만 아니라 이미지, 음성 등 여러 형태로 확장되었다. 이에 이러한 데이터를 분석하고 분류하며 가공하는 과정에서 '추상화'가 반드시 필요하다.
추상화란 시스템 내에 관계하는 공통적인 부분이나 개념을 찾아내고 이를 간결하고 이해하기 쉽게 하는 구조화 하는 작업을 말한다. 이 과정을 통해 관계성이 없어 보이는 곳에서 같은 종류의 다양한 객체를 재정의하게 되며, 새로운 논리구조가 형성되기도 한다. 이처럼 추상화를 통해 자료 간 논리성을 구조화시키고 하나의 체계로 재구성하는 것을 자료구조라고 말한다.
요약하면, 자료와 정보는 사회적 관점에서 유사한 의미로 사용되지만 자료구조와 컴퓨터 프로그래밍 관점에서는 구분되는 개념이다. 자료는 연구, 조사, 관찰 또는 측정을 통해 수집된 값이나 사실을 의미하며, 이를 분석하고 해석하여 실생활에 도움이 될 수 있는 형태로 가공한 것이 정보이다. 복잡해지는 자료 간 관계에서 간결하고 직관적으로 이해할 수 있도록 구조화하는 작업이 자료구조의 핵심이다.
1.2. 추상화와 자료구조
추상화와 자료구조는 복잡한 자료를 단순하고 이해하기 쉽게 만드는 데 핵심적인 역할을 한다. 추상화는 시스템 내에 관계하는 공통적인 부분이나 개념을 찾아내고 이를 간결하고 이해하기 쉽게 하는 구조화하는 작업이다. 이를 통해 관계성이 없어 보이는 곳에서 같은 종류의 다양한 객체를 재정의하고 새로운 논리구조가 형성된다.
자료구조는 추상화 과정을 통해 자료 간 논리성을 구조화하고 하나의 체계로 재구성하는 것을 말한다. 복잡해지는 자료 간 관계에서 간결하고 직관적으로 이해할 수 있도록 구조화하는 컴퓨터의 논리적 구조가 바로 알고리즘이다. 자료구조를 기반으로 알고리즘이 구축되고, 이를 통해 단순한 데이터였던 것이 논리적 구조를 가지고 필요한 형태로 분류되며 자료 간 관계성이 분석된다. 이러한 과정을 거쳐 수많은 정보를 구조화하여 이해하기 쉽도록 하는 것이 자료구조의 핵심이다.
서울시의 공공자전거 서비스 '따릉이'는 이러한 자료구조와 추상화의 개념을 잘 보여주는 사례이다. 서울시는 따릉이 이용에 대한 대량의 데이터를 수집하고, 이를 분류하고 객체화하여 다양한 관점에서 정보화하였다. 주 이용지점, 이용거리, 사용계층, 불편요소 등의 자료를 분석하고 문제점을 발견하여 전반적인 시스템을 개선하고자 하였다. 이를 통해 자전거 도로 확충, 이용 편의성 제고 등의 행정 시스템을 도입하였고, 다른 지자체에서도 이를 참고하여 공유자전거 사업을 추진할 수 있었다.
이처럼 추상화와 자료구조는 복잡한 현실 세계의 문제를 해결하는 데 핵심적인 역할을 한다. 데이터를 구조화하고 논리적 관계를 파악함으로써 문제의 본질을 이해하고 효과적인 해결책을 마련할 수 있다. 현대사회에서 빠르게 증가하고 있는 다양한 형태의 데이터를 체계적으로 관리하고 활용하기 위해서는 추상화와 자료구조에 대한 이해가 필수적이라고 할 수 있다.
1.3. 실생활 사례: 서울시 따릉이
서울시 공공자전거 서비스 '따릉이'는 빅데이터를 활용하여 성공적으로 운영되고 있는 사례이다. 따릉이는 친환경 교통수단이라는 슬로건을 내세워 공공서비스의 혁신을 가져올 것이라고 기대되었지만, 실제로는 다른 양상을 보였다.
먼저, 이용자 계층이 청년층인 20대에 국한되었다. 정작 사람들이 많이 사용하는 곳에는 공급이 부족하고 수요가 적은 곳에는 방치되어 있어 불량률이 높아졌다.
이에 서울시는 따릉이에 대한 대량의 데이터를 수집하고 다양한 요인들을 분류하고 객체화하여 정보화하였다. 따릉이의 주 이용지점, 평균 이용거리, 주 사용계층, 사용자의 특징이나 불편요소 뿐만 아니라 지리나 환경적 요소 등 다양한 자료를 분석하고 문제점을 발견하여 전반적인 시스템을 개선하고자 하였다.
데이터를 가공하여 정보화하면서 서울시는 따릉이의 문제점을 해결하고자 여러 행정 시스템을 도입하였다. 주 이용지점에 더 많은 공유자전거를 배치하고, 거치지점을 밝고 깨끗한 곳으로 개선하여 '깨진 유리창 이론'을 따르지 않고 좋은 상태로 유지할 수 있도록 환경을 조성하였다.
또한 자전거 도로의 부족성을 발견하고 자전거와 보행자 겸용도로를 신설하고, 서울시 내 자전거도로를 만들어 자전거 사용률을 높였다. 사고위험성이 높은 지역은 배제시키는 등 인프라 개선에도 힘을 썼다.
시민 인식조사를 통해 회원가입 절차가 어려워 이용률이 낮은 중,장년층의 어려움을 발견하여 기존 회원제에 불과했던 것에서 비회원 이용도 가능하도록 행정시스템을 확대하였다. 웹 결제가 아닌 어플을 통해 보다 다양한 계층의 사람들이 이용을 할 수 있게끔 변모시켰다.
따릉이의 성공으로 경기도를 비롯하여 여러 지자체에서도 공유자전거 사업을 실시하고 있으며 실제로 공유자전거가 활성화되면서 교통체증 완화와 탄소배출량 저감에도 기여하는 등 긍정적인 변화를 만들어냈다.
특히나 이러한 이용체계를 여러 요소로 분석하고 알고리즘화하여, 이용자의 계층이나 이용지점의 특징을 구조화하였다. 이를 통해 서울시의 알고리즘은 다른 지자체에서도 참고되어 실제 도입과 제도형성, 주 사용계층과 시민들의 니즈 분석 및 인프라 개선에 활용되고 있다.
따라서 서울시 공공자전거 서비스 따릉이는 빅데이터를 적극적으로 활용하여 다양한 요소를 분석하고 문제점을 해결하며, 그 과정에서 알고리즘을 구축하여 체계적인 시스템 개선을 이루어낸 대표적인 성공사례라 할 수 있다.
2. 2차원 배열의 구현
2.1. 행 우선 저장과 열 우선 저장
1차원 배열을 확장시킨 개념이 2차원 배열이다. 쉽게 말해 1차원 배열들을 쌓아놓은 것이 2차원 배열이라고 할 수 있다. 2차원 배열은 2가지로 나뉘어지는데, 1차원의 배열...