시니어까지의 여정
-
해시테이블 해시테이블은 해시함수를 사용하여 키를 해시값으로 매핑하고, 이 해시값을 색인 또는 주소 삼아 데이터(value)를 key와 함께 저장하는 자료구조이다. 연관배열 구조: key와 value가 1:1로 연관되어있는 자료구조. key를 이용해 value를 알아낼 수 있다. 해시테이블 구성 key 고유한 값, hash function의 input이 된다. 키값 그대로 저장소에 저장할 경우 다양한 키의 길이 만큼의 크기를 구성해두어야 하기 때문에 일정한 길이의 해시로 변경한다. hash function key를 고정된 길이의 hash로 변경해주는 역할을 한다. 이 과정을 hashing이라고 한다. 서로 다른 key가 같은 hash값을 갖게 되는 경우 이를 해시 충돌 이라고 한다. 해시 충돌 발생 확률이..
해시해시테이블 해시테이블은 해시함수를 사용하여 키를 해시값으로 매핑하고, 이 해시값을 색인 또는 주소 삼아 데이터(value)를 key와 함께 저장하는 자료구조이다. 연관배열 구조: key와 value가 1:1로 연관되어있는 자료구조. key를 이용해 value를 알아낼 수 있다. 해시테이블 구성 key 고유한 값, hash function의 input이 된다. 키값 그대로 저장소에 저장할 경우 다양한 키의 길이 만큼의 크기를 구성해두어야 하기 때문에 일정한 길이의 해시로 변경한다. hash function key를 고정된 길이의 hash로 변경해주는 역할을 한다. 이 과정을 hashing이라고 한다. 서로 다른 key가 같은 hash값을 갖게 되는 경우 이를 해시 충돌 이라고 한다. 해시 충돌 발생 확률이..
2022.07.20 -
메서드 오버라이딩 메서드 오버라이딩은 부모 클래스에게 상속받은 메서드와 동일한 이름의 메서드를 재정의하는 것으로, 부모의 메서드를 자신이 만든 메서드로 덮어쓰는 개념이다. 메서드 오버라이딩이 수행되기 위해서는 다음 2가지 조건을 만족해야 한다 부모 클래스의 메서드와 시그너처 및 리턴 타입이 동일해야 한다. 부모 클래스의 메서드보다 접근 지정자의 범위가 같거나 넓어야 한다.
메서드 오버라이딩메서드 오버라이딩 메서드 오버라이딩은 부모 클래스에게 상속받은 메서드와 동일한 이름의 메서드를 재정의하는 것으로, 부모의 메서드를 자신이 만든 메서드로 덮어쓰는 개념이다. 메서드 오버라이딩이 수행되기 위해서는 다음 2가지 조건을 만족해야 한다 부모 클래스의 메서드와 시그너처 및 리턴 타입이 동일해야 한다. 부모 클래스의 메서드보다 접근 지정자의 범위가 같거나 넓어야 한다.
2022.07.19 -
상속의 장점 상속의 장점은 처음에 설명했던 것과 큰 차이가 없다. 중복된 코드를 줄일 수 있고, 유지 보수가 편리하며, 통일성이 있고 다형성을 구현할 수 있다 1. 상속 방법 : class 클래스(자식) extends 클래스(부모) 2. 자식 클래스는 부모 클래스로부터 메소드와 필드를 물려받아 사용한다. 부모 클래스는 자식 클래스에서 정의한 메소드나 필드를 사용하지 못한다.(자식 = 자신 + 부모 / 부모 = 자신) 3. 자식 클래스는 여러 부모 클래스로부터 상속받지 못한다. 즉, 단일상속만 가능하다. 4. 부모 클래스는 여러 자식 클래스에게 상속이 가능하다. 5. 자식 클래스가 더 다양한 기능이 가능하므로 자식 클래스로 인스턴스를 생성하는 것이 효율적이다. 자바의 클래스는 다중 상속이 불가능한 이유는 ..
클래스의 상속과 다형성상속의 장점 상속의 장점은 처음에 설명했던 것과 큰 차이가 없다. 중복된 코드를 줄일 수 있고, 유지 보수가 편리하며, 통일성이 있고 다형성을 구현할 수 있다 1. 상속 방법 : class 클래스(자식) extends 클래스(부모) 2. 자식 클래스는 부모 클래스로부터 메소드와 필드를 물려받아 사용한다. 부모 클래스는 자식 클래스에서 정의한 메소드나 필드를 사용하지 못한다.(자식 = 자신 + 부모 / 부모 = 자신) 3. 자식 클래스는 여러 부모 클래스로부터 상속받지 못한다. 즉, 단일상속만 가능하다. 4. 부모 클래스는 여러 자식 클래스에게 상속이 가능하다. 5. 자식 클래스가 더 다양한 기능이 가능하므로 자식 클래스로 인스턴스를 생성하는 것이 효율적이다. 자바의 클래스는 다중 상속이 불가능한 이유는 ..
2022.07.19 -
트리(Tree)란? 트리(Tree)는 그래프의 일종으로 정점과 간선을 이용하여 데이터의 배치 형태를 추상화한 자료구조이다. 서로 다른 두 노드를 연결하는 길이 하나뿐인 그래프를 트리라고 부른다. 힙(Heap)을 구현하는 방법 중 하나가 트리이다. 트리(Tree)의 구조 루트 노드(root node) : 부모가 없는 노드로 트리는 단 하나의 루트 노드를 가진다. (ex : A- 루트노드) 리프 노드(leaf node) : 자식이 없는 노드로 terminal 노드라고도 부른다. (ex : C, D, E - 단말 노드) 내부 노드(internal node) : 리프 노드가 아닌 노드(ex : A, B - 내부 노드), non terminal node라고도 부른다. 간선(edge) : 노드를 연결하는 선 형제(..
트리트리(Tree)란? 트리(Tree)는 그래프의 일종으로 정점과 간선을 이용하여 데이터의 배치 형태를 추상화한 자료구조이다. 서로 다른 두 노드를 연결하는 길이 하나뿐인 그래프를 트리라고 부른다. 힙(Heap)을 구현하는 방법 중 하나가 트리이다. 트리(Tree)의 구조 루트 노드(root node) : 부모가 없는 노드로 트리는 단 하나의 루트 노드를 가진다. (ex : A- 루트노드) 리프 노드(leaf node) : 자식이 없는 노드로 terminal 노드라고도 부른다. (ex : C, D, E - 단말 노드) 내부 노드(internal node) : 리프 노드가 아닌 노드(ex : A, B - 내부 노드), non terminal node라고도 부른다. 간선(edge) : 노드를 연결하는 선 형제(..
2022.07.19 -
클래스 접근 지정자 클래스에서는 public, default 접근 지정자만 사용할 수 있다. 즉, 일단 다른 패키지에서 클래스를 사용하기 위해서는 해당 클래스를 임포트 할 수 있어야 하므로 public으로 선언해야 하는 것이다. 클래스 접근 지정자와 생성자 접근 지정자의 연관성 클래스에 생성자가 없을 떄 컴파일러는 기본 생성자를 자동으로 추가한다고 했다. 이 떄 자동으로 추가되는 생성자의 접근 지정자는 클래스의 접근 지정자에 따라 결정된다. package abc.bcd public class A{ public 클래스 public A(){}public 생성자 } //클래스와 생성자에 모두 public 접근 지정자가 이기에 //다른 패키지에서 클래스를 임포트하거나 생성자를 호출 할 수 있다 package a..
접근지정자클래스 접근 지정자 클래스에서는 public, default 접근 지정자만 사용할 수 있다. 즉, 일단 다른 패키지에서 클래스를 사용하기 위해서는 해당 클래스를 임포트 할 수 있어야 하므로 public으로 선언해야 하는 것이다. 클래스 접근 지정자와 생성자 접근 지정자의 연관성 클래스에 생성자가 없을 떄 컴파일러는 기본 생성자를 자동으로 추가한다고 했다. 이 떄 자동으로 추가되는 생성자의 접근 지정자는 클래스의 접근 지정자에 따라 결정된다. package abc.bcd public class A{ public 클래스 public A(){}public 생성자 } //클래스와 생성자에 모두 public 접근 지정자가 이기에 //다른 패키지에서 클래스를 임포트하거나 생성자를 호출 할 수 있다 package a..
2022.07.18 -
패키지는 비슷한 목적으로 생성된 클래스 파일들을 한곳에 모아둔 폴더를 의미한다. 프로그램을 작 ㅂ성하다 보면 각각의 목적에 따라 여러 개의 클래스 파일(네트워크 처리를 위한 클래스 10개, GUI 처리를 위한 클래스 8개 등)들이 생긴다. 이렇게 동일한 목적으로 만들어진 클래스들을 1개의 공간(폴더)에 묶어 관리하기 위해 사용하는 것이 바로 '패키지'다. 1개의 프로젝트에 1개의 패키지를 생성할 수도 있고 여러 개의 패키지를 생성할 수도 있다. 패키지를 아예 생성하지 않아도 문법적으로는 전혀 문제가 없다. 패키지를 아예 생성하지 않아도 문법적으로는 전혀 문제가 없다. 생성된 패키지를 폴더의 구조상으로 보면 src 폴더의 하위 폴더에 위치한다. 컴파일이 수행되면 바이트 코드가 저장되는 bin 폴더에도 동일..
클래스 외부 구성 요소(패키지와 임포트)패키지는 비슷한 목적으로 생성된 클래스 파일들을 한곳에 모아둔 폴더를 의미한다. 프로그램을 작 ㅂ성하다 보면 각각의 목적에 따라 여러 개의 클래스 파일(네트워크 처리를 위한 클래스 10개, GUI 처리를 위한 클래스 8개 등)들이 생긴다. 이렇게 동일한 목적으로 만들어진 클래스들을 1개의 공간(폴더)에 묶어 관리하기 위해 사용하는 것이 바로 '패키지'다. 1개의 프로젝트에 1개의 패키지를 생성할 수도 있고 여러 개의 패키지를 생성할 수도 있다. 패키지를 아예 생성하지 않아도 문법적으로는 전혀 문제가 없다. 패키지를 아예 생성하지 않아도 문법적으로는 전혀 문제가 없다. 생성된 패키지를 폴더의 구조상으로 보면 src 폴더의 하위 폴더에 위치한다. 컴파일이 수행되면 바이트 코드가 저장되는 bin 폴더에도 동일..
2022.07.18