반응형 전체 글552 Effective C# - Item 18 반드시 필요한 제약 조건만 설정하라 타입 매개변수에 대한 제약 조건(Constraint)은 클래스가 작업을 올바르게 수행학 위해서 타입 매개변수로 전달할 수 있는 타입의 유형을 제한하는 방법이다. 개발자는 올바르게 작업을 수행하기 위한 최소한의 제약 조건만을 설정해야 한다. Where키워드 C#에서 제네릭 타입의 제약 조건은 Where키워드를 사용하여 설정된다. 아래 코드는 T가 IComparable인터페이스를 구현하도록 제약조건을 사용하는 예제이다. public class Example where T : IComparable { public int CompareValues(T value1, T value2) { return value1.CompareTo(value2); } } Example intExample = new Example().. 2023. 12. 5. Effective C# - 제네릭타입, 닫힌 제네릭 타입, 열린 제네릭 타입, JLT Compiler, IL 제네릭 타입 하나 이상의 타입 매개변수를 가지는 클래스 또는 메서드이다. class Piggy 닫힌 제네릭 타입 구체적인 타입이 할당되지 않은 상태에서 사용된다. Piggy codePiggy = new Piggy(); 열린 제네릭 타입 일부의 타입 매개변수만 구체적인 타입이 정해서 사용된다. Piggy codePiggy = new Piggy(); 머신 코드 공유 참조 타입 데이터가 실제로 저장된 메모리 주소를 가리키는 참조를 사용한다. 객체의 인스턴스는 힙메모리에 저장되고 변수는 그 객체를 가리키는 참조를 갖는다. MyPiggy piggy1 = new MyPiggy(); MyPiggy piggy2 = piggy1; 제네릭 타입의 타입 매개변수로 참조 타입이 전달되면,컴파일러는 해당 제네릭 타입에 대한 일.. 2023. 12. 5. 컴퓨터 구조 - RAID의 정의와 종류(RAID,RAID0,RAID1,RAID4,RAID5,RAID6) RAID(Reduncdnat Array of Independent Disks) 여러 개의 물리적인 디스크 드라이브를 하나의 논리적인 보조기억장치로 사용하는 기술로 주로 데이터의 안전성을 높이거나 높은 성능을 위해 사용된다. 하드 디스크와 SSD에 사용된다. RAID의 종류 여러 개의 하드 디스크나 SSD를 마치 하나의 장치처럼 사용하는 RAID를 구성하는 방법은 여러 가지가 있다. RAID 구성 방법을 RAID레벨이라 표현한다. 01 RAID0 여러 개의 보조기억장치(하드 디스크 또는 SSD)에 데이터를 단순히 나누어 저장하는 구성 방식이다. 이때 나뉜 데이터를 스트라이프(Stripe)라고 하며 각 디스크는 번갈아 가면 Stripe를 저장한다. 이런 분산된 저장 방식을 스트라이핑(Striping)이라고 .. 2023. 12. 5. 컴퓨터 구조 - 하드 디스크(플래터, 스핀들, 헤드, 디스크 암) 플래시 메모리(SLC,MLC,TLC),가비지 컬렉션 하드 디스크(HHD:Hard Disk Drive) 자기적인 방식으로 데이터를 저장하는 보조기억장치이다. 자기 디스크(magentic disk)의 일종이다. 플래터라고 불리는 회전하는 디스크에 자기적인 방식으로 데이터를 기록하고 읽어오는 원리로 동작한다. 01 플래터(Platter) 회전하는 원형 디스크로 각각의 자기판에 데이터가 자기적으로 기록된다. 하드 디스크에서 실질적으로 데이터가 저장되는 곳이다. 하드 디스크는 자기적인 방식으로 데이터를 저장하므로 N극과 S극을 저장한다. N극과 S극은 0과 1의 역할을 수행한다. 02 스핀들(Spindle) 플래터를 회전시키는 원판으로 회적 속도는 HDD의 성능에 영향을 미친다. 빠르게 회전하는 스핀들은 데이터에 빠르게 액세스할 수 있도록 한다. 03 RPM(Re.. 2023. 12. 5. 컴퓨터 구조 - 저장 장치 계층구조, 캐시 메모리, 캐시 적중률, 참조 지역성의 원리(시간지역성,공간지역성) CPU는 프로그램을 실행하는 과정에서 메모리에 저장된 데이터를 빈번하게 사용한다. 하지만 CPU가 메모리에 접근하는 시간은 CPU의 연산 속도보다 느리다. CPU가 연산을 빨리 한다 해도 메모리에 접근하는 시간이 느리면 CPU의 빠른 속도는 아무런 쓸모가 없어지므로 이를 극복하기 위한 저장 장치가 바로 캐시메모리이다. 저장 장치는 일반적으로 아래와 같은 명제를 따른다. 1) CPU와 가까운 저장 장치는 빠르고 멀리 있는 저장 장치는 느리다. 2) 속도가 빠른 저장 장치는 저장 용량이 작고 가격이 비싸다. 낮은 가격대의 대용량 저장 장치를 원한다면 느린 속도는 감수해야 하고 빠른 속도의 저장 장치를 원한다면 작은 용량과 비싼 가격은 감수해야 한다. 저장 장치 계층 구조(Memory Hierachy) CPU.. 2023. 12. 5. 백준 C# - 1149 +) 풀이 DP를 이용해서 풀어야한다. DP알아보러 가기 C# - 다이나믹 프로그래밍(DP) 다이나믹 프로그래밍 메모리를 적절히 사용하여 수행 시간 효율성을 향상 시키는 최적화 기법중 하나이다. 큰 문제를 작은 부분 문제로 나누어 해결하며 이미 계산된 작은 문제의 결과를 점화식 구하기 01 일단 작성해보자 예제 1번을 가지고 한 번 적어본 후에 관계성을 구해보았다. N = 1, N = 2, N = 3 차근차근 최솟값을 구하면서 다음 N을 구하면 되는 것을 밑에 오른쪽표에서 확인할 수 있다. 02 점화식 구하기 위의 관계성을 통해 아래와 같이 점화식을 구할 수 있다. 코드 전문 using System; namespace baek2 { class Program { public static void Main() { in.. 2023. 12. 4. 이전 1 ··· 29 30 31 32 33 34 35 ··· 92 다음 반응형