일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- cmd
- 크롤러
- dreamhack
- abex'crackme
- Screening Router
- Reversing
- AI
- 머신러닝
- Mac
- 라우터
- 온프레미스
- vector
- AWS
- Repository
- CISCO
- 머신러닝 프로세스
- docker
- 자바
- Python
- Java
- 스위치
- vlan
- STP
- RIP
- 암호학
- bastion host
- 네트워크
- 리버싱
- 인공지능
- Firewall
- Today
- Total
목록분류 전체보기 (92)
Haekt‘s log
java의 배열은 C와는 조금 다른 방식으로 선언된다. - C 의 경우 int A[10]; // 배열 선언과 동시에 크기설정을 할 수 있음. int A[10]={1,2,3,4,5,6,7,8,9,10}; C의 경우에는 위와 같이 배열을 선언과 배열 크기를 같이 정할 수 있다. - JAVA 의 경우 int a[]; // 선언. []빈 괄호만 작성. a[10]처럼 사전에 크기 설정 불가 int []a; // 괄호의 위치는 앞, 뒤 모두 가능 int a[] = new int[10]; // 배열 크기 설정 int a[] = {1,2,3,4,5,6,7,8,9,10}; // 선언과 동시에 배열에 값넣기 하지만 Java는 조금 다르다. C와 다르게 배열선언과 크기를 동시에 정할 수 없다. 또한, 배열 선언시 [ ] 빈..

Collection Framework 은 다수의 데이터를 쉽고, 효과적으로 다루기 위해, 표준화된 방법을 제공하는 클래스들을 모아놓은 집합이다. 쉽게 생각하면, 크기 지정 필요없는 편리한 배열이라고 생각하면 된다. 이것을 사용하면 배열의 단점인 길이고정을 해결할수 있다. java.util.Collection 에 속해있어, 상단에 import java.util.* 을 입력해 사용할 수 있다. Collection Framwork의 주요 인터페이스는 다음과 같다. List Set Map 이 중에서 List와 Set 인터페이스는 모두 Collection 인터페이스를 상속받지만, 구조상의 차이로 인해 Map 인터페이스는 별도로 정의한다. - List, Set, Map 의 구현 클래스 * : 사용자가 타입을 정함...
abstract는 오버라이딩을 해야만 사용할 수 있는 메소드로, 필요에 따라 함수를 수정해 사용할 수 있게 함으로 코드 낭비가 줄어들고, 생산성이 높아지고, 배포가 쉬워진다. * 오버라이딩 : 쉽게 덮어쓰기라 생각하면된다. abstract는 클래스나 함수 앞에 붙여 사용하게 된다. 다음과 같다. abstract class A{ abstract void a(); // 함수의 경우. 추상메소드 // 선언만 해주면 상속하는 하위 클래스에서 무조건 재정의 해야함. } // 클래스의 경우. 추상클래스 위의 abstract void a(); 처럼 함수는 선언만 해야하며 선언을 할 경우 반드시 해당 클래스를 상속하는 하위 클래스에서 재정의를 해 줘야한다. *abstract 함수의 경우 : 추상메소드 *abstract..
예시를 들어 설명하겠습니다. 한 A 기업이 P프로그램을 출시했습니다. 그런데 타 B기업이 P프로그램의 기능을 빌려 업그레이드 된 새로운 P프로그램을 만들어 판매하려고 합니다. 그래서 A기업이 기능을 이용해도 되니 무조건 ~~ 기능은 유지하고, 우리 A기업의 출처를 남겨라 라는 조건을 걸었습니다. 이 때 무조건 ~~해라 라고 강제하는 것이 바로 interface입니다. - interface interface 는 동일한 목적하에 동일한 기능을 수행하게끔 강제하는 것으로, 자바의 다형성을 극대화 하여 개발 코드 수정을 줄이고, 프로그램 유지보수성을 높이기 위해 사용한다. 인터페이스를 선언하는 방법은 클래스 선언과 비슷하게 interface [이름] 을 입력한다. 다음과 같다. interface AA{ // e..

자바의 접근 제어에는 4가지가 존재한다. public protected private default (friendly) - public 외부의 모든 클래스, 패키지, 생성자, 필드로부터 모든 접근을 허용한다 . 라이브러리처럼 공유하여 사용하고 싶을 때 사용한다. - protected 상속받은 자식만 접근할 수 있도록 한다. - private 자신이 있는 클래스 외 다른 접근을 전부 금지한다. 가장 강력한 접근제어자 이다. - default (friendly) 변수나 함수 앞에 아무것도 쓰지 않았을 경우로, 동일 패키지 안에서는 접근이 허용된다. - 예시 package pk; public class Fa2 { // public 을 안붙이면 import 를 다른 파일에서 할수없음 public int a=1;..

Java 에도 변수를 상수 처리하는 방법이 존재한다. final 을 사용하면 test.num1 이런식으로 사용하지 않고, 변수를 단독 사용 가능하다. final 은 값을 상수로 만들어 고정시킨다. b 는 어차피 상수기 때문에 m2.b 로 사용하지 않고, 단독으로 사용해도 된다. 단, 단독으로 사용하고 싶을 땐 static 을 붙여준다.( b , Mouse.b )

자바에도 C 의 scanf 와 같이 사용자 입력값을 받는 방법이 존재한다. java.util.Scanner 에 존재하는 Scanner 클래스를 사용하면 사용자 입력값을 받을 수 있다 . - Scanner Class 메소드 - Scanner Class 사용법 import java.util.* java.util을 import 해서 사용이 가능하다. Scanner s= new Scanner(System.in); // 잆력한 값을 Scanner 클래스에 System.in 으로 넣어준다. 스캐너 클래스 변수를 만들고, System.in 으로 사용자 입력값을 Scanner 변수에 넣어준다. * System.in 은 키보드로부터 입력을 받는다고 알면 된다. Scanner 클래스는 키보드로 입력받겠다는 뜻. Strin..

Segment? 영어 뜻 자체로는 분할, 단편, 구분 등의 의미를 가진다. 네트워크에서는 스위치를 기준으로 세그먼트를 나눈다. * 더미허브나 리피터는 세그먼트를 나누지 못한다. 위 그림에서 빨간 부분이 세그먼트이다. 장비와 장비 사이, 컴퓨터와 장비 사이를 모두 세그먼트라고 한다. Collision Domain? 한 세그먼트(같은 경로)로 여러 데이터가 전송될 경우 충돌이 일어나는 경우를 Collision Domain 이라고 한다. 스위치는 Collision Domain 을 방지하기 위해 동일 경로로의 전송이 필요할 경우, 내부 버퍼에 잠깐 저장했다가 사용이 끝나면 전송하는 방법을 사용한다. * 스위치가 세그먼트를 나누므로, 스위치가 Collision Domain 의 범위를 나눈다고 생각할 수 있다. *..

BPDU 는 STP 프로토콜에 의해 브리지, 스위치간 주고받는 제어 프레임이다. 각 스위치에서 매 2초마다 작동하는 모든 포드에 만들어 보내진다. BPDU에는 스위치의 ID 포트ID 등의 정보가 들어있어, 스위치들이 누가 RootBridge 인지 비교해 결정할 수 있게 한다. STP프로토콜이 이 프레임을 이용하여 스위치간 데이터의 루프를 방지하기 위한 단일화 경로를 만든다. BPDU의 종류에는 두가지가 있다. Configuration BPDU, Topology Change Notification BPDU - Configuration BPDU RID, BID, Path Cost, PID 정보가 포함되어있다. 주기적으로 이 정보를 주고받는다. 위 사진은 Configuration BPDU 의 구조이다. - T..

스위치는 자신의 네트워크에 있는 PC들의 MAC주소를 자신의 MAC테이블에 가지고 있다. 그래서 데이터가 들어오면 스위치는 어떤 포트가 어떤 PC와 연결되는지를 알 수 있다. 그럼 이 스위치는 어떻게 MAC테이블을 작성할까? 한번 CISCO packet tracer 를 통해 알아보자. - CISCO 스위치 맥 테이블 작성과정 아래는 CISCO packet tracer 를 통해 살펴본 스위치의 콘솔이다. 스위치는 현재 네트워크의 MAC 정보를 가지고 있지 않다. 한번 pc 끼리 ping 을 보내보자 Ping 통신을 한 후, 스위치의 맥 테이블을 살펴보니 PC 들의 MAC 정보가 작성되어 있었다. - 해설 쉽게 예를 들어 해설한다. 한 PC가 A 컴퓨터와 통신을 하려고 한다. 그래서 A 컴퓨터에 데이터를 보..