본문 바로가기

전체 글29

[Packet Tracer] 0. Cisco Packet Tracer란? 1. Cisco란?시스코(Cisco)는 네트워크 장비 및 솔루션을 제공하는 기업입니다. 라우터, 스위치, 보안 장비 등 다양한 네트워크 관련 제품을 개발하고 있습니다. 2. Cisco Packet Tracer란?Cisco Packet Tracer는 시스코에서 개발한 네트워크 시뮬레이션 도구입니다. 기능 및 특징네트워크 시뮬레이션: Packet Tracer는 가상의 네트워크 환경을 구축하고 테스트할 수 있는 플랫폼을 제공합니다.다양한 장비 지원: 라우터, 스위치, 허브, 컴퓨터, 서버 등 다양한 네트워크 장비를 시뮬레이션할 수 있습니다. Cisco IOS 명령어를 사용해 라우터, 스위치 구성을 실습할 수 있습니다.패킷 흐름 시각화: 데이터 패킷이 네트워크를 통해 이동하는 과정을 시각적으로 확인할 수 있습니.. 2024. 12. 23.
[도서] 후니의 쉽게 쓴 시스코 네트워킹 최근에 리눅스마스터 2급 시험을 준비하면서 네트워크 공부가 더 하고 싶어져서 구입한 책이다. yes24에서 구매했고, 40850원에 구입했다. (퇴사하고 오랜만에 내 돈 주고 개발 책 구매하려니.. 비싸다..) 학교 다닐 때부터 네트워크는 뭔가 너무 막연하고 어렵다는 생각을 가지고 있었는데 책 읽으면서 제대로 공부하니 너무 재밌다.책에서 이더넷부터, 허브, 스위치, 라우터, 무선 네트워크, IPv6까지 거의 네트워크 모든 내용을 다루고, 너무 쉽게 설명해주어서 네트워크 기초를 잡기에 좋은 책인 것 같다. Packet Tracer도 설치해서 실습하면서 읽었는데 개념을 잡는데 큰 도움이 되었다. 책 읽으면서 실습한 Packet Tracer 내용은 따로 포스팅할 예정이다. 전에 사두었던 다른 네트워크 책도 엄.. 2024. 12. 23.
[Design Pattern] 어댑터 패턴(Adapter Pattern) 어댑터 패턴(Adapter Pattern)이란? 어댑터 패턴(Adapter pattern)은 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴으로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해준다. 어댑터 패턴 구조 Client는 Target 인터페이스를 구현한 Adaptee가 필요하다. Adaptee는 Target 인터페이스를 구현하지 않고 있다. Adaptee는 이미 개발이 완료되어 사용중이다. Adaptee를 변경하는 것이 적절하지 않은 상황이다. 1. Client는 Target 인터페이스를 통해 Adaptee를 사용하고자 한다. interface Target { Response request(); } 2. Adaptee는 이미 개발이 완.. 2022. 6. 6.
[Python] 연결 리스트(Linked List) 구현하기 노드(Node) 연결 리스트(Linked List)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다. 연결 리스트를 구현하기 위해서는 노드(Node)를 먼저 구현해야 한다. 노드(Node) 구현 노드는 데이터와 다음 노드를 가리키는 포인터를 가진다. class ListNode: def __init__(self,val): self.val = val self.next = None 노드(Node) 연결 다음 노드를 가리키는 포인터(next)를 통해 다음 노드와 연결할 수 있다. head_node = ListNode(12) head_node.next = ListNode(74) head_node.next.next = ListNode(23) head_node.n.. 2022. 5. 24.
[Data Structure] 큐(Queue) 큐(Queue)란? 큐(queue)는 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조의 자료구조이다. 나중에 집어 넣은 데이터가 먼저 나오는 스택과는 반대되는 개념이다. 큐(Queue)의 연산 큐는 아래와 같은 연산들이 필요하다. enqueue(): 큐의 맨 뒤(rear)에 데이터를 삽입한다. dequeue(): 큐의 맨 앞(front)에서 데이터를 삭제한다. peek(): 큐의 맨 앞(front)의 데이터를 제거하지 않고 반환한다. isEmpty(): 큐가 비었다면 1을 반환하고, 그렇지 않다면 0을 반환한다. 여기서 front는 큐의 맨 앞의 위치(인덱스)를 의미하고, rear는 큐의 맨 뒤의 위치(인덱스)를 의미한다. 큐(Queue)의 종류 Linear Queu.. 2022. 5. 23.
[Data Structure] 스택(Stack) 스택(Stack)이란? 스택(stack)은 제한적으로 접근할 수 있는 나열 구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO - Last In First Out)으로 되어 있다. 자료를 넣는 것을 '밀어넣는다' 하여 푸쉬(push)라고 하고 반대로 넣어둔 자료를 꺼내는 것을 팝(pop)이라고 하는데, 이때 꺼내지는 자료는 가장 최근에 푸쉬한 자료부터 나오게 된다. 이를테면, a부터 b와 c를 순서대로 넣은 다음 자료를 하나씩 꺼내면 c부터 b와 a의 순서로 나오게 된다. 스택(Stack)의 연산 S를 스택, x를 데이터 요소(element)라고 하자. 그러면 스택에서는 아래와 같은 중요한 연산이 존재하는 것을 알 수 있다. .. 2022. 5. 23.
[Data Structure] 연결 리스트(Linked List) 연결 리스트(Linked List)란? 연결 리스트(Linked List)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다. 데이터를 담고 있는 노드들이 연결되어 있는데, 노드의 포인터가 다음이나 이전의 노드와의 연결을 담당하게 된다. 연결 리스트(Linked List)의 종류 단순 연결 리스트(Singly linked list) 단일 연결 리스트(Singly linked list)는 각 노드에 자료 공간과 한 개의 포인터 공간이 있고, 각 노드의 포인터는 다음 노드를 가리킨다. 이중 연결 리스트(Doubly linked list) 단순 연결 리스트(Singly Linked List)는 next로 현재 노드에서 다음 노드로 갈 수 있지만 이전 노드로는.. 2022. 5. 17.
[Java] SOLID란? SRP 단일 책임 원칙(Single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다는 원칙이다. OCP 개방-폐쇄 원칙(Open/closed principle) 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다는 원칙이다. 다형성을 활용해야 한다. LSP 리스코프 치환 원칙(Liskov substitution principle) 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야하는 원칙으로 상위 타입을 상속해서 재정의 했을 때 프로그램이 깨지지 않아야 함을 의미한다. ISP 인터페이스 분리 원칙(Interface segregation principle) 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터.. 2022. 5. 16.
[Java] 객체지향이란? 객체지향이란? 객체지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그램을 실제 세상에 가깝게 모델링하는 컴퓨터 프로그래밍 패러다임 중 하나로, 실제 세계의 데이터를 추상화 시켜 프로그래밍에서 상태와 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호작용으로 구성하는 프로그래밍 방법이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. OOP의 4가지 특징 추상화 구체적인 사물들의 공통적인 특징을 파악해서 이를 하나의 개념(집합)으로 다루는 것이다. 즉 객첵들의 공통적인 특징(속성, 기능)을 모아 하.. 2022. 5. 16.