본문 바로가기

컴퓨터 공학/자료구조와 알고리즘

그림으로 쉽게 이해하는 자료구조와 알고리즘 차이

반응형

그림으로 쉽게 이해하는 자료구조와 알고리즘 차이

 

 

안녕하세요

 

로스윗의 코딩캠프입니다.

 

오늘도 달콤친절한 저 로스윗이

 

오늘은 자료구조와 알고리즘에 대한 주제로 포스팅을 하게 되었습니다.

 

컴공 전공자 분들과 비전공자 출신 개발자 취업을 목표로 하시는 모든 분들께

 

도움이 되는 포스팅일 되기를 바라겠습니다.

 

그럼 바로 시작하겠습니다!!

 

 

 

 

 

반응형

 

 

- 자료구조와 알고리즘이란?

먼저 내가 무엇을 배우는지를 정확히 알아야

 

어디에 중점을 두고 공부해야 할 지를 정확히 알 수 있기 때문에


이 개념에 대해서 제대로 이해하고 넘어가는 것이 중요합니다.

 

먼저 사진을 하나 보겠습니다.

 

 

자료구조와 알고리즘 차이 설명 예시 그림
자료구조와 알고리즘 차이 설명 예시 그림

 


예를들어 여러분 앞에 음식이 있다고 가정을 해볼게요.


여러분은 파스타를 먹을 때 굳이 머그컵에 파스타를 담아 드시진 않을거에요.

 

그렇죠?

 

그게 불가능한건 아니지만 넙적한 파스타 접시라는 더 좋은 대안이 있죠.


이것이 훨씬 더 음식을 먹기에 효율적일 것입니다.


반대로 음료를 마실때에는 넙적한 파스타접시가 아닌 컵을 쓰겠죠.


이때는 컵이 더 효율적이기 때문이에요.


그리고 같은 음식이라도 지금 당장 먹을게 아니라면 

 

그릇에 담는게 아니라 밀폐용기에 담아서 음식을 보관할 수도 있습니다.


그래서 우리는 음식의 종류와 용도에 따라서 

 

어떤 그릇에 어떤 음식을 담을지를 직관적으로 알고 있습니다.

 

데이터랑 데이터 구조도 이와 비슷합니다.


자료 즉, Data가 음식이라면 자료구조 즉, Data structure는 그릇이 되겠죠.

 

그래서 이 data 자료들을 어디에 어떻게 관리할 것인가에 따라서

 

데이터를 담는 구조라고 생각하시면 됩니다.

 

 


여기서 말하는 관리는 데이터의 검색, 순회, 저장, 삭제, 변경 등등을 의미합니다.


자료 구조를 Data structure라고 굳이 쓴 이유는 

 

여러분들이 앞으로 궁금한 것이 있어서 구글링을 하실 때에


한글보다는 영어로 검색하시는 것이 훨씬더 정확하고 좋은 정보를 찾기에 수월하기 때문입니다.

 

그래서 앞으로는 한글보다는 영어 이름에 좀 더 익숙해지는 것이 유리합니다.

 

 

 

- 그러면은 자료구조(Data structure)를 왜 써야하는가?

 

1. 효율성


음식도 용도에 맞는 그릇에 담는 것처럼

 

데이터도 데이터의 형태와 용도에 맞는 그릇에 담는게 중요합니다.


파스타를 컵에 담아 먹으려면 먹을 수는 있겠지만 굉장히 비효율적인 것처럼

 

data도 배열에 다 넣어서 쓸려면 쓸 수야 있겠지만


더 효율적인 자료구조가 있는데 굳이 그렇게 쓰지는 않습니다.

 

컴퓨터의 자원은 한정적이기에 우리는 항상 효율적인 방법을 사용해야 합니다.


여러분은 한번쯤 CPU나 메모리, 하드디스크 등의 컴퓨터 사양에 대해 들어보셨을 겁니다.


좋은 성능의 하드웨어는 가격이 비싸고

 

또 아무리 성은 좋은 하드웨어를 사용한다고 해도 그 성능이 무한대가 되지는 않습니다.

 

그래서 우리는 정해진 공간과 주어진 시간 내에

 

주어진 데이터를 통해 원하는 정확한 결과를 내야합니다.

 

아무리 정확한 검색사이트가 있다고 하더라고 

 

검색한 번 하는데 10분 1시간씩 걸리면 그 사이트를 더이상 사용하지 않겠죠.


그렇기 때문에 데이터의 용도에 가장 적합한 자료구조를 통해서

 

최적의 결과를 내주는 것은 굉장히 매우 중요합니다.


당장은 몰라도 개발을 하는 데는 아무 문제가 없을 수도 있습니다.

 

당. 장. 은.


하지만 내가 여기에 데이터를 넣고 뺄때

 

정확하게 이 안에서 어떤 작업이 일어나는지를 알아야


이 상황이 어떤 자료구조가 적합한지 판단을 내리거나 

 

나중에 발생할 수 있는 문제도 예측 할수 있게 됩니다.


그렇기 때문에 자료구조에 대해서 정확하게 알고 

 

내부 동작까지 이해하고 있는 것이 다시 한 번 강조하지만 정말 중요합니다.

 

 

- 정리 및 요약

그래서 자료구조를 공부할 때에는 자료구조의 특징, 자료구조의 장점과 한계 등을

 

정확하게 이해하고 파악하는 것이 중요합니다.

 

단순히 "이 자료구조는 검색속도가 빨라요" 가 아니라

 

왜 어떤 근거로해서 검색속도가 빠른지,

 

대신에 어떤 한계점을 가지고 있는지를 설명 할 수 있어야 합니다.

 

이제 자료구조에 대해 조금 감이 오시나요?

 

그렇다면 다음 포스팅에서는 알고리즘에 대한 쉬운 이해와 설명으로

 

다시 돌아오도록 하겠습니다.

 

다음 포스팅도 기대해주세요~!!!

 

모두 로~스윗!!

 

개발자가 자료구조와 알고리즘을 알아야 하는 진짜 이유

 

개발자가 자료구조와 알고리즘을 알아야 하는 진짜 이유

개발자가 자료구조와 알고리즘을 알아야 하는 진짜 이유 안녕하세요. 로스윗의 코딩캠프에 오신걸 환영합니다. 오늘은 개발자가 자료구조를 왜 공부해야 하는지에 대한 포스팅을 진행해볼까

rosweet-ai.tistory.com

그림으로 쉽게 이해하는 자료구조와 알고리즘 차이 #2

 

그림으로 쉽게 이해하는 자료구조와 알고리즘 차이 #2

그림으로 쉽게 이해하는 자료구조와 알고리즘 차이 #2 안녕하세요? 로스윗의 코딩캠프에 오신 것을 환영합니다. 오늘은 지난 시간 포스팅했던 자료구조에 이어 알고리즘에 대한 포스팅을 진행

rosweet-ai.tistory.com

 

반응형