분류 전체보기 235

네트워크 성능 분석

👣 네트워크 성능 분석 절차 1. 네트워크와 무관한 애플리케이션 테스트를 진행. 2. 1번에서 문제가 없다면 네트워크 성능 분석. 👣 네트워크 성능 분석 방법 👣 ping [특정 노드의 IP] 특정 노드에 대해 일정 크기의 패킷을 전송하는 명령어. TCP/IP 프로토콜 중 ICMP 프로토콜을 사용 다음을 알 수 있다. 패킷 수신 상태 패킷 도달 시간 링크 장애 여부 👣 netstat 현재 접속되어 있는 서비스들의 네트워크 상태를 표시. 주로 어떤 포트가 사용되고 있는지 확인하기 위해 사용. 👣 nslookup DNS를 이용해서 특정 도메인[Ex) www.google.com]의 IP를 알아낸다. 👣 tracert / traceroute 목적지까지의 네트워크 경로를 확인.

네트워크 2023.07.20

네트워크 토폴로지

👣 개요 네트워크에서 노드와 링크가 어떻게 배치되어 있는지에 대한 방식. 👣 Tree Topology 계층형 토폴로지 장점 - 노드 추가, 삭제가 쉽다. 단점 - 트래픽이 집중될 때, 하위 노드에 영향을 줄 수 있다. 👣 Bus Topology 하나의 통신 회선에 노드가 연결된 형태. LAN에서 사용. Bus 내의 모든 노드는 동일한 패킷을 받아볼 수 있다. 장점 - 설치 비용이 적다, 추가 삭제가 쉽다. 단점 - 스푸핑에 취약하다. 👣 스푸핑 LAN 상에서 송신부의 패킷을 특정 노드[Ex) 해커의 서버]에 오도록 하는 보안 공격 기법. 👣 Star Topology 중앙 집중형 네트워크 구성. 장점 - 노드 추가 수정이 쉽다, 패킷 충돌 가능성이 적다, 중앙 노드만 제외하면 다른 노드의 장애가 전파되지 ..

네트워크 2023.07.20

네트워크 용어 모음

👣 노드 서버, 라우터, 스위치와 같은 네트워크 장치 👣 링크 유,무선으로 실현된 연결. 👣 처리량 - Throughput 링크 내에서 성공적으로 전달된 데이터의 양. 단위 : bps(bits per second) 👣 대역폭 - bandwidth 주어진 시간동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수 👣 지연 시간 - Latency 요청이 응답을 받기까지의 시간. 메시지의 왕복 시간.

네트워크 2023.07.20

Programming Paradigm

👣 개요 프로그래밍 패러다임이란? 프로그래머에게 프로그래밍의 과점을 갖게 해주는 역할. Ex) 객체 지향 프로그래밍 -> 프로그램은 객체들의 집합. 함수형 프로그래밍 -> 순수 함수들의 연속. 👣 선언형 선언형의 철학 프로그램은 함수로 이뤄진 것이다. 👣 순수 함수 전역 변수에 의해 출력이 훼손되는 것이 아니라 입력값이 같기만 하면 무조건 출력값도 같은 함수. def add(a,b): return a+b 👣 고차 함수 함수의 입력에 함수가 포함되는 함수. def map(arr, func): return func(arr) 👣 일급 객체 고차 함수를 사용하기 위해선 해당 언어가 일급 객체여야 함. 일급 객체 특징 1. 변수나 메서드에 함수를 할당할 수 있다. 2. 함수 매개변수에 함수를 할당할 수 있다. 3..

디자인 패턴 2023.07.19

MVC Pattern - 아키텍쳐

👣 개요 애플리케이션의 기능을 Model-View-Controller 구조로 분리해서 유지보수성, 확장성, 재사용성을 향상시킨 패턴. Model 애플리케이션의 데이터을 다루는 요소 및 비즈니스 로직을 다루는 요소. View 애플리케이션의 UI를 다루는 요소. Controller 애플리케이션의 Model과 View를 중계하는 요소. 👣 결과 1. 테스트의 용이성 각 구성 요소를 분리해 테스트를 용이하게 만듦. 2. 구성 요소 간 낮은 의존성 낮은 의존성은 수정해야 하는 부분의 범위를 각 구성 요소로 규정짓기에 유지 보수성이 향상됩니다.

디자인 패턴 2023.07.19

Iterator Pattern - 행위

👣 문제 상황 자료들을 담고 있는 컨테이너들을 순회하는 방법을 자료구조에 상관없이 공통 인터페이스로 추상화해서 사용하는 패턴. 👣 해결 방법 interface Aggregate { Iterator createIterator(); } interface Iterator { boolean hasNext(); Object next(); } class ConcreteAggregate implements Aggregate { private String[] elements; public ConcreteAggregate() { elements = new String[]{"A", "B", "C", "D", "E"}; } @Override public Iterator createIterator() { return new ..

디자인 패턴 2023.07.19

Proxy Pattern - 구조

👣 문제 상황 특정 객체에 대한 접근을 제어하거나 공통적으로 부가 기능을 부여해야 할 때, 사용함. 목적 : 객체를 접근하기 전에 일괄 적용하고 싶은 기능 부여 👣 해결 방법 interface Service { void do(); } class RealService1 implements Service { @Override public void do() { System.out.println("Do it By RealService1"); } } class RealService2 implements Service { @Override public void do() { System.out.println("Do it By RealService2"); } } class ServiceProxy implements S..

디자인 패턴 2023.07.19

Observer Pattern - 행위

👣 문제 상황 특정 그룹의 객체들에게 일괄적으로 특정 행위를 하게 만들어야 할 때, 사용함. 예를 들어, 트위터에서 트윗을 작성하면 팔로워들의 피드에 해당 트윗을 띄워야 함. 목적 : 객체 그룹의 특정 행위 실행. 👣 해결 방법 public interface Publisher { public void add(Observer observer); public void delete(Observer observer); public void notifyObserver(); } public interface Observer { public void update(String arg); } public class PublisherImpl implements Publisher { private List observers..

디자인 패턴 2023.07.19

Strategy Pattern - 행위

👣 문제 상황 특정 클래스의 메서드를 자주 변경해야 하는 경우가 존재할 수 있다. 물론 해당 행위를 미리 규정한 클래스를 새롭게 정의해도 괜찮다. 하지만 해당 패턴은 굳이 새롭게 클래스를 모두 만들기보다 딱 메서드의 행위만 새롭게 정의하고 싶을 때, 사용할 수 있다는 장점이 있다. 목적: 특정 메서드의 유연성 향상 👣 해결 방법 interface SortingStrategy { void sort(int[] numbers); } class BubbleSortStrategy implements SortingStrategy { @Override public void sort(int[] numbers) { // Bubble Sort 구현 } } class QuickSortStrategy implements So..

디자인 패턴 2023.07.19