728x90

카테고리 206

우분투 리눅스 연습문제 11장

우분투 리눅스 연습문제 11장 1. 프로토콜이란 무엇이며, 왜 필요한지 설명하시오. 정답 : 컴퓨터와 컴퓨터 사이에 데이터를 어떻게 주고받을 것인지 정의한 통신 규약 2. MAC 주소와 IP 주소의 차이를 설명하시오. 정답 : MAC 주소는 하드웨어를 구분하는 주소이고, IP 주소는 인터넷 주소이다. 3. 넷 마스크가 필요한 이유를 설명하시오. 정답 : IP 주소에서 네트워크 부분을 알려주기 위해 필요하다. 4. C 클래스 IP에서 넷마스크가 255.255.255.0이 아니라 255.255.255.128이라면 네트워크를 어떻게 구성한 것인지 설명하시오. 정답 : 넷마스크를 기본적으로 구성한 것이 아니라, 네트워크를 다시 작은 네트워크로 분리한 서브넷으로 구성한 것이다. 5. 포트 번호가 필요한 이유를 간..

우분투 리눅스 연습문제 10장

우분투 리눅스 연습문제 10장 1. UID에 대해 설명하시오. 정답 : 사용자 ID, 사용자 구별, 0-999, 65534까지 시스템 사용자 UID, 1000번부터 일반 사용자 UID 2. 사용자 계정과 관련된 파일 중 암호를 /etc/shadow 파일에 저장하는 이유는 무엇? 정답 : 해킹, 보안 3. /etc/login.defs 파일의 용도 정답 : 사용자 계정 설정과 관련된 기본값 정의 4. 패스워드 에이징 정보란 무엇이며, 어느 파일에 저장되는가? 정답 : 암호의 유효기간 정보, /etc/shadow 파일에 저장된다. 5. 그룹의 GID는 어느 파일에서 확인할 수 있는가? 정답 : /etc/group 6. 사용자의 기본 그룹은 어느 파일에서 확인할 수 있는가? 정답 : /etc/passwd 7. ..

JAVA 제네릭 타입 컬렉션 클래스

JAVA 제네릭 타입 컬렉션 클래스 배열 데이터의 삽입/삭제 용이, 동적 할당 용이를 위해 제네릭 타입 컬렉션 클래스 사용 제네릭 : 자료형의 일반화 , 제네릭 타입에 객체만 넣을 수 있다, 엄격한 타입 checking 컬렉션 : 자료구조, 기본 자료형은 wrapper 클래스 사용, 제네릭 기법으로 구현 하나의 클래스를 만들어서 여러 자료형의 배열을 만들고 싶다면 제네릭 클래스로 멤버 추가 제네릭 클래스의 객체가 생성될 때 자료형이 지정되고, 생성 뒤에는 해당 자료형만 담을 수 있음 Iterator : 반복자 객체, 컬렉션에서 요소의 순차 검색을 위한 인터페이스 - 모든 컬렉션은 Iterator를 통해 순차적으로 반복자 객체를 얻을 수 있다. Vector v = new Vector(); Iterator ..

JAVA Exception 사용자 예외처리

JAVA Exception 사용자 예외처리 String getMessage() : 예외 객체가 가지고 있는 에러 메시지 반환 void printStackTrace() : 예외 발생 원인과 경로를 추적하여 콘솔에 표시, 디버깅 목적 사용자 정의 예외에서는 throws 대신 throw를 사용한다. 사용자 정의 예외는 예외 객체를 만든 후에 throw라는 키워드를 이용해 예외를 던져줘야 한다. Exception으로부터 상속받으면 예외 메시지를 담을 수 있는 속성이 있다. public class UserException extends Exception{ private int port = 772; public UserException(String msg){ super(msg); // exception 클래스로부터..

JAVA Exception 예외 처리

JAVA Exception 예외 처리 예외 : 프로그램 실행 중 예기치 못한 비정상적인 상황 예외가 나타나게 방치 후 사후 처리를 한다. try~ catch 문에 의해 직접 처리하고, 메서드 호출 측으로 throws를 명시적으로 써준다. Unchecked Exception : RuntimeException 예외처리 선택 ArithmeticException : 0으로 나누는 경우, 논리 적 예외 ArrayIndexOutOfBoundsException : 잘못된 배열 첨자 예외 NegativeArraySizeException : 배열 선언 시 할당 크기가 음수일 때 예외 ClassCastException : 허용 불가능한 형 변환 예외 NullPointerException : null 값을 갖는 참조 변수로..

JAVA interface 인터페이스 abstract class 추상 클래스

JAVA interface 인터페이스 abstract class 추상 클래스 추상 클래스 : 객체 생성 불가능, 참조 변수 선언은 가능 공통점이 있는 객체들에게 어떤 메서드를 강제 구현시키도록 한다. 상속 시 super 클래스로 존재하고, 추상 메서드를 하나 이상 포함시켜야 한다. 그리고 자식 클래스가 인터페이스 구현을 강제하고 몸체를 구현한다. 추상 클래스 정의와 추상 메서드 정의 모두 abstract 키워드로 한다. 추상 메서드를 재정의하면서 오버 라이딩해 클래스마다 구현을 다르게 한다. 하위 클래스 사이에 공통으로 필요한 메서드를 추상 클래스에 추가한다. 같은 이름, 같은 동작 : 일반 메서드에 구현 같은 이름, 다른 동작 : 추상 메서드에 구현 인터페이스 : 다중 상속이 불가능한 JAVA에서 필요..

JAVA 상속과 다형성

JAVA 상속과 다형성 다형성 : 다양한 형태가 존재한다. 단순하게 만들어 준다는 뜻 활용 : 다양한 참조 변수를 가지는 객체의 배열, 여러 종류의 매개변수 받기 업 캐스팅 : 허용 O, 자동으로 형 변환시켜준다 Person P = new UnivStudent(); Person P = (Person)(new UnivStudent()); // 자동 실행 다운 캐스팅 : 허용 X, 업 캐스팅 후 다운 캐스팅만 허용한다 즉, 원래 내 타입으로 돌아오는 것만 허용한다 -instanceof 연산자로 타입 확인하기 -object 클래스는 모든 클래스의 super 클래스로, 모든 객체를 가리킬 수 있다. -자식 객체의 상속받지 않은 멤버에 접근하기 위해서는 반드시 다운 캐스팅되어야 한다. public class Pe..

리눅스 컴파일 실행, 빌드 과정, make 명령

리눅스 컴파일 실행, 빌드 과정, make 명령 컴파일 : 사용자가 사용하는 고급언어(C언어)를 기계어(실행파일)로 변환하는 과정 컴파일러 : 이러한 기능을 하는 소프트웨어 C언어로 작성한 프로그램을 컴파일하려면 CC 컴파일러가 필요하다. 리눅스의 C 컴파일러 : gcc gcc 설치 명령어 : $ sudo apt-get install gcc C 프로그램 작성하기 명령어 : $ vi hello.c 내용 작성 후:wq로 저장 후 종료하기. C 프로그램 컴파일하기 명령어 : $ gcc hello.c (소스 파일명) 실행 파일의 이름은 사용자가 지정하지 않으면 a.out으로 생성 C 프로그램 실행하기 명령어 :./a.out(경로 주의) 실행 파일명 변경하기 : $ gcc –o h..

[ 자료구조 ] level order iterative inorder tree traversal

[ 자료구조 ] level order iterative inorder tree traversal 1. 반복적 중위 탐색(inorder traversal) 알고리즘 트리 탐색을 꼭 순환 알고리즘으로 작성해야 하는 것은 아니다. 아래 예는 중위 탐색 알고리즘을 반복적인 알고리즘으로 작성한 것이다. 각 노드를 방문하면서 과거 노드를 LIFO 순으로 기억해야 하기 때문에 스택을 사용하였다. void iter_inorder(tree_ptr node){ int top = -1; tree_ptr stack[MAX_STACK_SIZE]; while(1){ while(node){ push(&top, node); node = node->left_child; } node = pop(&top); if(!node) break;..

CS/자료구조 2021.11.29

[ 자료구조 ] inorder preorder postorder traversal 탐색 알고리즘

[ 자료구조 ] inorder preorder postorder traversal 탐색 알고리즘 1. 중위 탐색 (inorder traversal) 알고리즘 , 왼나오 중위 탐색 트리 알고리즘은 순환 알고리즘이 간단하다. void inorder(tree_ptr ptr) { if(ptr) { inorder(ptr->left_child); printf(“%d”,ptr->data); inorder(ptr->right_child); } } 2. 전위 탐색 (preorder traversal) , 나왼오 순환 알고리즘이다, 전위 탐색으로 모든 트리를 탐색한다. void inorder(tree_ptr ptr) { if(ptr) { printf(“%d”,ptr->data); inorder(ptr->left_child..

CS/자료구조 2021.11.28
728x90