CS💻
-
큐와 덱 : 순서대로 처리하기CS💻/DS & Algorithm 2025. 3. 6. 22:09
큐 초기 상태: [A, B, C, D, E, _, _, _] ^ ^ front reardequeue 후: [_, B, C, D, E, _, _, _] ^ ^ front rear 지난 시간에는 '해시 테이블'에 대해서 알아보았지요. 해시 테이블은 해시 함수를 이용해 키를 인덱스로 변환함으로써 O(1)의 시간 복잡도로 빠른 검색이 가능해졌어요.그리고 서로 다른 키에 대해 같은 인덱스 값이 나오는 '충돌'이 생겼을 때 체이닝이나 개방 주소법등의 기법을 통해 대용량의 데이터를 효율적으로 관리할 수 있게 되었어요. 해시 테이블 : 빠르게 데이터 검색하기자료구조 세번..
-
해시 테이블 : 빠르게 데이터 검색하기CS💻/DS & Algorithm 2025. 3. 5. 21:01
자료구조 세번 째 주인공은 해시 테이블 입니다. ~~ 지난 시간에는 '링크드 리스트'에 대해서 알아보았지요. 링크드 리스트 : 메모리 알뜰하게 사용하기빙글빙글 돌아가는 짱구의 하루~~ 자료구조 시리즈 두 번째는 바로 '링크드 리스트'입니다. 지난 시간에는 '동적 배열'에 대해서 알아보았습니다. 동적 배열은 '콜 스택 구조상 컴파일 전에people-analysis.tistory.com동적 배열을 사용하기 위해서는 '연속된 메모리 블록'이 필요하다는 제약'을 링크드 리스트는 각 노드가 다음 노드를 가리키는 포인터를 사용함으로써 해결했어요. 그렇다면 오늘 주인공 '해시 테이블'은 뭐 때문에 필요하게 되었는지 살펴봅시다. 레츠 기딧 ~~~ 배열과 링크드 리스트의 한계배열과 링크드 리스트는 각각의 장점을 ..
-
링크드 리스트 : 메모리 알뜰하게 사용하기CS💻/DS & Algorithm 2025. 3. 4. 22:50
빙글빙글 돌아가는 짱구의 하루~~ 자료구조 시리즈 두 번째는 바로 '링크드 리스트'입니다. 지난 시간에는 '동적 배열'에 대해서 알아보았습니다. 동적 배열은 '콜 스택 구조상 컴파일 전에 메모리 양이 정해져야 하는 한계'를 힙을 사용해 런타임에 메모리를 결정할 수 있게 해 줌으로써 해결해 줬지요?덕분에 우리는 사용자의 입력, 입,출력되는 파일 등 프로그램이 실행될 때 결정되는 것들을 유연하게 저장할 수 있게 되었어요. 동적 배열: 스택의 한계를 넘어서자료구조, 알고리즘 중요하다고들 하지만아직까지 앱을 구현할 때 해당 개념들이 엄청나게 도움이 된 적이 없다 보니 필요성을 못 느꼈는데요. ( 기업들에서 코딩 테스트를 요구하니 공부를people-analysis.tistory.com 그렇다면 링크드 리..
-
동적 배열: 스택의 한계를 넘어서CS💻/DS & Algorithm 2025. 2. 27. 19:34
자료구조, 알고리즘 중요하다고들 하지만아직까지 앱을 구현할 때 해당 개념들이 엄청나게 도움이 된 적이 없다 보니 필요성을 못 느꼈는데요. ( 기업들에서 코딩 테스트를 요구하니 공부를 하긴 해야 하는데...... )실질적인 필요를 못 느끼니 어지간히 하기 싫더군요. 그래도 하긴 해야 하니까. ( 굶어 죽지 않으려면 ) 이왕이면 좀 더 쓸모있고 재미있게 정리를 해보려고 합니다. 가봅시다. 레츠기릿동적 배열이 뭐고, 어떻게 쓰고를 알기 전에 이놈이 '왜' 필요하게 되었는지를 먼저 알아야하지 않을까요?등장 배경 : 스택의 한계우리가 작성한 프로그램이 실행되기 위해서는 운영체제로부터 메모리를 할당받은 뒤 목적에 따라 메모리 영역을 구분하여 앱을 실행하는 데 필요한 데이터들을 다루는데 사용합니다. 프로세스는 ..
-
Router가 필요한 이유와 작동 과정 살펴보기CS💻/Network🛰️ 2023. 12. 22. 00:16
Layer 3계층과 Layer 2계층을 연결하기 위해 사용하는 프로토콜이다. 주로 IP 주소만 아는 경우 ARP Request를 통해 해당 IP 주소에 해당하는 기기의 MAC 주소를 알아온다. 이렇게 함으로써 Layer 2계층은 MAC 주소로 Layer 3계층은 IP 주소로 통신이 가능해진다. [ARP : IP 주소와 MAC 주소를 매핑해준다. 허브와 스위치의 작동방식 차이를 OSI 7 Layer 랑 같이 알아보자. 스위치는 기기들 사이에서 데이터의 전달을 중개해주는 기기이다. 서로 연결하고자하는 기기들에 아래와 같이 생긴 이더넷 케이 people-analysis.tistory.com](https://people-analysis.tistory.com/293) 라우터가 필요한 이유 이번에는 쿠루루가 본부와..
-
ARP : IP 주소와 MAC 주소를 매핑해준다.CS💻/Network🛰️ 2023. 12. 21. 14:55
허브와 스위치의 작동방식 차이를 OSI 7 Layer 랑 같이 알아보자. 스위치는 기기들 사이에서 데이터의 전달을 중개해주는 기기이다. 서로 연결하고자하는 기기들에 아래와 같이 생긴 이더넷 케이블을 이용해 한쪽은 기기, 한쪽은 스위치의 구멍(포트)에 꽂으면 people-analysis.tistory.com 이전 포스트에서 탐구해봤던 허브와 스위치의 차이를 OSI 7 layer와 관련지어 간단하게 다시 정리하면 허브는 Layer 1, 물리 계층에 속하는 기기이기 때문에 전기적 신호의 전달만 할 뿐 전달하고 있는 데이터의 목적지를 알 수가 없다. 따라서 허브를 이용해 기기간의 데이터를 전달하면 해당 허브에 연결되어 있는 모든 기기에게 데이터가 전달 된다. 스위치는 Layer2, 데이터 링크 계층에 속하는 기..
-
허브와 스위치의 작동방식 차이를 OSI 7 Layer 랑 같이 알아보자.CS💻/Network🛰️ 2023. 12. 17. 12:54
스위치는 기기들 사이에서 데이터의 전달을 중개해주는 기기이다. 서로 연결하고자하는 기기들에 아래와 같이 생긴 이더넷 케이블을 이용해 한쪽은 기기, 한쪽은 스위치의 구멍(포트)에 꽂으면 이제 스위치를 통해 연결된 기기들간의 통신이 가능해진다.스위치가 있기 전에는 기기간의 연결을 위해서는 허브라는 것을 사용했다. 허브는 스위치와 겉모습은 아주 비슷하게 생겼지만 작동방식은 아주 멍청한 녀석이다.지금부터 허브와 스위치가 각각 어떻게 기기들 사이에서 데이터를 전달하는지 작동방식의 차이에 대해서 알아보자. 허브와 스위치의 작동과정을 보기에 앞서 커맨드 프롬프트에 ping 명령어에 대해서 알아보자. ping 은 현재 네트워크에 통신하고자 하는 기기가 연결되어 있는지 확인하는 명령어로 ping + ip address(..
-
네트워크와 인터넷은 무엇인가?CS💻/Network🛰️ 2023. 9. 13. 14:29
네트워크 네트워크란 유선 또는 무선 방식을 이용하여 여러 장치들 간의 정보를 주고받을 수 있도록 구성한 통신망을 의미한다. 네트워크를 구성하는 요소는 크게 노드, 메시지, 간선으로 구분할 수 있다. 노드 노드는 통신 시 데이터가 연결된 망을 통해 이동할 때 거치는 각 지점을 말한다. 예를 들어 핸드폰, 컴퓨터 또는 공유기, 라우터 등이 있다. 호스트는 통신에 있어서 데이터가 출발하고 도착하는 노드를 의미한다. ex) 핸드폰, 컴퓨터 중간 노드는 최종 도착지인 호스트 간의 데이터가 이동할 때 거치는 노드를 의미한다. ex) 공유기, 라우터 간선(통신 링크) 간선은 노드들의 사이를 연결하는 선들을 의미한다. 간 간선들은 트위스티드 페어 케이블이나 광케이블을 이용한 유선 케이블과 와이파이와 같이 무선통신 장치..