본문 바로가기

2. Computer Science5

OOP 5대 원칙과 4가지 특징 OOP 란? Object Oriented Programming, 객체 지향 프로그래밍. 객체 지향 프로그래밍의 5대 설계 원칙(SOLID) 1. 단일 책임의 원칙(SRP, Single Responsibility Principle) 객체는 단 하나의 책임만 가져야 한다. 2. 개방 폐쇄 원칙(OCP, Open-Closed Principle) 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다. 3. 인터페이스 분리 원칙(ISP, Interface Segegation Principle) 인터페이스를 클라이언트에 특화되도록 분리시키라는 설계 원칙 4. 리스코프 치환 원칙(LSP, Liskov Substitution Principle) 일반화 관계에 대한 이야기이며, 자식 클래스는 최소.. 2022. 7. 10.
언어(Java, Kotlin) n. 추상 클래스와 인터페이스의 차이를 설명하시오. 인터페이스는 구현부와 상태를 갖지 않은 채로 규격만 정해져있는 구현체이고, 추상 클래스는 필수 기능과 상태만 구현되어 있는 채로 아직 미완성의 추상화 객체이다. 그러나 추상 클래스와 인터페이스는 추상 메소드를 갖는다는 공통점 때문에 언뜻 보면 비슷해 보이지만, 개인적으로 이 둘의 성격이 완전히 다르다고 생각한다. 인터페이스는 말 그대로 구현체가 정의해야 할 메소드만 명시해 놓은 "규격"으로써, 인터페이스를 구현한 클래스의 타입이라 할 수 있다. 반면에 추상 클래스는 단일 상속만이 가능하며 이미 상태와 기능을 갖고 태어난 놈이기에 클래스 타입이라고 할 수는 없고, 아직 미완성의 추상화된 부모 클래스라고 할 수 있다. Java8 이후 부터 인터페이스에서도 .. 2022. 7. 10.
자료구조 트리(그래프) 종류 https://namu.wiki/w/%ED%8A%B8%EB%A6%AC(%EA%B7%B8%EB%9E%98%ED%94%84)#s-4.1.4 트리(그래프) - 나무위키 트리를 정의할 때에는 다양한 정의가 쓰이고, 다음은 모두 동치이다. G는 트리이다.G는 회로가 없는 연결 그래프이다.G는 회로가 없고, 단순 그래프의 형태를 유지하면서 간선을 추가할 경우 회 namu.wiki 1. 이진 트리 중위 순회(In-order traversal): 왼쪽 자손, 자신, 오른쪽 자손 순서로 방문하는 순회 방법. 이진 탐색 트리를 중위 순회하면 정렬된 결과를 얻을 수 있다. 전위 순회(Pre-order traversal): 자신, 왼쪽 자손, 오른쪽 자손 순서로 방문하는 순회 방법. 후위 순회(Post-order traver.. 2022. 7. 9.
HashTable, HashMap [알고리즘] Hash table 1. 해쉬 테이블 해쉬 테이블 또는 해쉬 맵은 key와 value를 갖는 자료 구조이다. 주요 동작은 효율적인 검색(주어진 키(예를 들어, 사람 이름)로 적합한 값을 찾는(전화번호)) 이다. 해쉬 함수를 이용 egloos.zum.com [Hash Collision] 1. Separate Chaining - Linked List or Red-Black Tree 2. Open Addressing - Linear Probing - Quadratic Probing - Double Hashing [Resizing] ◎ 체이닝(Chaining)의 장점 - 연결 리스트만 사용하면 된다. 즉, 복잡한 계산식을 사용할 필요가 개방주소법에 비해 적다. - 해시테이블이 채워질수록, Looku.. 2022. 7. 9.
반복문 내의 변수 선언에 관한 고찰 java의 List와 반복문(loop), 그리고 변수 선언 위치에 대해서 출처: http://egloos.zum.com/benelog/v/1382604 수정이력 2007/08/13 1. '들어가며', '마치며' 대폭 수정 2. 오타 수정 : 여러개의 메소드에서 같이 써는 코드였었습니다.==> 여러개의 메소드에서 같이.. hyeonk-lab.tistory.com 반복문 내부에서 변수 선언 할 경우 메모리 낭비와 성능 저하를 일으킬 수 있다? 정답: No Chapter 6. The Java Virtual Machine Instruction Set The wide instruction modifies the behavior of another instruction. It takes one of two form.. 2022. 7. 8.