목록전체 글 (37)
체대출신 코더의 개발자 성장기

1. B-트리란? 기존의 트리는 1개의 노드에 1개의 데이터를 저장할 수 있었다면, B-트리는 1개의 노드에 여러가지의 데이터를 지니고 있다. 이는 많은 정보를 더더욱 효율적으로 저장할 수 있으며 노드의 가지의 수와 높이가 기존의 트리구조보다 현저하게 적어질 수 있도록 해준다. 2. 노드의 가지수가 적어지면 안좋은거 아닌가? B-트리는 앞서 말했다시피 하나의 노드에 많은 정보를 담고 있다. 이는 간선의 높이를 동일하게 만들어준다. 기존 트리구조는 데이터를 하나만 담고 있었기에, 원하는 데이터를 찾기 위해서는 데이터를 찾고 다음 데이터로 이동하는 과정을 계속 거쳐야 했지만 B-Tree는 하나의 노드안에 여러개의 데이터를 담고 있기 때문에 다음 노드로 이동하는 과정을 많이 줄일 수 있다. 따라서 다음노드를 ..

1. 트리 구조의 정의 시험기간 공부 할 때, 아무런 계획도 없이 책을 처음부터 시험범위까지 본다면 과연 머리에 다 들어올까?? 엄청 똑똑한 사람이 아니면 힘들지 않을까? 보통 책을 보면 목차가 나뉘어져있다. 목차는 단원 - 주제 - 내용으로 나뉘어져 있고, 갯수만 보자면 1단원 안에 여러개의 주제들이 있고 그 주제들은 여러개의 내용들로 나뉘어져 있다. 이런 방식으로 공부하면, 마구잡이로 정리하는 것 보다는 머릿속에 정리되어서 남는다. 이러한 데이터 정리방식이 컴퓨터의 자료구조에도 있다면 어떨까? 자료를 분류하고 다시 가져오는데 효율적이지 않을까?? 이러한 데이터 정리 방식을 '트리구조'라고 칭한다. 그리고 상하관계가 있는 형태를 '계층'이 있는 자료구조 형태라고 한다. 2. 트리 구조를 왜 사용할까? ..

나는 오늘 처음으로 서울에 상경했다. 패스트파이브 성수점에 가고싶은데 지하철이랑 버스는 어떻게 타야할지 모르겠고.. 저 많은 건물들 중 뭐가 패스트파이브인지 알아야 한단 말인가.. 결국 길거리를 지나다니는 행인 분 들한테 물어보기로 했다. (강변역 도착) 나 : 저기 혹시 패스트파이브가려면 어디로 가야하죠..? 행인 1 : 아 그 성수역에 있는거요? 그럼 일단 성수역에 가셔야 하는데, XX번 버스타시고 기사님한테 어디서 내려야 할지 물어보세요 (버스 탑승) 나 : 저 혹시 서울이 처음이라 그런데.. 성수역 가려면 어디서 내려야 하죠? 버스기사 : 3정거장 뒤에 내리세요~~ (버스 하차) 나 : 저 혹시 패스트파이브가 어디에요? 행인 2 : 앞으로 쭉 걸어가다 보시면 될거에요! (패스트 파이브 도착) 1...

내가 갓 오픈한 가게의 사장이라고 생각해보자. 오픈빨(?)로 손님들이 입구에 인산인해를 이루고 있는데, 만약 Stack의 방식대로 손님들을 대하면 어떻게 될까? 방금온 손님 : "와 이 음식점 줄 엄청기네.. 엄청 기다려야겠다.." 나 : "방금온 손님 얼른 들어오세요, 저희집은 마지막에 오신 분 부터 드실수 있어요!" 방금온 손님 : "와!! 정말요? 감사합니다!" 1시간기다린 손님 : "뭐야? 그럼 내가 꼴등이야? 이게 뭔 X소리야" 이런 곳은 없겠지만.. 이런 회전률이 안좋은 가게를 누가 갈것인가.. 그럼 회전률을 높이기 위해선 어떻게 해야 할까? 1. Queue의 정의 Queue는 일반적으로 우리가 상식적으로 생각하는 음식점에서의 프로세스를 생각하면 될 것이다. 온 순서대로 음식을 주문받고, 온 ..

자료구조들 중 가장 많이 접하는 Stack에 대해서 알아보자! 1. Stack의 정의 Stack은 간단히 말하면 데이터들이 담겨있는 상자이다. 단, 그 상자는 밑이 막혀있기때문에 우리는 상자 맨 밑의 데이터에 접근하기 매우 힘들다. 일일히 데이터들을 다 꺼내야 하기 때문이다! 2. Stack의 특징 - 선입후출 (First In Last Out) 데이터가 Stack에 담겨있을 땐, 밑이 막힌 상자에 담겨있는 것과 같기 때문에 Stack에서 데이터를 다루는 것은 '맨 위'의 데이터에서만 가능하다. 아래의 데이터를 보고싶다면?? 기존에 맨 위에 위치해 있던 데이터를 꺼내거나 삭제한 뒤, 보면 된다. 3. 왜 사용할까? - 쉽다! 우리가 프로그래밍을 하면서 흔히 접하는 개념인 배열이 Stack과 유사하다. 우..