트리 ( Tree )
·
⭐C Sharp/15-6. 트리와 그래프
트리 ( Tree )트리는 계층적 ( Hierarchical ) 구조를 표현하는 자료구조이다.노드 ( Node ) 와 간선 ( Edge ) 으로 이루어지며 부모 - 자식 관계를 가진다.대표적인 예시 : 폴더 구조 , 조직도 , 게임 내 스킬 트리 ▼노드 ( Node )정의 : 트리의 구성 요소 ( 데이터를 담는 단위 )하나의 노드는 데이터와 자식 노드( 들 )에 대한 참조를 가진다. 1. 루트 노드 ( Root Node )최상위에 있는 노드 ( 부모가 없다 )트리 전체의 시작점 2. 내부 노드 ( Internal Node )부모도 있고 자식도 있는 중간 단계 노드 3. 리프 노드 ( Leaf Node )더 이상 자식이 없는 노드 ( 끝 점 ) A(루트) / \ ..
비선형 자료구조 ( Non - Linear )
·
⭐C Sharp/15-6. 트리와 그래프
비선형 자료구조 ( Non - Linear Data Structure )지금까지 데이터가 일렬로 보관되는 선형 자료구조에 대해 배웠다.데이터의 여러 관계도를 나타낼 수 있는 비선형 자료구조에 대해 다뤄보겠다.비선형 자료구조를 사용하는 이유 중 하나는 데이터 간의 관계도 혹은 계층을 표현하기 위함이 크다.비선형 자료구조는 그 종류가 정말 많은데, 사용하는 목적 경우에 따라 아주 다양한 자료구조로 활용할 수 있다.비선형 자료구조에는 대표적으로 두 가지의 기본 형태인 그래프와 트리가 있다.그래프 ( Graph ) 는 다소 불규칙적인 연결 관계를 보여준다.트리 ( Tree ) 는 깔끔하게 정렬되어 있는 모습을 보여준다. 비선형 자료구조란?데이터가 계층적 ( Hierarchical ) 또는 망 ( Network ..
상속 ( OOP )
·
⭐C Sharp/11. 객체 지향
상속 ( Inheritance )상속은 OOP ( 객체지향 프로그래밍 ) 핵심 개념 중 하나이다.즉, 상속은 자료형 / 문법 같은 "언어 요소" 가 아니라, 객체지향 프로그래밍 패러다임의 핵심 네 가지 축 중 하나에 해당된다.객체지향 프로그래밍 ( OOP ) 에서 상속은 코드의 재사용성과 확정성을 높이기 위한 핵심 개념이다.C# 에서는 상속을 통해 기존 클래스의 기능을 물려받고, 필요에 따라 추가하거나 수정할 수 있다. 상속을 하면 기존 클래스 ( 부모 , 또는 기반 클래스 ) 의 변수 , 메서드 등을 새로운 클래스 (자식 , 파생 클래스) 에서 사용 가능하다.클래스의 경우라면 상속은 다중 상속을 지원하지 않는다.예외적으로 인터페이스 ( Interface ) 의 경우는 여러가지를 구현 가능하다. 문법c..
마크다운 ( Markdown )
·
🌱Github/도구 활용
마크다운 ( Markdown )개발 과정에서 문서화는 거의 필수적인 요소이다.마크다운은 텍스트 기반 경량 마크업 언어로, 개발자들 사이에서 표준처럼 쓰이는 문서 작성 방식이다.단순한 문법을 사용해 글자 강조 , 목록 , 표 , 링크 , 코드 블록 등을 손쉽게 표현할 수 있게 해준다.GitHub , GitLab , 블로그 등에서 마크다운이 지원된다. 존 그루버 ( John Gruber ) 와 애런 슈워츠 ( Aaron Hillel Swartz ) 가 만들었다.그루버는 마크다운으로 작성한 문서를 HTML 로 변환하는 Perl 스크립트도 만들었다.다만 요즘에는 범용성이 높은 Pandoc 를 더 많이 사용한다. 마크다운의 장점1. 간단하고 직관적인 문법# , - , * , ` 같은 기본 기호만 알면 사용 가능..
해시테이블 ( Hashtable )
·
⭐C Sharp/15-5. 딕셔너리 해시테이블
해시테이블 ( Hashtable )C# 에서는 Key 와 Value 를 사용해서 자료를 저장하는 타입이 두 가지가 있다.해시테이블과 딕셔너리인데 사용법은 거의 동일하지만 내부적으로 처리하는 기술이 다르다.해시 함수를 이용해 키 ( Key )에 대응되는 값 ( Value )를 빠르게 저장하고 검색할 수 있는 자료구조이다.C# 에서는 System.Collections.Hashtable 클래스로 제공된다. 문법▼선언using System.Collections;Hashtable table = new Hashtable(); ▼추가table.Add("apple", 100); // 100 (int → object) 박싱 발생table["banana"] = 200; // 200 (int →..
추상 클래스 ( Abstract Class )
·
⭐C Sharp/11. 객체 지향
추상 클래스 ( Abstract Class )여러 클래스가 비슷한 구조를 가질 때, 그 공통된 틀과 동작을 정의.구체적인 구현은 각각의 클래스에 맡기고 싶을 때 추상 클래스를 사용한다.추상 클래스는 완전한 구현을 갖지 않고, 파생 클래스가 반드시 재정의해야 하는 멤버 ( 추상 메서드 )를 포함할 수 있는 클래스이다.단독으로 객체를 생성할 수 없으며, 상속 전용 목적으로 사용된다. 문법▼추상 클래스 선언abstract class Animal{ public abstract void MakeSound(); // 추상 메서드 public void Sleep() // 일반 메서드도 가능 { Console.WriteLine("Zzz..."); }} ▼..
인터페이스 ( Interface )
·
⭐C Sharp/11. 객체 지향
인터페이스 ( Interface )객체지향 프로그래밍에서 중요한 설계 개념 중 하나."어떻게 동작하는지는 몰라도, 무엇을 할수 있는지"만 알면 된다. 인터페이스는 구현 ( Implementation )을 포함하지 않고, 멤버의 시그니처 ( signature )만 정의한다.클래스나 구조체는 :인터페이스명 을 통해 이를 구현 ( Implement ) 해야 한다. 인터페이스는 "클래스가 따라야 할 약속 또는 규칙"이다. 인터페이스는 속성 , 메서드 , 이벤트 , 인덱서의 선언 ( signature )만 포함한다.실제 구현은 인터페이스를 상속받은 클래스가 한다. 문법▼인터페이스 정의public interface IAttackable{ void Attack(); // 메서드 시그니처 ..
📘 C# 용어
·
⭐C Sharp/📌용어 사전
📂 0. 메모리 구조할당 : 변수를 위해 메모리를 확보하는 것해제 : 사용이 끝난 메모리를 비우는 것메모리 누수 : 해제되지 않아 낭비되는 메모리스택 ( Stack ) : 지역 변수 , 매개 변수 , 함수 호출 정보 등이 저장되는 메모리 영역 ( 함수 종료시 해제 )힙 ( Heap ) : 참조 타입 객체가 저장되는 메모리 영역, 가비지 컬렉터 ( GC ) 가 관리한다.데이터 ( Data ) : 전역 , 정적 , 상수 데이터가 저장된 영역코드 ( Code ) : 실행할 명령어가 저장된 영역가비지 컬렉터 ( GC ) : 사용하지 않는 Heap 메모리를 자동으로 회수하는 기능 📂 1. 실행 방식정적 ( Static ) : 프로그램 실행 중에 한 번만 할당되고 모든 곳에서 공유동적 ( Dynamic ) :..
this ( 매개변수 키워드 )
·
⭐C Sharp/11. 객체 지향
this ( 매개변수 키워드 )this 는 매개변수 전달 방식이 아니라, 현재 인스턴스 ( 객체 자기 자신 ) 를 가리키는 키워드이다.클래스나 구조체 내부에서 자기 자신의 필드 , 속성 , 메서드 , 인스턴스 를 가리킬 때 사용한다. 문법class ClassName{ private int value; public ClassName(int value) { this.value = value; // 매개변수 value와 멤버 변수 value를 구분 } public void Show() { Console.WriteLine(this.value); // 현재 객체의 value 출력 }} 주의 사항1. 정적 ( static ) 메세더에서는 사용 불..