본문 바로가기

전체 글

(68)
제네릭 - 객지설 10주차 제네릭프로그래밍을 쉽게 작성하기 위해 다양한 종류의 데이터를 처리할 수 있는 클래스와 메소드를 작성하는 기법코드가 중복되지 않음(재사용성) => 마치 상속처럼*클래스로 이용됨.*객체를 만들 수 없다 => 클래스를 만드는 모양 틀임. 동작 방식자료형(타입)을 구체적으로 명시X => T와 같은 기호로 적음.그 후, 객체를 생성할 때 T자리에 구체적인 자료형을 적음. => 자료형을 클래스의 매개변수로 만든다는 뜻 +) 제네릭 이전에는 어떻게 동작했을까다형성을 통해 제네릭 기법 전에도 모든 종류의 객체를 받을 수 있는 클래스 작성이 가능했음. 객체를 Object 타입으로 받으면 됨. Object클래스는 최상위 클래스이므로, 업캐스팅으로 모든 종류의 객체를 받을 수 있음*모든 객체는 Object 클래스의 자손임...
예외 처리 - 객지설 7~9주차 예외디스크에서 하드웨어 에러가 발생하는 것ex. 0으로 나눌 때 예외 발생, 배열 크기를 넘어서 계산할 때 예외 발 예외를 처리하는 방법1. try-catch 구조try { // 예외가 발생할 수 있는 코드} catch(예외 클래스 변수) { // 예외를 처리하는 코드} finally { // try 블록이 끝나면 무조건 실행되는 블} *try 블록은 생략이 불가능함*예외 1개 당 catch 블록 1개 지정*catch 블록이 여러 개 일 때, 매개변수는 모두 달라야 함*catch 코드 부분은 0 ~ n개 작성 가능 *finally 코드 부분은 0 ~ 1개 작성 가능*finally는 무조건 실행이 됨*try와 catch와 finally 블록은 별도의 독립된 블록임. 즉, try블록에서..
캐시 메모리 캐시메모리- 캐시 메모리는 CPU와 주 메모리(메인 메모리) 사이에 위치한 고속 메모리- CPU가 빈번하게 액세스하는 데이터 및 명령어를 저장하는 역할을 함.- 주 메모리에 비해 속도가 빠르고, CPU의 성능 향상과 전체 시스템 성능을 향상시키는 데 중요한 역할을 함.작동 원리지역성: 캐시 메모리는 지역성 원리를 기반으로 동작. - 공간적 지역성: 한 번 액세스된 메모리 주소의 근처 주소들이 더 자주 액세스되는 경향이 있음.- 시간적 지역성: 한 번 액세스된 메모리 주소가 가까운 미래에 다시 액세스될 가능성이 높음.캐시 라인: 캐시는 메모리를 블록 단위로 저장. 이 블록을 캐시 라인이라고 함. (한 번에 전송되는 데이터의 크기 결정)- 캐시 라인의 크기가 클수록 공간 지역성을 더 잘 활용할 수 있지만, ..
인터페이스 - 6주차 인터페이스- 클래스 간의 상속과 관련이 있음 *상속의 장점 : 공통되는 코드를 상위 클래스에 모아두면, 수정할 일이 생겼을 때 상위 코드만 수정하면 됨. -> 하위 코드도 함께 수정되기 때문. => 코드의 재사용성과 유지 보수성이 높아짐.*사람과 자동차는 Run이라는 기능을 수행할 수 있는데, 이에 대한 부모클래스를 정의할 수 없음. 즉 상속 이용 불가 => 인터페이스 등장 인터페이스 정의 (클래스와 비슷)public interface 인터페이스_이름 { public 반환형 추상메소드1(...); public 반환형 추상메소드2(...);}* 인터페이스는 첫 글자를 대문자로 하는 것이 좋음* 인터페이스 안에는 소속변수, 생성자, 일반 메소드 정의 불가. 추상메소드만 가능* public 여부는 선택임* e..
기억장치 - 컴퓨터 구조 1. 주 기억장치 (RAM: Random Access Memory)- 프로그램 실행 중에 사용되는 데이터와 명령어를 일시적으로 저장하는 장치이다.- 랜덤 엑세스 메모리로 임의의 위치에 접근하여 데이터를 읽고 쓸 수 있다.- 주 기억장치는 전원이 꺼지면 데이터가 소멸되므로 휘발성 기억장치라고도 한다.- 주로 DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, DDR4 SDRAM 등의 형태로 사용된다. 2. 보조 기억장치- 주 기억장치와 달리 데이터를 장기적으로 저장하는데 사용된다.- 전원이 꺼져도 데이터가 보존되므로 비휘발성 기억장치이다.- 하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD), 광 디스크, USB 플래시 드라이브 등이 있다.- 용량이 크고 저렴하며, 주로 파일 시스..
다형성 - 객지설 5주차 다형성 객체의 타입에 따라 똑같은 명령이어도 서로 다른 결과를 얻는 것. 업캐스팅 (상향 형변환)하위 클래스 객체를 상위 클래스 참조 변수가 가리키는 것단, 참조 변수는 하위 클래스의 필드와 메소드는 접근 불가.ex. 부모(상위) 클래스 Shape / 자식(하위) 클래스 Circle      => Shape s1 = new Circle(); // 부모(상위) 클래스의 참조변수 s1가 하위 클래스 객체를 가리킴      => s1은 Shape 객체의 변수이므로, Shape로 부터 상속 받은 필드와 메소드만 사용이 가능하다.      => s1은 Shape 부모 클래스 참조 변수는 자식 클래스를 가리키긴 하지만, 무엇을 추가하였는지 알 수가 없다.      *어떤 멤버를 사용할 수 있는지는 변수의 타입에 의..
데이터 통신 - CRC CRC 필기 노트1. CRC- 데이터 전송에서 오류를 검출하는 데 사용되는 기술 중 하나- 데이터에 대한 순환 중복 코드를 계산하여 송신자와 수신자 간에 전송된 데이터가 손상되었는지 여부를 확인 2. 작동 원리- 송신측에서는 데이터에 대한 CRC를 계산하고, 이를 데이터에 부착하여 전송- 수신측에서는 받은 데이터와 CRC를 사용하여 새로운 CRC를 계산- 송신측과 수신측의 CRC가 일치하지 않으면 데이터에 오류로 판단 3. 특징- 비트 오류와 편의에 강한 강인성- 단순하면서도 효과적인 방법으로 오류를 검출 가능- 다양한 표준(CRC-16, CRC-32 등)이 있으며, 사용되는 데이터의 크기와 요구되는 오류 감지 능력에 따라 선택됨. 4. 활용- 네트워크 프로토콜(예: 이더넷) 오류 검출, 데이터 저장 및..
랩퍼 클래스 - 객지설 4주차 JAVA 객체 유형기초 자료형(정수형, 실수형 등등)을 제외한 모든 것이 객체임.  그런데 기초 자료형이 객체로 쓰여야 할 때가 있음. 에를 들어 JAVA에서 Vector는 객체만 저장 가능함. 그래서 Vector에 기초 자료형을 넣고 싶다면 객체로 포장해야 함. => 이때 랩퍼 클래스가 사용 됨. 기초 자료형의 객체 만드는 방법int i = 100; //기초 자료형으로 선언Integer obj = new Integer(i); // Integer 랩퍼 클래스 객체 만듦 (오류 남)//바로 선언도 가능함String s = Integer.toString(100);int i = Integer.parseInt("100");=> JAVA 에는 각 기초 자료형에 대하여 해당되는 랩퍼 클래스가 존재함 랩퍼 클래스의 ..