기타
-
레지스터와 메인 메모리의 차이와 역할기타 2022. 9. 3. 02:04
CPU의 레지스터와 메인 메모리컴퓨터에서 프로세서(Processor)는 프로그램을 실행하고 데이터를 처리하는 핵심적인 하드웨어 유닛입니다.이 프로세서는 작업을 수행할 때 데이터를 임시로 저장하고 처리하기 위해 레지스터(Register)와 메인 메모리(Main Memory, RAM)를 사용합니다. 레지스터와 메모리는 모두 CPU가 데이터를 처리할 때 사용하는 저장 공간입니다. 이들은 CPU가 직접 접근할 수 있는 장치로, 처리 속도에 큰 영향을 줍니다.레지스터(Register)는 CPU 내부에 있는 매우 빠른 저장 장치로, 연산에 필요한 데이터를 일시적으로 저장합니다.메모리(Memory)는 일반적으로 RAM을 의미하며, CPU가 연산에 필요한 데이터를 레지스터보다 느리지만 큰 용량으로 저장하고 불러올 수 ..
-
-
싱글톤 패턴 *기타/디자인패턴 2021. 9. 14. 23:05
객체가 하나만 필요한 경우 스레드 풀, 캐시 대화상자, 사용자 설정, 레지스트리 설정 처리 객체, 로그 기록용 객체, 프린터나 그래픽카드 같은 디바이스를 위한 디바이스 드라이버 같은 객체 연결풀, 스레드풀 관리 전역변수의 단점 전역변수에 객체를 대입하면 애플리케이션이 시작될 때 객체가 생성되는데 (*플랫폼에 따라 다름) 근데 객체가 자원을 많이 차지한다면, 애플리케이션이 끝날 때까지 객체사용을 하지 않을 때 불필요하게 자원을 낭비하게 된다. 싱글톤 패턴은 필요할 때만 객체를 생성할 수 있다. * 어떻게 하면 한 클래스의 인스턴스가 두 개 이상 만들어지지 않도록 할 수 있을까? > new Obj(); new 생성자를 사용하지 못하게 한다. => 생성자를 private 으로 선언, 객체를 메서드를 통해 반환..
-
리눅스 기초 훑기기타 2021. 4. 23. 11:29
목차 디렉터리 구조 쉘의 종류 기본 명령어 텍스트 에디터 vi 리다이렉트와 파이프 파일 명령어 심볼릭 링크와 하드 링크 시스템 관리 네트워크 사용자 환경 설정 경로 설정 로그 설정 마운트 디렉터리 구조 디렉터리 역할 bin 바이너리 형식의 실행 파일이나 명령이 보관되어 있다. dev 디바이스 관련 파일이 보관되어있다. etc 각종 설정 파일 등 다양한 파일이 보관되어 있다. root 루트 디렉터리와 별도로 준비된 시스템 관리자용인 홈 디렉터리이다. sbin 관리자용 시스템 표준 명령이 보관되어 있다. usr 각 사용자의 데이터나 애플리케이션이 보관되어 있는 장소이다. home 이 디렉터리 아래에 사용자별 디렉터리가 만들어지고, 그곳이 각 사용자의 홈 디렉터리이다. var 애플리케이션의 기록(로그)파일이나..
-
쉘스크립트의 셔뱅 shebang기타 2021. 3. 29. 10:10
1. 쉘 스크립트란?쉘 스크립트는 쉘에서 사용할 수 있는 명령어들을 조합하여 만든 배치(batch) 파일이다. 우리가 흔히 알고 있는 Python, Perl, Ruby 같은 스크립트 언어는 각각 고유의 인터프리터를 가지고 있으며, 이 인터프리터는 따로 설치해야 한다.하지만 쉘 스크립트는 조금 다른데, 운영체제의 쉘 자체에 인터프리터 기능이 내장되어 있기 때문에 별도로 설치할 필요 없이 쉘이 직접 스크립트를 실행해 준다. 즉, 쉘 스크립트는 운영체제와 밀접하게 연동되며, 우리가 사용하는 셸 환경(Bash, Zsh 등)에서 바로 실행할 수 있다.스크립트 언어로 만들어졌기 때문에 결국은 인터프리터가 명령어를 한 줄씩 읽어가며 처리하지만, 쉘 스크립트의 경우 이 인터프리트 역할을 셸 자체가 담당한다. 2. 스크..
-
행위패턴 > 템플릿 메서드 *기타/디자인패턴 2021. 2. 12. 15:42
템플릿은 틀을 의미한다. 템플릿 메서드는 알고리즘의 틀을 만들기 위한 것이다. 템플릿 메서드 패턴에서는 알고리즘의 골격을 정의한다. 템플릿 메서드는 일련의 단계들로 알고리즘을 정의한 메서드를 의미한다. 여러 단계 중 일부는 서브 클래스에서 구현할 수 있다. 템플릿 메서드를 이용하면 알고리즘 구조는 유지하면서 서브클래스에서 특정 단계를 재정의할 수 있다. 커피와 차를 만드는 과정이 각각 아래와 같다. 커피 => 1.물을 끓인다. 2. 커피를 우린다. 3. 커피를 컵에 4. 설탕과 우유 추가 차 => 1.물을 끓인다. 2. 차를 우린다. 3. 차를 컵에 4. 레몬 추가 이 때 일반화를 통해 공통으로 사용 가능한 부분을 추상화한 클래스를 만든다. "1. 끓인다.", "3. 컵에"와 같은 완전히 동일한 행동이 ..
-
행위패턴 > 상태(State) *기타/디자인패턴 2021. 2. 12. 15:41
동일한 동작을 객체 상태에 따라 다르게 처리해야 할 때 사용. 일련의 규칙에 따라 객체의 상태(State)를 변화시켜, 객체가 할 수 있는 행위를 바꾸는 패턴이다. 이렇게 하나의 객체에 여러 가지 상태(예, 정지, 상승, 하강)가 존재할 때 패턴을 사용하지 않고 프로그래밍을 하면 if 문 또는 switch 문을 사용하여 처리한다. 그런데 신규 상태(예, 문 열림, 문 닫힘)가 발생하면 프로그램을 다시 수정해야 한다. 또는 상속을 통해 만든 클래스에 새로운 기능을 추가할 때 일부 하위 클래스에서는 신규 기능이 필요하지만, 일부 클래스와는 무관할 때는? 뽑기 기계를 예시로, 동전없음, 동전있음, 알맹이 매진, 알맹이 판매 라는 네개의 상태를 가지는 뽑기 기계가 있다고 하자. public class Gambl..
-
행위패턴 > 옵저버 *기타/디자인패턴 2021. 2. 12. 15:39
객체의 상태변화에 따라 다른 객체의 상태도 연동되도록 일대다 객체 의존 관계를 구성 데이터 변경이 발생했을 경우 상대 클래스나 객체에 의존하지 않으면서 데이터 변경을 통보하고자 할 때 유용 Subject 와 Observer 는 서로를 변수로 가지고 있는다. Observer 는 생성자에서 받은 subject 를 registerObserver(this)로 등록해두고, Subject 에서는 자신에게 변화가 있을 때 Observer notify 를 호출한다. push방식, poll 방식으로 구현할 수 있다. Product 에 상태에 변화가 생기면 Observer 에서 이를 감지하고 ProductDisplay 에게 알려준다. public class ObTest { public static void main(Str..