본문 바로가기

전체 글

(77)
MySQL 설치 오류 보호되어 있는 글입니다.
About 다형성: 인터페이스를 사용하는 이유 인터페이스란, 객체지향 프로그래밍에서 다형성을 구현하는 방법 중 하나이다. 일종의 추상 클래스이며, 추상 메소드와 상수만을 가지고 있다. 클래스와 달리 다중 상속이 가능하며, 클래스에서 인터페이스를 상속받을 수 있다. 인터페이스는 클래스가 구현해야 하는 메소드의 명세를 정의한다. 즉, 인터페이스는 어떤 클래스가 구현해야 할 메소드의 이름과 파라미터, 반환 타입을 정의한다. 이때, 인터페이스에 정의 된 메소드는 메소드의 구현 내용이 없으며, 구현하는 클래스에서 해당 메소드를 구현해야 한다. 인터페이스가 가지고 있는 메소드를 하나도 구현하지 않는다면, 해당 클래스는 추상 클래스가 된다. 그리고 추상 클래스는 인스턴스를 만들 수 없다. 참조변수의 타입으로 인터페이스를 사용 할 수 있다. 인터페이스는 계층적인 ..
'참조한다'라는 건 앞서 참조 변수란? Animal a = new Animal(); 위 코드를 보면 동물 객체가 만들어지고, 각 객체를 참조하는 a 변수가 선언되었다. -> a 변수는 Animal 클래스의 객체를 가리키는 참조 변수이다. (a 변수에 Animal 객체를 생성해서 넣으라는 뜻) 이 변수는 Animal 클래스의 객체가 저장된 메모리 주소값을 가지고 있다. 이제 a 변수를 이용하여 객체에 접근할 수 있다. 그러나 동물 클래스가 생성되었다고 해서 동물이 만들어진 것은 아니다. new 연산자는 new 연산자 뒤에 나오는 생성자를 이용하여 메모리에 객체를 만들라는 명령이다(객체에 메모리를 올려준다). 메모리에 만들어진 객체(클래스)를 인스턴스라고 하는데, 이렇게 만들어진 객체를 참조하는 변수가 a 변수이다. 메모리에 ..
About 다형성: 클래스 형변환을 하는 이유 Q1. 부모타입으로 자식객체를 참조하게 되면 부모가 가지고 있는 메소드만 사용할 수 있다. 그런데 형변환을 하는 이유가 무엇일까? 부모 타입으로 자식 객체를 참조하면 부모 클래스에 정의된 메소드만 사용할 수 있다. 하지만 때로는 자식 클래스에서 추가로 정의한 메소드나 멤버 변수에 접근해야 할 때가 있다. 이 경우 자식 클래스의 메소드나 멤버 변수에 접근하려면 부모 타입의 참조를 자식 타입으로 형변환해야 한다. 예를 들어, 다음과 같은 코드가 있다고 가정해 보자. class Animal { public void move() { System.out.println("Animal is moving"); } } class Dog extends Animal { public void move() { System.ou..
오버로딩과 오버라이딩 차이 오버로딩(overloading)과 오버라이딩(overriding)은 모두 객체지향 프로그래밍에서 자주 사용되는 개념이다. 오버로딩 같은 이름의 메소드를 매개변수의 개수나 타입 등을 다르게 해서 여러 개 정의하는 것을 말한다. 이렇게 하면 같은 이름의 메소드가 여러 개 있더라도 컴파일러가 매개변수의 타입과 개수를 보고 호출할 메소드를 구분할 수 있다. 예를 들어, 아래와 같은 메소드를 생각해 볼 수 있다. public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } 이렇게 add 메소드를 매개변수의 타입에 따라서 두 개의 버전을 만들었다. 이렇게 하면 int 타입의 두 정수를 더할 때..
비선형 자료 구조 비선형 자료 구조 질문 해시테이블과 이진 검색트리를 비교하고 장단점을 이야기해주세요. 그리고 메모리가 제한된 모바일 기기용 주소록에 사용할 자료구조를 설계한다면 어느쪽을 쓰는것이 좋을까요? 해시테이블은 키와 값으로 이루어진 쌍을 저장하는 자료구조이며, 해시 함수를 사용하여 값을 저장하거나 검색합니다. 평균적으로 상수 시간에 삽입, 삭제, 검색이 가능하지만, 최악의 경우에는 선형 시간으로 느려질 수 있습니다. 이진 검색트리는 각 노드가 키와 값으로 이루어진 트리 자료구조이며, 왼쪽 서브트리는 부모 노드의 키보다 작은 값으로, 오른쪽 서브트리는 부모 노드의 키보다 큰 값으로 이루어집니다. 평균적으로 O(log n)의 시간복잡도를 가지며, 검색 결과를 정렬된 순서로 얻을 수 있습니다. 일반적으로 해시테이블보다..
네트워크 (4계층, TCP/IP, PDU, 로드밸런서) 인터넷 프로토콜 스위트 (Internet protocol suite) : 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합 이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명하기도 한다. TCP/IP 4계층 모델 네트워크에서 사용되는 통신 프로토콜의 집합 계층들은 프로토콜의 네트워킹 범위에 따라 4개의 추상화 계층으로 구성된다. TCP/IP (TransmissionControl Protocol / Internet Protocol) 인터넷 통신의 기반이 되는 프로토콜로 이를 이용해 컴퓨터를 연결하는 체계를 이더넷(Ethernet)이라 한다. 1.1. 계층 구조 비교 ![[Pasted image 20230109171901.png]] TCP/IP 4계층 1 Layer : ..
네트워크 (처리량, 토폴로지, 병목현상) 1. 네트워크란? 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망을 말한다. 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있지 않은 집합체를 의미한다. 용어 노드 : 네트워크 장치 (서버, 라우터, 스위치 등) 링크 : 유선 또는 무선 1.1. 처리량과 지연 시간 네트워크를 구축할 때는 ‘좋은’ 네트워크로 만드는 것이 중요하다. 좋은 네트워크 많은 처리량을 처리할 수 있으며 지연 시간이 짧다. 장애 빈도가 적으며 좋은 보안을 갖춘다. 처리량 (throughput) 링크 내에서 성공적으로 전달된 데이터의 양으로, 보통 얼만큼의 트래픽을 처리했는지를 나타낸다. 단위 : bps(bits per second) 초당 전송 또는 수신되는 비트 수 받는 영향 사용자들이 많이 접속할 때..