본문 바로가기

IT60

3. 네트워크 통신 눈으로 보기 WireShark 내 컴퓨터는 구글과 어떻게 찾아가서 연결되는걸까? 잠시 커맨드 명령어로 찾아가는걸 볼게요. win + r 로 실행창에 cmd를 입력하여 커맨드 창을 켜볼게요. 그리고 tracert 8.8.8.8 을 입력해보세요. 8.8.8.8dms 구글의 DNS에요. 192.168.0.1 의 우리집 주소부터 시작해서 구글서버에 붙기까지의 경로를 찾아줘요. 이렇게 우리는 건너고 건너고.. 건너가 구글에 붙을 수 있죠. 다음은 WireShark로 좀 더 자세하게 통신을 살펴볼게요. www.wireshark.org/download.html Wireshark · Download Riverbed is Wireshark's primary sponsor and provides our funding. They also make gre.. 2021. 3. 18.
2. 네트워크 통신 방식과 프로토콜 전 포스트에선 네트워크의 구성 단위 에 따른 분류를 보았는데 그 네트워크는 어떻게 노드간 연결을 가능하게 할까요? 통신방식 알아보겠습니다. ㅁ 통신 방식 - 유니 캐스트 가장 많이 사용되고 있는 유니캐스트는 특정한 사용자의 노드와 통신하는 1:1 관계에요. 자신의 MAC 주소와 목적지의 MAC 주소를 첨부하여 전송하는 방식을 말하고, 수신측은 날아온 프레임에서 목적지 MAC 주소가 자신의 MAC 주소와 같지않다면 그 프레임을 버리게 되요. 같다면 데이터를 이용해 통신을 하게 되요. 무수한 유니캐스트가 들어와도 MAC 주소로 걸러내기에 네트워크에 연결되어 있는 노드들의 성능에는영향을 미치지 않아요. - 멀티 캐스트 멀티 캐스트는 1 : 특정 N 관계에요. 특정 그룹에만 프레임을 뿌리는거에요 Ex) 오늘은 .. 2021. 3. 17.
1. 네트워크란 ? Network 사전적 의미로 명사 1. =방송망(放送網).순화어는 `망', `방송망', `통신망', `방송 체제'. 라고 나온다. 네트워크란 노드(통신장비)들이 데이터를 공유할 수 있게한 전기 통신망이에요 이 네트트워크의 구분부터 살펴볼게여 - 통신 크기에 따른분류 LAN 그리고 WAN LAN (Local Area Network) 한번쯤 봤겠죠? 스타를 친구들끼리 LAN 환경에서 한번쯤은 해보았을거라 생각해요 LAN은 근거리 통신망 이죠. 사무실, 학원, PC 방 등등 여러 로컬 노드들이 스위치, 공유기, 허브 등 연결 장치에 물려 LAN 통신을 하고 있어요. 그렇기에 서로 연결되어 데이터를 주고받고 스타를 즐길 수 있어요. 근거리 통신에는 유리하겠죠 바로 연결되어있으니 하지만 집에서 10km 떨어진 친.. 2021. 3. 17.
4. 선택정렬 public class SelectionSort { // 두 인덱스의 벨류를 바꾸는 메서드 // 정렬할 정수 배열과 서로 교체할 인덱스 i, j 를 인자로 받는다 public static void swapElements(int[] arr, int i, int j) { // 기존의 수 [i]를 따로 기억하고 int temp = arr[i]; // 기존 [i] 자리에 [j]의 값을 넣으며 arr[i] = arr[j]; // 저장해두었던 [i]의 값을 다시 [j]의 자리에 넣는다. arr[j] = temp; } // 탐색 // 정수 배열과 시작 인덱스를 인자로 받는다. public static int indexLowest(int[] arr, int start) { // 시작인덱스를 따로 기억하고 int low.. 2021. 3. 16.
3. 알고리즘 분석 어떤 응용프로그램인지에 따라 어떤 구현체를 사용하여 데이터를 처리하는게 좋은지 알 수 있는 방법중 한가지 방법은 두 구현체를 모두 구현하여 비교해보는 것이다. 이 방법에는 몇 가지 문제점이있고 다음과 같다. - 알고리즘 비교시 사전에 모두 구현하여 비교해봐야한다 (비용 상승) - 경과는 사용 컴퓨터의 성능에 의전한다. - 결과는 문제 크기나 입력으로 사용하는 데이터에 의존하기도 한다. 알고리즘 분석을 사용하면 이런 문제들을 해결할 수 있다. 하지만 몇가지를 가정해야하는데 그 는 아래와 같다. 1. 하드웨어에 세부사항을 다루지 않기에 보통 알고리즘을 이루는 기본 사칙 연산등의 기본연산을 식별하며 이 연산 수를 센다. 2. 입력데이터의 세부사항을 다루지 않기위해 평균 성능 분석을 하며 가능하지 않을때는 최악.. 2021. 3. 16.
2. List Interface? 리스트는 왜 나뉘어져있을까? JCF (Java Collection Framework)를 사용하다보면 종종 ArrayList와 LinkedList로 List에 주입하는데 왜 두가지 구현을 제공할까? 어떤 동작은 ArrayList가 빠르고 어떤 상황에서는 LinkedList가 더 효율적이다. List와 같이 Interface는 메서드의 집합을 의미한다 아래 코드를 보자. public class ExampleList { private List list; private ExampleList() { list = new LinkedList(); } private List getList() { return list; } public static void main(String[] args) { ExampleList i.. 2021. 3. 16.
1. 자료구조 왜? - 왜 배우지? 와 닿지는 않지만.. 자바의 컬렉션 프레임워크와 주요클래스를 중심으로 개념을 학습하고 시간 복잡도를 분석하며 성능을 측정할 수 있는 능력음 함양하고 그 다음으로 이어질 자바 성능에대해 접근하기 위함. 하~ 자료구조와 알고리즘은 소프트웨어의 품질을 높이는 아주아주 기본적인 작업이래요 그래서 해보려고요 2021. 3. 16.
4. 객체 지향 설계와 스프링 - 스프링과 객체 지향 설계 스프링은 다형성과 OCP, DIP를 다음과 같은 기술로서 지원한다. DI (Dependency Injection) : 의존관계, 의존성 주입 DI 컨테이너 제공 - 클라이언트 코드의 변경없이 기능을 확장하며 쉽게 부품을 교체하듯이 개발할 수 있다. 모든 설계에 역할과 구현을 분리하자. 모든 설계에 인터페이스를 부여하자. 2021. 3. 15.
3. 좋은 객체 지향 설계의 5원칙 (SOLID) S. SRP (Single Responsibility Principle) - 한 클래스는 하나의 책임만 가져야한다. 하나의 책임이란 것은 문맥과 상황에 다라 모호하지만 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른것. O. OCP (Open Closed Principle) - 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야한다. 예를 들자면 공연이라는 소프트웨어에 대본(역할)이라는 인터페이스가 있다. 그리고 그 대본을 이용하여 공연을 구현하는 배우들이 있다. 이 배우가 누구로든 바뀔 수 있는게 확장에는 열려있는것이다. 하지만 대본은 공연이 시작되면 바꿀수 없어야한다. A 가 본 공연과 B가 본 공연의 내용은 다를 수 없다. L. LSP (Liskov .. 2021. 3. 15.