분류 전체보기(36)
-
C# 참조에 의한 매개변수 전달
이 글은 박상현님의 '이것이 C#이다 개정판'을 참고하여 공부한 내용입니다. 처음 C, C++ 프로그래밍 언어 공부를 하였을 때에는 주로 정수형 데이터 타입만을 사용하여 간단한 함수를 작성하였기에 매개변수 전달에 대한 이해가 필요없습니다. 하지만 문자열과 포인터를 접하면서 다른 값으로 매개변수가 전달 되는 문제들이 생기면서 메모리의 구조와 참조 혹은 포인터에 의한 매개변수 전달을 공부하게 됩었습니다. C# 에서도 C++과 비슷한 참조 매개변수 전달방식이 있습니다.우선 C#은 기본적으로 함수와 메서드의 매개변수는 값에 의해 복사 되어 전달 됩니다.int a = 10;void func(int a){ a += 10; Console.WriteLine(a);}func(a);Console.WriteLin..
2025.02.11 -
System Rescue
배경시스템 유지보수를 하다 보면 여러 가지 분야의 문제에 직면하게 됩니다. 그중에서 서버 부팅 문제가 생기는 경우가 종종 있습니다. 대부분의 문제 원인은 시스템 관련 설정 혹은 서비스, 파일이 잘못되었을 경우입니다. 하지만 다시 설정을 하기 위해서는 최소한 CLI 혹은 GUI로 진입하여 작업을 해야 합니다. 그래서 엔지니어는 긴급모드 혹은 안전모드로 진입하여 작업을 수행합니다.개요System Rescue는 시스템 충돌 및 장애를 복구하기 위한 배포판 Linux로 위의 문제를 직면 했을때 엔지니어에게 편리함을 제공합니다. 우선 몇 가지 특징을 알려드리겠습니다.대부분의 linux 명령어 지원 ( parted, fdisk, fsck, smartctl, … )GUI 환경 및 웹 브라우저( Firefox , EL..
2024.12.21 -
C#의 데이터 타입
이 글은 박상현님의 '이것이 C#이다 개정판'을 참고하여 공부한 내용입니다.데이터 타입은 언어마다 차이는 있지만 크게 다르지는 않습니다. 하나의 언어를 공부하셨다면 정수형, 소수형, 문자열 타입은 익숙할 것 입니다. 하지만 C#의 공부하다 보면 익숙하지 않은 키워드가 2가지가 나옵니다. Object참조 데이터 타입으로 힙 메모리 구역에 할당되어 데이터를 저장합니다. 언뜻 읽어보면 포인터와 비슷하다는 생각이 듭니다. 하지만 큰 차이가 2가지 있습니다. 데이터 형식두 가지 모두 힙을 참조하는 데이터지만 타입의 차이가 있습니다. Object는 값 혹은 참조를 담는 객체 타입이며 포인터는 메모리 주소를 직접 참조하는 변수 입니다. Object는 객체로써 런타임 타입 정보를 포함하여 컴파일시 오류를 표시해 안정적..
2024.12.20 -
Namespace를 사용한 케이블 불량 확인
배경엔지니어는 네트워크 문제의 원인을 알기 위해 종종 네트워크 케이블의 불량 유무를 확인합니다. 하지만 테스트할 수 있는 환경이 해당 케이블의 듀얼포트 네트워크 인터페이스 카드 1개만 보유한 상황이라면 이 방법을 추천드립니다. 환경Server : Supermicro WorkstationNIC: 2 Ports 100Gb EDR InfiniBandOS : CentOS 7.8IB driver version : MLNX_OFED_LINUX-4.9-4.0.8.0 작업유휴 서버 한 대에 인피니밴드 네트워크 카드를 장착하고 케이블 한개의 양 끝단 모두 해당 네트워크 카드 포트들에 연결합니다. 순서는 ip 명령어를 사용하여 ns1이라는 namespace를 생성, ns1에 한쪽 포트의 인터페이스 할당하여 인터페이스들..
2024.12.19 -
Static 그리고 Main
이 글은 박상현님의 '이것이 C#이다 개정판'을 참고하여 공부한 내용입니다.StaticC와 C++의 Static 한정자를 알고 있다면 C# Static의 사용법도 알 수 있습니다. Static은 가시성과 단일성을 제어하며, C++ 에서는 Static 메서드를 통해 인스턴스를 사용하지 않고 바로 호출이 가능합니다. 바로 호출이 가능하다는 점은 Static을 사용하는 순간 그 함수 혹은 변수는 전역으로 설정, 데이터 메모리에 할당되어 프로세스의 시작과 끝을 함께한다는 것을 추론할 수 있게 해줍니다. 더 나아가 C#은 Static 클래스, Static 생성자, Static 로컬함수를 지원합니다. 여기서 로컬함수란 메서드 내에서 선언되는 함수를 뜻합니다. Static 구분 CC++C#Static 전역변수파일 내..
2024.12.18 -
C# 그리고 .NET
이 글은 박상현 님의 '이것이 C#이다 개정판'을 참고하여 공부한 내용입니다. C와 C++ 그리고 C#C#은 스스로 C++을 계승하는 언어로 자명하며, C++의 ++증감연사자를 아래에 한번 더 쓰면서 C#이라는 이름으로 개발되었습니다. C++ 또한 C를 계승하여 C에 ++증감연산자를 붙여 나왔으니 C#은 같은 C 언어가문의 계승자로 보입니다. 하지만 C와 C++은 1970-1980년도 AT&T가 모기업으로 있을 당시 벨 연구소에서 개발되었고 C#은 2000년 마이크로소프트에서 .NET 프레임워크와 같이 개발된 언어입니다. 이렇듯 이름은 비슷하지만 서로 다른 언어라는 것을 알 수 있습니다. 각각의 언어의 다른 목적으로 개발되었습니다. C는 B언어를 계승하며, 1970년대 PDP-11 컴퓨터의 기능을 온전히..
2024.12.17