==ChatGPT가 쓴 글입니다 == Virtual Port Channel (vPC)는 Cisco Nexus 스위치에서 사용되는 기술로, 두 개의 스위치가 마치 하나의 스위치처럼 동작하도록 해줍니다. 이를 통해 고가용성과 부하 분산을 제공하면서도 네트워크의 복잡성을 줄이고, 스패닝 트리 프로토콜(STP)의 필요성을 줄여줍니다.### vPC의 주요 개념1. **vPC 도메인(vPC Domain)**: - 두 개의 물리적 스위치가 vPC 도메인으로 설정됩니다. 이 두 스위치는 vPC 도메인 내에서 동기화되고, 마치 하나의 논리적 스위치처럼 동작합니다. - 각 vPC 도메인은 고유한 도메인 ID를 가지며, 이 도메인 ID는 vPC 도메인 내의 스위치 간에 고유해야 합니다.2. **vPC 피어링 링크(..
HSRPGLBPVRRP HSRP (Hot Standby Router Protocol), VRRP (Virtual Router Redundancy Protocol), GLBP (Gateway Load Balancing Protocol)은 모두 고가용성과 부하 분산을 제공하기 위해 사용되는 라우터 프로토콜입니다. 이들 프로토콜의 주요 차이점과 장단점을 비교하여 설명하겠습니다.### HSRP (Hot Standby Router Protocol)#### 방식- HSRP는 Cisco가 개발한 프로토콜로, 한 대의 액티브(Active) 라우터와 한 대 이상의 스탠바이(Standby) 라우터를 구성하여 작동합니다.- 액티브 라우터가 패킷을 처리하며, 액티브 라우터에 장애가 발생하면 스탠바이 라우터가 액티브 역할을 ..
- 챗 지피티가 작성한 글입니다 - Routed Access 디자인은 네트워크 디자인 아키텍처의 한 형태로, 특히 대규모 기업 네트워크에서 사용됩니다. 이 디자인은 스위치와 라우터 간의 전통적인 경계를 허물어, 액세스 레이어에서 라우팅 기능을 수행하도록 설계되었습니다. 다음은 Routed Access 디자인의 주요 개념과 장점입니다:### 주요 개념1. **액세스 레이어에서 라우팅**: 전통적인 스위칭 환경에서는 액세스 레이어에서 라우팅이 수행되지 않고, 라우팅은 주로 디스트리뷰션(분배) 레이어 또는 코어 레이어에서 수행됩니다. 하지만 Routed Access 디자인에서는 액세스 레이어 스위치가 라우팅 기능을 수행합니다. 이는 각 액세스 스위치가 라우터로 동작하여 데이터 트래픽을 라우팅할 수 있도록 ..
This text is generated by ChatGPT. `typer`는 파이썬 함수를 커맨드 라인 인터페이스(CLI) 명령으로 변환하는 데 사용하는 라이브러리입니다. 이를 통해 개발자는 복잡한 파싱 로직을 작성하지 않고도 간단한 함수 정의를 통해 강력하고 사용하기 쉬운 CLI 도구를 만들 수 있습니다.### Typer의 기본 사용 예시1. **기본 함수 정의**: 간단한 함수를 정의하고, `typer`를 사용하여 그 함수를 CLI 명령으로 만듭니다.2. **명령 실행**: 사용자는 커맨드 라인에서 이 함수를 명령어 형태로 실행할 수 있습니다.### 예시 코드다음은 `typer`를 사용하여 간단한 커맨드 라인 툴을 만드는 예시입니다.```python# app.py 파일import typerapp =..
Python에서 `-m` 옵션은 모듈을 스크립트로 실행할 때 사용됩니다. 이 옵션을 사용하면 Python은 지정된 모듈의 이름을 검색하여 해당 모듈을 스크립트처럼 실행합니다. 모듈은 Python 파일이나 패키지일 수 있으며, `-m` 옵션 뒤에 모듈의 이름을 명시합니다. 예를 들어, `python -m module_name` 명령은 `module_name` 모듈을 찾아 실행합니다. 모듈이 패키지의 일부인 경우, 점(.)을 사용하여 해당 패키지 내에서 모듈의 경로를 명시할 수 있습니다. 예를 들어, `python -m package.module_name`은 `package` 패키지 내의 `module_name` 모듈을 실행합니다. `-m` 옵션을 사용하는 몇 가지 일반적인 사례는 다음과 같습니다: - **..
챕터 ### 1. INTRODUCTION - RAID 기술의 개요, 연구의 배경, 목적을 소개합니다. 데이터 저장의 중요성과 RAID가 데이터 신뢰성 및 성능 향상에 어떻게 기여하는지 설명합니다. ### 2. BACKGROUND - **2.1 Disk Terminology**: 하드 디스크 및 저장 장치 관련 기본 용어 정리. - **2.2 Data Paths**: 데이터가 시스템 내에서 어떻게 이동하는지에 대한 설명. - **2.3 Technology Trends**: 저장 장치 기술의 발전 추세 및 미래 전망. ### 3. DISK ARRAY BASICS - **3.1 Data Striping and Redundancy**: 데이터 스트라이핑과 중복성이 데이터 보호 및 성능에 미치는 영향. - **3..
1. 가입하고 아이디 만들기(GitHub로그인 하면 편하다!) 2. pubspec.yaml에 추가하기 dependencies: flutter: sdk: flutter algolia: ^1.1.2 # Ensure you're using the latest version 3. dart 클래스 만들기 import 'package:algolia/algolia.dart'; class AlgoliaService { static final Algolia _algolia = Algolia.init( applicationId: 'YourApplicationID', // Replace with Your Application ID apiKey: 'YourAdminAPIKey', // Replace with Your Admi..
안녕하세요 SweetDev입니다. 최근에 블로그에 합격 후기를 올렸었는데 예상 외로 많은 분들이 CCNA 합격 후기를 궁금해하시고, 찾아봐주신다는 사실을 알게 되었습니다. 시험이 개정된 이후, 한국어로 된 후기들이 찾기 힘들어져 그런 점도 있는 것 같습니다. 따라서 이번에 새로 개정된 CCNA 자료집을, 제가 공부했던 필기를 기반으로 한국어로 만들어서 배포해볼까 생각중입니다. 챕터는 다음과 같습니다. CCNA 공부를 시작하며 알아야 할 것들 네트워크 장비들 인터페이스 / 케이블 OSI 모델 TCP/IP 모음 CLI 입문 Ethernet LAN Switching ipv4 Address ipv4 Header Switch Interface Static 라우팅 개념잡기 패킷의 인생 서브네팅 가변길이 서브네팅 V..
1. https://developers.kakao.com/console/app 에서 내 어플리케이션 추가하기 2. IOS - ios/Runner.xcodeproj/project.pbxproj 파일 -> PRODUCT_BUNDLE_IDENTIFIER 속성 복사해서 iOS 번들 ID에 추가 3. 카카오 로그인 활성화 해주기 4. 카카오 SDK 추가 pubspec.yaml에 라이브러리를 추가한다. https://developers.kakao.com/docs/latest/ko/flutter/getting-started dependencies: kakao_flutter_sdk: ^1.7.0 # 전체 추가 kakao_flutter_sdk_user: ^1.7.0 # 카카오 로그인 kakao_flutter_sdk_ta..
SDK 다운 받기 cd ~/development unzip ~/Downloads/flutter_macos_3.16.3-stable.zip export PATH="$PATH:`pwd`/flutter/bin" 이걸로 안되면 zshrc파일 열어서 설정해주기 flutter doctor 로 설치 안된거 있나 확인 iOS 플랫폼 셋업 flutter create my_app cd my_app flutter run iOS 디바이스에서 런 하기 sudo gem install cocoapods
정말 오랜만에 적는 블로그 포스팅이네요! CCNA 준비를 하면서 후기들을 많이 찾아봤었는데, 최근 후기가 없어서 제가 작성하게 되었습니다. 0. 누가 봐야할 시험인가 CCNA 같은 경우에는, '네트워크 엔지니어'라는 구체적인 직군을 희망하지 않으신다면 굳이 공부하시는걸 추천하지 않으려고 합니다. 학부 때 배웠던 컴퓨터 통신, 네트워크 응용 설계 과목에서 다루는 내용이 50%가량이고, 나머지는 Cisco 특화된 내용이거나 굉장히 세부적인 기술입니다. 덤프를 통해서 공부해야 하는 내용도 많습니다. 네트워크 장비를 만질 일이 없는 개발자와 같은 직군에서는 필요하지 않은 지식이 너무 많다고 느꼈습니다. 1. 시험 범위와 난이도 시험 범위는 cisco 홈페이지에 명시되어 있지만 꼭 덤프를 보시는걸 추천합니다. 저..
언젠가 써야지 써야지 했는데 4개월이 지난 지금에서야 쓰게 되네요... 이 글은 제가 중앙대 에브리타임에도 올렸던 글입니다. 블로그에 올리기 위해서 조금 각색했습니다 :D [미국 대학원 관련 정보] 0. 왜 대학원을 가는 선택을 하게 되었는가 - 인턴과 외주 경험 중 느낀 개발에 대한 회의: 개인적으로 개발자라는 직업에 딱 맞지 않다고 느낌. 나는 사람들이랑 좀 더 소통하는 직업이 갖고싶었음. - 한 수업에서 교수님이 “박사가 되어야 하는 이유” - 커리어적으로 안정적이다, 전문 지식을 성장 시킬 수 있다 등 장점을 말해주셨는데 그때부터 진지하게 생각했습니다. - 한 분야의 전문가가 될 수 있다는게 너무 멋있어 보였다. - 3학년 여름 방학부터 유학 준비를 시작했는데 너무 늦게 시작해서 모든 과정이 촉박..
ctrl+A 줄 처음으로 이동 ctrl+E 줄 끝으로 이동
지프의 법칙에 따르면 어떠한 자연어 말뭉치 표현에 나타나는 단어들을 그 사용 빈도가 높은 순서대로 나열하였을 때, 모든 단어의 사용 빈도는 해당 단어의 순위에 반비례한다. 따라서 가장 사용 빈도가 높은 단어는 두 번째 단어보다 빈도가 약 두 배 높으며, 세 번째 단어보다는 빈도가 세 배 높다. 예를 들어, 브라운 대학교 현대 미국 영어 표준 말뭉치의 경우, 가장 사용 빈도가 높은 단어는 영어 정관사 “the”이며 전체 문서에서 7%의 빈도(약 백만 개 남짓의 전체 사용 단어 중 69,971회)를 차지한다. 두 번째로 사용 빈도가 높은 단어는 “of”로 약 3.5% 남짓(36,411회)한 빈도를 차지하며, 세 번째로 사용 빈도가 높은 단어는 “and”(28,852회)로, 지프의 법칙에 정확히 들어 맞는다...
Single Responsibility Principle 하나의 클래스는 하나의 목적만 Open Close Principle 확장에는 열려있고 변경에는 닫혀있게 Liskov Substitution Principle 상속받은 하위 클래스는 언제나 자신의 상위 클래스로 교체할 수 있어야 함 Interface Segregation Principle 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 않아야함 Dependency Inversion Principle 추상을 매개로 메세지를 주고 받으면서 관계를 최대한 느슨하게 만듦
GoF 디자인 패턴 Creational Pattern(생성 패턴) Singleton Abstract Factory Factory Method Prototype Builder Structual Pattern(구조 패턴) Bridge Decorator Facade Flyweight Proxy Composite Adapter Behavioral Pattern Mediator Interpreter Iterator Template Method Observer State Visitor Command Strategy Memento Chain of Responsibility
https://skillsforall.com/resources/lab-downloads?courseLang=en-US Skills for All Resource Hub Your one-stop for learning resources used within our courses such as hands-on practice activities and our network simulation tool, Cisco Packet Tracer. skillsforall.com:443 가입하고 이 링크로 들어가면 된다.
import ijson import json with open(filePath, 'r') as json_file: print('hello') data = ijson.items(json_file, 'item') papers = (o for o in data) pp= [] index = 0 for p in papers: with open(writePath, 'w') as f: json.dump(p, f, ensure_ascii=False) index += 1
'screen'이라는 툴을 사용하면 ssh 원격 환경에서 딥러닝 학습 코드를 돌려놓고 ssh커넥션이 끊어져도 여전히 터미널이 돌아갈 수 있도록 해준다. tmux는 screen의 기능도 포함하고, 터미널을 여러개로 분할해서 UI를 관리하는 것도 도와주는 종합적 세션 관리 툴이다. 설치 왠지 모르게 되어 있었다. 없다면 sudo apt install tmux tmux new -s session_name Tmux 세션 분리 다음을 입력하여 Tmux 세션에서 분리하고 일반 쉘로 돌아갈 수 있습니다. Ctrl+b d Tmux 세션에 다시 연결 세션에 먼저 연결하려면 세션 이름을 찾아야 합니다. 현재 실행 중인 세션 목록을 가져오려면 다음을 입력합니다. tmux ls 출력에서 볼 수 있듯이 Tmux 세션은 2개가 ..
CSV 파일 문법 1. csv파일은 column을 comma로 분리한다. 따라서 데이터 안에 comma가 들어간다면 ""로 묶어주는 과정이 필요하다. 2. 배열 처리하기 "raw_text","aspectTerms" "I charge it at night and skip taking the cord with me because of the good battery life .","[{'term':'cord', 'polarity':'negative'}]" 이러한 데이터가 있을 때, 처리를 위해서 3. 따옴표 처리하기 작은 따옴표는 괜찮지만 큰 따옴표 "는 ""로 처리해줘야 한다. 파이썬 문법 1. 대괄호 작성: f-string 작성 시 두번 써줘야 한다. {{}} sentence = f'"{line_1}","..
Airflow란? Apache Airflow는 초기 에어비엔비(Airfbnb) 엔지니어링 팀에서 개발한 워크플로우 오픈 소스 플랫폼 ** 워크플로우란? : 의존성으로 연결된 작업(Task)들의 집합 (ex) ETL의 경우 Extractaction > Transformation > Loading 의 작업의 흐름 프로그래밍 방식으로 워크플로우를 작성, 예약 및 모니터링 설치 dependency 문제가 많으므로 virtualenv에 설치하는 것을 추천한다. pip install apache-airflow 실행 원하는 위치에서 airflow initdb 따로 설정 없이도 홈 디렉토리의 airflow 디렉토리에 airflow db파일이 생성된다. 127.0.0.1:8080 접속 시 initialize가 제대로 된..
Airflow란? Apache Airflow는 초기 에어비엔비(Airfbnb) 엔지니어링 팀에서 개발한 워크플로우 오픈 소스 플랫폼 ** 워크플로우란? : 의존성으로 연결된 작업(Task)들의 집합 (ex) ETL의 경우 Extractaction > Transformation > Loading 의 작업의 흐름 프로그래밍 방식으로 워크플로우를 작성, 예약 및 모니터링 설치 dependency 문제가 많으므로 virtualenv에 설치하는 것을 추천한다. pip install apache-airflow 실행 원하는 위치에서 airflow initdb 따로 설정 없이도 홈 디렉토리의 airflow 디렉토리에 airflow db파일이 생성된다. 127.0.0.1:8080 접속 시 initialize가 제대로 된..
do-try-catch문에서 throw를 하기 위한 error 타입을 가장 간단하게 어떻게 정의할 수 있을까? enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coinsNeeded: Int) case outOfStock } 공식 문서에서는 enum 타입으로 정하길 권장한다. Default: 별도로 정의하지 않고 NSError을 사용하는 방법 import Foundation do { throw NSError(domain: "my error domain", code: 42, userInfo: ["ui1":12, "ui2":"val2"] ) } catch let error as NSError { print("Caugh..