본문 바로가기

전체 글

(70)
데이터 통신 - CRC CRC 필기 노트1. CRC- 데이터 전송에서 오류를 검출하는 데 사용되는 기술 중 하나- 데이터에 대한 순환 중복 코드를 계산하여 송신자와 수신자 간에 전송된 데이터가 손상되었는지 여부를 확인 2. 작동 원리- 송신측에서는 데이터에 대한 CRC를 계산하고, 이를 데이터에 부착하여 전송- 수신측에서는 받은 데이터와 CRC를 사용하여 새로운 CRC를 계산- 송신측과 수신측의 CRC가 일치하지 않으면 데이터에 오류로 판단 3. 특징- 비트 오류와 편의에 강한 강인성- 단순하면서도 효과적인 방법으로 오류를 검출 가능- 다양한 표준(CRC-16, CRC-32 등)이 있으며, 사용되는 데이터의 크기와 요구되는 오류 감지 능력에 따라 선택됨. 4. 활용- 네트워크 프로토콜(예: 이더넷) 오류 검출, 데이터 저장 및..
랩퍼 클래스 - 객지설 4주차 JAVA 객체 유형기초 자료형(정수형, 실수형 등등)을 제외한 모든 것이 객체임.  그런데 기초 자료형이 객체로 쓰여야 할 때가 있음. 에를 들어 JAVA에서 Vector는 객체만 저장 가능함. 그래서 Vector에 기초 자료형을 넣고 싶다면 객체로 포장해야 함. => 이때 랩퍼 클래스가 사용 됨. 기초 자료형의 객체 만드는 방법int i = 100; //기초 자료형으로 선언Integer obj = new Integer(i); // Integer 랩퍼 클래스 객체 만듦 (오류 남)//바로 선언도 가능함String s = Integer.toString(100);int i = Integer.parseInt("100");=> JAVA 에는 각 기초 자료형에 대하여 해당되는 랩퍼 클래스가 존재함 랩퍼 클래스의 ..
객프 13주차 자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가짐. 하지만 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 다중 상속을 지원. 인터페이스란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미. 자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함. 하지만 인터페이스(interface)는 오로지 추상 메소드와 상수만을 포함. 자바에서 인터페이스를 선언하는 방법은 클래스를 작성하는..
13주차 컴프 15장 데이터가 파일에 들어가 있고, 결과물을 화면이 아닌 파일로 보냄. 파일에 데이터가 있는 이유는 많은 양의 데이터가 있기 때문. 데이터 입력후 컴파일을 하면 다시 입력을 해야 됨. 지뢰 찾기의 경우 일일히 입력을 해야하기 때문에 그걸 파일에 저장하고 그대로 갖고 옴. 파일 입출력과 관련하여 배우자. 스트림 : 바이트의 흐름 컴퓨터 - 키보드, 마우스, 스캐너, 마이크, 음성, 터치 등등의 입력장치 존재 키보드를 통해, 마우스를 통해, 마이크를 통해 입력이 되면 입력 장치에 따른 함수를 만들어야 함. 그럴 때마다 값들을 새로운 입력장치가 있으면 이를 받아들이기 위해 다른 코드가 등장해야함. 출력장치도 마찬가지임. 그러면 입력장치와 출력장치가 계속 바뀌게 되어서 의존성이 높아짐. 이 의존성을 낮추기 위..
객프 11주 추상클래스 하나 이상의 추상 메소드를 포함하는 클래스 *추상메소드 : 완전하게 구현되어 있지 않은 메소드 (중괄호 없이 선언됨) 추상 클래스라는 것을 알려주기 위해 abstract를 붙여야 함. abstract class Shape3 { int x, y; public void translate (int x, int y) { this.x = x; this.y = y; } public abstract void draw(); }; class Rectangle2 extends Shape3 { int width, height; public void draw() { System.out.println("사각형 그리기 메소드"); } }; class Circle2 extends Shape3 { int radius; p..
컴프 12주차 struct student { // student는 구조체명, 태그, 메모리가 잡히지 않음 int id; int midterm; int final; }; 배열과다르게 형태가 다른 데이터도 하나로 묶을 수 있음. struct student aStudent; //일반 변수 struct student *sp = &aStudent; //포인터의 주소값을 가리킴. aStudent.id //일반 구조체가 접근할 때 *sp.id //포인터변수가 가리키는 값을 접근할 때 sp->id //위의 코드와 같음. 구조체 변수에 접근할 때 => 우선순위 : (*sp).id => sp자리로 가서 id //포인터 sp를 사용하여 구조체 멤버 각각에 값 설정 sp->id = 19950001 //(*sp).id = 19950001; ..
객프 10주차 - 상속은 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미. - 상속을 이용하면 기존에 정의되어 있는 클래스의 모든 필드와 메소드를 물려받아, 새로운 클래스를 생성가능. - 기존에 정의되어 있던 클래스를 부모 클래스(parent class) 상속을 통해 새롭게 작성되는 클래스를 자식 클래스(child class) 라고 함. 1. 기존에 작성된 클래스 재사용 가능 2. 자식 클래스에서 중복되는 멤버를 작성하지 않아도 됨. 3. 클래스 간의 계층적 관계를 구성함으로써 다형성의 문법적 토대를 마련함. 부모 클래스의 모든 특성을 물려받아 새롭게 작성된 클래스 -> 부모 클래스에 새로운 필드를 하나 추가하면, 자식 클래스에도 자동으로 해당 필드가 추가된 것처럼 동작함. - 자식 클..
컴프 11주차 struct student { // student는 구조체 명, 태그, 메모리가 잡히지 않음 int id; //멤버 int midterm; //멤버 int final; //멤버 }; student에 대한 기본 틀 기본 자료형이 모여서 파생자료형이 되는데 구조체는 파생자료형임. - 구조체 변수 구조체변수 선언, 메모리가 잡힘 struct student aStudent; // aStudent는 구조체 변수 *struct student자체가 자료형이 됨. => 구조체는 자료형이고, 그 자료형으로부처 변수 선언이 가능한 것임. 구조체 변수 초기화 선언과 동시에 초기화 struct student aStudent = {19950001, 100, 50} -> 각각의 멤버에 초기값 부여. . (dot)연산자 : 구조체..