C# 프로그래밍 시작하기
데이터를 다루는 방법(객체, 타입)과 데이터를 이용한 연산, 데이터 간의 형변환에 대해 알아봅니다.
문자열과 문자열을 선언하여 사용하는 방법에 대해 알아봅니다.
C#의 배열에 대해 알아봅니다.
선택문(조건문)으로 실행 흐름을 제어하는 방법을 알아봅시다
반복문을 통해 실행 흐름을 제어하는 방법을 알아봅시다.
상수의 의미와 이용하는 방식을 알아봅시다.
🏹 콜백함수 콜백함수란? : 함수 혹은 프레임워크에 의해 호출되는 함수를 지칭합니다. → 일반적으로 프로그래머가 프레임워크 혹은 라이브러리의 함수를 호출하는데, 콜백함수는 프레임워크 혹은 라이브러리가 프로그래머의 함수를 호출합니다. 🏹 대리자 (Delegate) 1. 대리자란 1) 함수를 저장하기위한 타입 → 프레임워크 혹은 라이브러리가 프로그래머의...
지금까지는 구문들을 절차에 따라 작성하기만 했다면, 이제는 유지보수성을 증가시킬 방법에 대해 고민할 차례가 되었다. > >전체 코드를 여러 파트로 나누고, 관리하는 방법에 대해 알아보자! 🌻 모듈화 1. 모듈 1) 전체 프로그램을 구성하는 코드를 여러 파트로 분리한
🦥 .NET 아키텍쳐 : 만약 게임을 제작해서 PC, 안드로이드, iOS 버전을 다 배포하기로 했다. 고전 방식으로는 각 플랫폼에 따라 알맞은 코드를 다시 작성해야 한다. 이러한 번거로움을 없애기 위해 하나의 코드로 여러 플랫폼에 대응하는 프로그램을 제작할 수 있는 java가 탄생했다. C# 또한 하나의 코드로 여러 플랫폼에 대응하는 프로그램을 제작해주...
🛖 사용자 정의 타입 1. 필요성 : 내장된 타입만으로는 현실 세계의 데이터들을 코드로 표현하기 어렵습니다. 현실 세계의 데이터들은 하나의 데이터라도 여러개의 속성(특징)들을 가질 수 있으며, 여러개의 데이터들이 하나의 종류로 묶일 수 있습니다. 프로그래머는 이를 표현하기 위해 직접 타입을 선언할 수 있으며, 이를 사용자 정의 타입이라고 합니다. C#에...
랜덤 라이브러리를 사용해 가챠 시스템을 구현해봅시다.
지금까지 우리는 Sokoban 맵을 그려내기 위해 코드 속에서 좌표와 string을 하나하나 직접 지정했습니다. 이 방식은 좌표를 하나하나 지정하기 번거롭고, 코드로 작성한 맵을 출력하여 확인하기 전에는 완성된 맵의 모양을 확인하기 어렵다는 단점이 있었는데요. 여러 버전(스테이지 등)의 맵을 별도의 파일에 그려둔 후, 그 파일을 읽어와 프로그램 내에서 처리...
🐳 멤버 : 멤버란 클래스의 구성 요소로, 아래의 종류가 있습니다. → 필드, 상수, 프로퍼티, 메소드, 이벤트, 연산자, 인덱서, 생성자, 종료자, 네스티드 타입 1. 필드 클래스 범위에 선언된 변수로, 클래스(타입)를 구성하는 데이터입니다. 필드의 타입은 반드시 내장타입일 필요는 없습니다. 필드는 보통 private으로 선언하며, 이를 데이터 은닉...
🥨 일반화 프로그래밍 1. 의미 타입에 무관하게 알고리즘을 작성하는 프로그래밍 기법 코드의 재사용성을 극대화할 수 있습니다. 2. 형식 알고리즘에 사용되는 실제 데이터의 타입은 매개변수를 통해 전달합니다. 타입이 매개변수화 되었다고 합니다. 예시 🥨 제네릭 : C#이 제공하는 일반화 프로그래밍 방식 1. T 1) 타입 매개변수 (파라미터)이자 위치...
🪵 객체지향 프로그래밍이란 객체를 중심으로 프로그램을 구성하는 방법 현대 프로그래밍 패러다임 중 가장 주류가 된 프로그래밍 패러다임 🪵 객체지향 프로그래밍의 특징 1. 캡슐화 (Encapsulation) 1) 데이터와 데이터를 다루는 함수를 같이 작성할 수 있게 한 것 필드: 데이터 메소드: 데이터를 다루는 함수 2) 데이터 은닉 (Data Hidi...
🌟 메모리와 가비지 컬렉션 1. 리소스란? 1) 리소스 : 운영체제로부터 빌려와 사용한 후 반환해야하는 것 2) 메모리도 리소스 → 동적 할당된 메모리를 사용한 후에는 시스템에 돌려줘야 함 2. 메모리 반환 관련 문제 1) 메모리 누수 (Memory Leak) : 메모리 사용이 끝났음에도 불구하고 해제하지 않은 것 2) 이중 해제 (Double Fr...
객체지향 프로그래밍은 캡슐화, 추상화, 다형성, 상속의 특성으로 확장성이 높아 주류가 되었다. 하지만 이 특성들을 사용했음에도 잘못된 설계로 유지보수가 어려워질 수 있다. > 객체지향 설계를 위한 테크닉 중 책임 주도 설계에 대해 알아보자! ✨ 책임 주도 설계 > 책임 주도 설계란 객체가 책임지고 있는 행동과 객체간 공유하고 있는 정보를 고려해 계약에 초...