열거형(Enumeration)은 명명된 정수 상수들의 집합입니다. enum 키워드로 선언합니다. C# 열거형은 값 타입(Value Type)입니다. 자체 값을 가지며, 상속받거나 상속을 전달할 수 없습니다. enum 변수 선언 enum <enum_이름> { 열거_리스트 }; enum_이름: 열거형 타입 이름 열거_리스트: 쉼표로 구분된 식별자 목록 열거 리스트의 각 심볼은 앞선 심볼보다 1 큰 정수 값을 가집니다. 기본적으로 첫 번째 심볼의 값은 0입니다. 기본 예제 enum Days { Sun
C#에서 구조체(Structure)는 값 타입(Value Type) 데이터 타입입니다. 서로 다른 데이터 타입의 관련 데이터를 하나의 변수에 담을 수 있게 해줍니다. struct 키워드로 생성합니다. 구조체는 레코드(Record)를 표현하는 데 사용됩니다. 예를 들어 도서관의 책 정보를 관리하려면 제목, 저자, 주제, 책 ID 등 다양한 타입의 속성을 하나의 단위로 묶어야 합니다. 구조체 정의 struct 문으로 정의하며, 프로그램에서 사용할 둘 이상의 멤버를 가진 새로운 데이터 타입을 정의합니다. struct Books {
C#에서 문자열은 문자 배열로 사용할 수 있지만, 더 일반적인 방법은 string 키워드를 사용하여 문자열 변수를 선언하는 것입니다. string 키워드는 System.String 클래스의 별칭(alias)입니다. 문자열 객체 생성 방법 다음 방법들로 문자열 객체를 생성할 수 있습니다. 문자열 리터럴을 String 변수에 할당 String 클래스 생성자 사용 문자열 연결 연산자(+) 사용 문자열을 반환하는 속성 조회 또는 메서드 호출 서식 지정 메서드로 값/객체를 문자열 표현으로 변환 종합
배열(Array)은 같은 타입의 요소를 고정된 크기로 순차적으로 저장하는 컬렉션입니다. 배열은 데이터를 저장하는 용도뿐 아니라, 동일한 타입의 변수들이 연속된 메모리 위치에 저장된 집합으로 생각하는 것이 더 유용합니다. 개별 변수(number0, number1, ..., number99)를 선언하는 대신, 하나의 배열 변수(numbers)를 선언하고 numbers[0], numbers[1], ..., numbers[99]로 개별 요소에 접근합니다. 특정 요소는 인덱스(Index)로 접근합니다. 모든 배열은 연속된 메모리 위치로
C#은 널 허용 타입(Nullable Types)이라는 특수 데이터 타입을 제공하여, 정상 범위의 값뿐만 아니라 null 값도 할당할 수 있게 합니다. 예를 들어, Nullable<Int32> 변수에는 -2,147,483,648 ~ 2,147,483,647 범위의 값 또는 null을 저장할 수 있습니다. Nullable<bool>에는 true, false, null이 가능합니다. 선언 구문 <데이터_타입>? <변수_이름> = null; T?는 Nullable<T>의 축약 표
메서드(Method)는 작업을 수행하는 문장들의 그룹입니다. 모든 C# 프로그램은 최소한 Main이라는 이름의 메서드를 가진 하나의 클래스를 가집니다. 메서드를 사용하려면 두 단계가 필요합니다. 메서드 정의 (Define) 메서드 호출 (Call) 메서드 정의 구문 <접근_지정자> <반환_타입> <메서드_이름>(매개변수_리스트) { // 메서드 본문 } 메서드 구성 요소 접근 지정자: 다른 클래스에서의 가시성 결정 (public, private 등) 반환
캡슐화(Encapsulation)는 하나 이상의 항목을 물리적 또는 논리적 패키지 안에 감싸는 과정으로 정의됩니다. 객체 지향 프로그래밍에서 캡슐화는 구현 세부 사항에 대한 접근을 차단합니다. 추상화(Abstraction)와 캡슐화는 객체 지향 프로그래밍의 관련 기능입니다. 추상화는 관련 정보를 보이게 하고, 캡슐화는 프로그래머가 원하는 수준의 추상화를 구현할 수 있게 합니다. 캡슐화는 접근 지정자(Access Specifiers)를 사용하여 구현합니다. 접근 지정자는 클래스 멤버의 범위와 가시성을 정의합니다. C#은 다음 접근
같은 코드 블록을 여러 번 실행해야 할 상황이 있습니다. 일반적으로 문장은 순차적으로 실행되지만, 프로그래밍 언어는 더 복잡한 실행 경로를 위한 제어 구조를 제공합니다. 반복문(Loop Statement)은 문장이나 문장 그룹을 여러 번 실행할 수 있게 하며, 일반적인 형태는 다음과 같습니다. C# 반복문 종류 번호반복문 타입 및 설명 1while 루프조건이 참인 동안 문장/문장 그룹을 반복합니다. 루프 본문 실행 전 조건을 테스트합니다. 2for 루프문장
의사결정 구조(Decision Making Structures)는 프로그래머가 하나 이상의 조건을 지정하여 프로그램에서 평가/테스트하도록 하고, 조건이 참이면 실행할 문장, 거짓이면 선택적으로 실행할 다른 문장을 지정하는 구조입니다. C# 의사결정 문장 종류 번호문장 및 설명 1if 문불리언 식 뒤에 하나 이상의 문장이 옵니다. 2if...else 문if 문 뒤에 선택적 else 문이 따라오며, 불리언 식이 거짓일 때 실행됩니다. 3중첩 if 문
연산자(Operator)는 컴파일러에게 특정 수학적/논리적 조작을 수행하도록 지시하는 기호입니다. C#은 풍부한 내장 연산자 세트를 제공하며, 주요 분류는 다음과 같습니다. 산술 연산자 관계 연산자 논리 연산자 비트 연산자 할당 연산자 <기타 연산자 산술 연산자 (Arithmetic Operators) 변수 A = 10, B = 20 가정 시: 연산자설명예시 +두 피연산자 더하기A + B = 30 -첫 번째에서
상수(Constants)는 프로그램 실행 중에 변경될 수 없는 고정 값입니다. 이러한 고정 값을 리터럴(Literals)이라고도 합니다. 상수는 정수, 부동소수점, 문자, 문자열 등 모든 기본 데이터 타입일 수 있으며, 열거형 상수도 포함됩니다. 상수는 일반 변수처럼 취급되지만, 정의 후 값을 수정할 수 없다는 점이 다릅니다. 정수 리터럴 (Integer Literals) 정수 리터럴은 10진수 또는 16진수 상수일 수 있습니다. 접두사로 진법을 지정합니다. 0x 또는 0X: 16진수 접두사 없음: 10진수
변수(Variable)는 프로그램이 조작할 수 있는 저장 영역에 주어진 이름입니다. C#의 모든 변수는 특정 타입을 가지며, 이 타입은 변수의 메모리 크기와 레이아웃, 저장 가능한 값의 범위, 적용 가능한 연산 집합을 결정합니다. C# 기본 값 타입 분류 타입 분류 예시 정수 타입 (Integral types)sbyte, byte, short, ushort, int, uint, long, ulong, char
타입 변환(Type Conversion)은 한 데이터 타입을 다른 데이터 타입으로 변환하는 것을 말합니다. 이는 타입 캐스팅(Type Casting)이라고도 불립니다. C#에서 타입 캐스팅은 두 가지 형태로 나뉩니다. 암시적 타입 변환 (Implicit Type Conversion) 이 변환은 C#이 타입 안전하게 자동으로 수행합니다. 예를 들어, 더 작은 정수 타입에서 더 큰 정수 타입으로의 변환이나 파생 클래스에서 기본 클래스로의 변환이 이에 해당합니다. 데이터 손실이 발생하지 않기 때문에 별도의 문법 없이 자연스럽게 이루어집
C# 변수 범주 C# 변수는 세 범주로 나뉩니다. 값 타입 (Value Types) 참조 타입 (Reference Types) 포인터 타입 (Pointer Types) 값 타입 (Value Type) System.ValueType 파생. 변수에 데이터 직접 저장. 예: int, char, float. 선언 시 메모리 할당되어 값 보관. C# 2010 값 타입 표 타입표현범위기본값 bool불리언True/FalseFalse byte8비트 부호없는 정수0~2550 char16비트 유니코드 문자U+0000~U+FFFF\0 d
객체지향 프로그래밍과 C# 기본 문법 C#은 객체지향 언어입니다. 객체는 동작(메서드)으로 상호작용하며, 같은 종류 객체는 같은 클래스에 속합니다. 예제: Rectangle 클래스 구현 using System; namespace RectangleApplication { class Rectangle { // 멤버 변수 double length; double width; public void Acceptdetails() { length = 4.5;
Hello World 프로그램 만들기 C# 프로그램의 구성 요소: 네임스페이스 선언 클래스 클래스 메서드 클래스 속성(필드) Main 메서드 (진입점) 문장과 표현식 주석 최소 Hello World 코드 using System; namespace HelloWorldApplication { class HelloWorld { static void Main(string[] args) { /* my first program in C# */ Console.WriteLine
.NET Framework 개요 .NET Framework는 윈도우 애플리케이션, 웹 애플리케이션, 웹 서비스 개발을 지원하는 혁신적 플랫폼입니다. 멀티 플랫폼 애플리케이션 구축이 가능하며 C#, C++, Visual Basic, JScript, COBOL 등 다양한 언어에서 접근 및 상호 통신 가능. 주요 구성 요소 공통 언어 런타임 (CLR) .NET Framework 클래스 라이브러리 공통 언어 사양 (CLS) 공통 타입 시스템 (CTS) 메타데이터와 어셈블리 Windows Forms ASP.NET과 ASP.NET AJAX
C# 언어 소개 C#은 마이크로소프트가 개발한 현대적, 범용, 객체지향 프로그래밍 언어로 ECMA와 ISO 표준 승인을 받았습니다. 안데르스 헤일스버그 팀이 .NET Framework 개발 과정에서 만들었습니다. C#은 공통 언어 인프라(CLI)를 위해 설계되었으며, 실행 코드와 런타임 환경으로 다양한 고수준 언어가 여러 플랫폼/아키텍처에서 동작하게 합니다. C#이 널리 쓰이는 전문 언어인 이유 현대적 범용 프로그래밍 언어 객체지향 컴포넌트 지향 배우기 쉬움 구조화 언어 효율적인 프로그램 생성 다양한 플랫폼에서 컴파일 가능 .N
CGI란? CGI(Common Gateway Interface)는 웹 서버와 사용자 정의 스크립트 간 정보 교환 방식을 정의하는 표준 모음입니다. 현재 NCSA에서 관리하며, CGI는 HTTP 서버 같은 정보 서버와 외부 게이트웨이 프로그램이 인터페이스하는 표준으로 정의됩니다. 현재 버전은 CGI/1.1이며 CGI/1.2가 진행 중입니다. 웹 브라우징 과정 하이퍼링크를 클릭해 웹 페이지나 URL을 탐색할 때 일어나는 일: 브라우저가 HTTP 웹 서버에 연락해 URL(파일명) 요청 웹 서버가 URL을 파싱해 파일명 찾기. 파일이
멀티스레딩 개요 멀티스레딩은 멀티태스킹의 특수한 형태로, 멀티태스킹은 컴퓨터가 두 개 이상의 프로그램을 동시에 실행할 수 있게 하는 기능입니다. 멀티태스킹에는 프로세스 기반과 스레드 기반 두 가지 유형이 있습니다. 프로세스 기반 멀티태스킹: 프로그램들의 동시 실행을 관리 스레드 기반 멀티태스킹: 동일 프로그램 내 여러 조각의 동시 실행을 관리 멀티스레드 프로그램은 동시에 실행될 수 있는 두 개 이상의 부분을 포함하며, 각 부분을 스레드라고 하고 각 스레드는 별도의 실행 경로를 정의합니다. C++에는 멀티스레드 애플리케이션에 대한
C 언어