본문 바로가기
728x90

전체 글172

디자인 패턴 - 싱글톤 패턴 디자인 패턴 디자인 패턴: 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할수 있도록 하나의 '규약' 형태로 만들어 놓은것을 말한다. 싱글톤 패턴 싱글톤 패턴(singleton pattern)은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 보통 데이터베이스 연결 모듈에 많이 사용한다. 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비 용이 줄어드는 장점이 있다. 하지만 의존성이 높다는 단점이 존재한다. 자바스크립트에서는 리터럴 {} 또는 new object로 객체를 생성하게 되면 다른 어떤 객체와도 같지 않기 때문에 이 자제만으로 싱글톤 패턴을 구현 할수 있다. 자바스크립트의 싱글톤 패턴 co.. 2023. 1. 18.
JAVA Basic Dictionary & Map 클래스 JAVA Basic : Dictionary & Map 클래스 Map 클래스와 일반 배열과의 차이점 패키지 java.util java.lang 클래스 정의 Map ht = new HashMap(); String[] array = new String[n] ← n자리수의 배열 정의 크기 크기가 정해져 있지 않다. 확장성 용이 한번 배열클래스를 정의하면 크기 고정. 순서 순서가 없다. 순서가 있다. 입출력형태 Key-Value 형태로 입출력을 한다. 배열의 Index 숫자를 지정해서 입출력을 한다. 반복출력 시 순서없이 뒤죽박죽 출력된다.Key와 Value는 한 쌍이기때문에 Key&Value는 안섞인다. 배열 Index번호대로 차례대로 출력된다. Map의 주요 메소드 Map ht = new HashMap(); .. 2023. 1. 17.
CPU 스케줄링 알고리즘 CPU 스케줄링 알고리즘 CPU 스케줄러는 CPU 스케줄러 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU로 할당한다. 프로그램이 실행 될때는 CPU 스케줄링 알고리즘이 어떤 프로그램에서 CPU 소유권을 줄 것인지 결정한다. 이 알고리즘은 CPU 이용률은 높게, 주어진 시간에 많은 일을 하게, 준비 큐(ready queue)에 있는 프로세스는 적게, 응답 시간은 짧게 설정하는 것을 목표로 한다. 비선점형 방식 비선점형 방식(non-preemptive)은 프로세스가 스스로 CPU 소유권을 포기 하는 방법이며, 강제로 프로세스를 중지 하지 않는다. 따라서 컨텍스트 스위칭으로 인한 부하가 적다. FCFS FCFS(First Come, First Served)는 가장 먼저 온 것을 가장 먼저 .. 2023. 1. 16.
공유자원 과 임계영역 & 교착상태 공유 자원 과 임계 영역 공유 자원 공유 자원(shared resource)은 시스템 안에서 각 프로세스, 스레드가 함께 접근 할 수 있는 모니터, 프린트, 메모리, 파일, 데이터 등의 자원이나 변수를 말한다. 이 공유 자원을 두개 이상의 프로세스가 동시에 읽거나 쓰는 상황을 경쟁 상태(race condition) 이라 한다. 동시에 접근을 시도할 때 접근의 타이밍 이나 순서 등이 결괏값에 영향을 줄 수 있다. 프로세스 A와 프로세스 B 가 동시에 접근 할때 타이밍 서로 꼬여 정상 결과값 300인데 200이 출력된다. 임계영역 공유 자원에 접근할 때 순서 등의 이유로 결과가 달라지는 영역을 임계 영역(critical section)이라 한다. 임계 영역을 해결하기 위한 방법은 뮤텍스, 세마포어, 모니터 .. 2023. 1. 15.
백준 1990번 소수인팰린드롬 1. 문제 설명 문제 링크 151은 소수이면서 동시에 팰린드롬이기 때문에 소수인 팰린드롬이다. 팰린드롬이란 앞으로 읽어나 뒤로 읽으나 같은 수를 말한다. 예를 들어 1234는 앞으로 읽으면 1234지만, 뒤로 읽으면 4321이 되고 이 두 수가 다르기 때문에 팰린드롬이 아니다. 두 정수 a, b가 주어졌을 때, a이상 b이하인 소수인 팰린드롬을 모두 구하는 프로그램을 작성하시오. 입력 입력은 첫째 줄에 공백으로 구분된 두 자연수 a, b가 주어진다. 단 5 ≤ a < b ≤ 100,000,000 이다. 출력 첫째 줄부터 차례로 증가하는 순서대로 한 줄에 한개씩 소수인 팰린드롬을 출력한다. 마지막 줄에는 -1을 출력한다. 2. 코드 import sys input = sys.stdin.readline # 입.. 2023. 1. 15.
멀티 프로세싱 & 스레드&멀티 스레딩 멀티 프로세싱 멀티 프로세싱은 여러개의 '프로세스', 즉 멀티프로세스를 통해 동시에 두 가지 이상의 일을 수행할 수 있는 것을 말한다. 이를 통해 하나 이상의 일을 병렬로 처리 할 수 있으며 특정 프로세스의 메모리, 프로세스 중 일부에 문제가 발생되더라도 다른 프로세스를 이용해서 처리할 수 있으므로 신뢰성이 높은 강점 이있다. 웹브라우저 웹 브라우저는 멀티프로세스 구조를 가지고 있으며 다음과 같다. 브라우저 프로세스: 주소 표시줄, 북마크 막대, 뒤로 가기 버튼, 앞으로 가기 버튼 등을 담당하며 네트워크 요청이나 파일 접근 같은 권한을 담당한다. 렌더러 프로세스: 웹 사이트가 '보이는' 부분의 모든 것을 제어한다. 플러그인 프로세스: 웹 사이트에서 사용하는 플러그인을 제어한다. GPU 프로세스: GPU를.. 2023. 1. 14.
728x90