반응형

분류 전체보기 65

# 토폴로지

토폴로지란?네트워크 토폴로지란 노드와 링크가 어떻게 구성되어있는지를 말한다. 토폴로지에는 버스, 스타, 트리, 링, 메시가 있다. 버스 토폴로지특징하나의 회선에 여러개의 노드노드 추가, 삭제 쉽다. 설치비용이 적다. 장점소규모 네트워크를 구축하기 매우 쉽다.한 노드에 장애가 발생해도 다른 노드에 영향 x단점메인 링크에 많은 트래픽이 생기면 병목현상 발생 가능성 높다.(패킷 손실율 높다.)이게 무슨 말이냐면 하나의 회선만 사용하기 때문에 회선에 너무 많은 트래픽이 발생하면 정체 될 수 있다는 것이다.메인 링크 망가지면 큰 문제이것도 하나의 회선만 사용해서 발생하는 문제 인데 하나의 회선이 망가져도 전체 네트워크에 문제가 발생하는 것이다.스타 토폴로지특징중앙에 있는 노드를 기반으로 연결된 형태노드 추가, 삭..

CS 공부 2025.02.22

# 네트워크란?

네트워크란?네트워크란 노드와 링크(엣지)가 서로 연결되어 있으며 자원을 공유하는 집합이라고 한다.노드: 서버, 라우터, 스위치, 브리지 등 네트워크 장비링크(엣지): 유선 또는 무선과 같은 연결매체(와이파이나 LAN)즉, 노드와 노드를 연결해주는 매개체를 링크라고 보면된다.트래픽이란?특정시점에 링크내에 흐르는 데이터의 양처리량이라는 개념도 나오는데 이것은 링크내에서 성공적으로 전달된 데이터의 양을 말한다. 쉽게 말해서 트래픽을 처리하는 양을 의미한다.트래픽의 단위과 처리량의 단위는 bps(bit per second)다. 대역폭이란?주어진 시간동안 네트워크 연결을 통해 흐를 수 있는 최대 bit 수를 의미한다.(최대 트래픽)고속도로를 생각하면 된다. 2차선보다 8차선이 더욱 원활하게 교통이 이뤄지듯이 대역..

CS 공부 2025.02.22

# 컨텍스트 란?

🏹 전략 패턴을 공부하다가 만난 컨텍스트(Context)란?전략 패턴을 공부하다 보니 컨텍스트(Context)라는 개념이 나왔다.그런데 이 단어, 생각보다 여러 의미로 쓰이고 있는 것 같다.정확히 어떤 의미인지 정리해 보자. 🔍 컨텍스트(Context)의 두 가지 의미컨텍스트라는 단어는 두 가지 주요한 의미로 사용된다. 1️⃣ 상태나 환경을 캡슐화한 것어떤 동작이 실행되는 환경이나 상태를 감싸고 있는 개념이다.예를 들어, 전략 패턴에서 컨텍스트는 전략(Strategy)을 포함하고,전략이 실행될 환경을 관리한다. 2️⃣ 작업이 중단되었다가 다시 실행될 때 필요한 최소한의 데이터 집합예를 들어 컨텍스트 스위칭(Context Switching)에서 사용되는 의미다.운영체제에서 CPU가 여러 프로세스를..

CS 공부 2025.02.20

# DI(의존성주입)과 전략패턴의 차이

# 🤔 의존성 주입(DI) vs 전략 패턴(Strategy Pattern), 뭐가 다를까?오늘은 **의존성 주입(Dependency Injection, DI)** 과 **전략 패턴(Strategy Pattern)** 의 차이를 정리해보려고 한다.  둘 다 **유연성을 높이고, 쉽게 교체할 수 있도록 설계하는 패턴**이라는 점에서 공통점이 있다. 하지만 분명한 차이도 존재한다.  ## 🎭 전략 패턴(Strategy Pattern) - 행동을 바꾸고 싶다면?전략 패턴은 **"행동(Strategy)"을 교체할 수 있도록 설계하는 패턴**이다.  즉, **동일한 기능을 수행하는 여러 개의 구현체**를 만들고, **런타임에 동적으로 선택할 수 있도록 구성**하는 것이 핵심이다.  예를 들어, `Sorter`라..

CS 공부 2025.02.20

# Flux 패턴

🚀 Flux 패턴: 단방향 데이터 흐름이 답일까?MVC 패턴이 익숙하긴 한데, 점점 규모가 커지는 애플리케이션에서 복잡성이 너무 올라가는 문제가 있다고한다. 이러한 문제점을 해결해준 것이 Flux 패턴이라고 한다. 🤔 🎯 Flux 패턴이란?Flux 패턴은 단방향으로 데이터 흐름을 관리하는 디자인 패턴이다.이 패턴은 Facebook(Meta)에서 개발했는데, 페이스북 메신저에서 알림 카운트를 관리하는 과정에서 기존의 MVC 패턴이 한계를 드러내면서 등장하게 되었다. 예를 들어, 메시지가 몇 개 왔는지를 저장하는 markSeen이라는 변수가 있었는데, MVC 구조에서는 모델과 뷰 간의 관계가 너무 복잡해졌다.데이터 흐름이 엉키다 보니 markSeen이 제대로 동작하지 않는 문제가 발생했고, 이를 해..

CS 공부 2025.02.20

# MVC, MVP, MVVM 패턴

🏗️ MVC, MVP, MVVM 패턴 - 같은 듯 다른 이들?UI 관련 아키텍처 패턴인 MVC, MVP, MVVM 패턴을 정리해보려고 한다.공부하면서 궁금한 점도 하나씩 짚어보자.🎭 MVC 패턴 - Model, View, ControllerMVC 패턴은 가장 익숙한 디자인 패턴 중 하나다.Spring 웹 MVC를 공부하면서 접한 적이 있는데, 다시 한번 개념을 정리해 보자.🛠️ 각 요소의 역할Model (모델):데이터를 담당하는 부분이다. 데이터베이스, 변수, 상수 등 애플리케이션의 핵심 정보가 들어간다.예를 들어, 사용자가 네모 박스(input box)에 글자를 입력한다고 하면,모델은 네모 박스의 크기, 입력한 글자 내용, 글자의 위치, 포맷 정보 등을 저장한다. View (뷰):사용자에게 보여..

CS 공부 2025.02.20

# 프록시 패턴

프록시 패턴이란? 🤔프록시 패턴은 객체가 어떤 대상 객체에 접근하기 전, 그 접근에 대한 흐름을 가로채서 필터링하거나 수정하는 등의 역할을 하는 디자인 패턴이다. 그럼 구체적으로 어떻게 사용되는 걸까? 예를 들어, 내가 "솔로"라는 객체를 가지고 있다고 가정해보자. 이 객체가 나중에 "커플"로 변경되는 상황이 생기면, 프록시가 그 변경 과정을 가로채서 "객체가 솔로에서 커플로 변경되었습니다!"라는 정보를 출력할 수 있다. 이런 식으로 프록시 패턴은 객체의 상태 변화나 액세스를 조작할 수 있는 기회를 제공한다. 프록시, 왜 중요한가? 🛡️프록시 패턴이 왜 중요한지, 조금 더 살펴보자. 우리가 서버를 배포할 때, 그냥 서버를 배포하는 게 아니다. 예를 들어, 우리가 개발자(나) -> 서버처럼 직접 접근하..

CS 공부 2025.02.20

# 옵저버 패턴

👀 옵저버 패턴 (Observer Pattern) - 상태 변화를 감시하는 패턴오늘은 옵저버 패턴에 대해 공부해봤다.이 패턴은 주체(Subject)가 어떤 객체의 상태 변화를 관찰하다가 변화가 생기면,옵저버(Observer) 목록에 있는 객체들에게 변화를 알려주는 방식이다. 음... 이게 무슨 말일까? 🤔쉽게 말해서, 트위터 같은 SNS의 메인 로직이 이 패턴을 기반으로 동작한다고 한다. 🐦 트위터와 옵저버 패턴트위터를 생각해보면, 내가 누군가를 팔로우하면 그 사람이 새로운 트윗을 올릴 때마다 내 타임라인에 자동으로 업데이트된다.이걸 코드로 풀어보면 대략 이런 구조가 될 것 같다. 주체 (Subject) - 트윗을 올리는 사람 (예: 유명인) 옵저버 (Observer) - 트윗을 구독하는 사..

CS 공부 2025.02.20

# 전략 패턴

🎯 전략 패턴(Strategy Pattern)이란?오늘은 디자인 패턴 중 하나인 전략 패턴(Strategy Pattern)에 대해 정리해보려고 한다.전략 패턴이란, 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 디자인 패턴이라고 한다. 🔑 로그인 방식과 전략 패턴우리가 인프런 같은 사이트에 로그인할 때 여러 가지 방법이 있다. 아이디 & 비밀번호 로그인 (이메일 가입) 카카오 로그인 구글 로그인 깃허브 로그인 애플 로그인 즉, "로그인"이라는 같은 행위를 수행하지만, 로그인 방식(전략)이 다를 수 있다.이때, 그냥 아이디 & 비밀번호를 입력하는 방식을 "로컬 전략(Local Strategy)"이라고 부른다.반면, 카카오나 구글 같은 외부 ..

CS 공부 2025.02.20

# 의존성 주입과 의존관계 역전 원칙

🔗 의존성 주입과 의존관계 역전 원칙요즘 의존성 주입(DI, Dependency Injection) 과 의존관계 역전 원칙(DIP, Dependency Inversion Principle) 에 대해 공부하고 있다.이 개념들을 제대로 이해하면 코드의 결합도를 낮추고 유지보수하기 쉬운 구조를 만들 수 있다고 하는데, 아직 머릿속이 정리되지 않은 느낌이다.일단 하나씩 정리해보자. 🏗️ 의존성 주입(DI, Dependency Injection)이란?어떤 프로그램에서 "A가 B를 직접 생성하고 사용한다" 라는 구조를 생각해보자.이 경우, B가 변하면 A도 영향을 받는다. 즉, A는 B에 강하게 의존 하고 있는 것이다. class B { public void go() { System.out..

CS 공부 2025.02.20
반응형