본문 바로가기

TIL/CS22

디자인 패턴 디자인 패턴이란 객체 간의 상호 관계 등을 하나의 규약 형태로 만들어 놓은 것을 의미한다. 1. 싱글톤 패턴 싱글톤 패턴은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어드는 장점이 있으나 의존성이 높아진다는 단점이 있다. 싱글톤 패턴은 데이터베이스 연결 모듈에 많이 쓰인다. 하나의 인스턴스를 기반으로 생성하면 데이터베이스 연결에 관한 인스턴스 생성 비용을 아낄 수 있다. 실제로 Node.js에서 mongoose, MySQL 데이터베이스를 연결할 때도 싱글톤 패턴이 쓰인다. TDD(테스트케이스를 작성한 후 실제 코드를 작성하는 개발 프로세스)를 할 때에는 주로 단위 테스트.. 2023. 10. 11.
DBMS의 기능과 종류 DBMS - 데이터를 한 곳에 모은 저장소를 만들고 그 저장소에 여러 사용자가 접근하여 저장 및 관리를 할 수 있도록 환경을 제공하는 소프트웨어 프로그램을 뜻한다. DBMS 용어 튜플 테이블의 행 (= 레코드, row) 튜플은 릴레이션에서 중복되는 값을 가질 수 없다. 튜플의 수 = Cardinality 어트리뷰트 테이블의 열 (= column) 어트리뷰트의 수 = degree 릴레이션 관계형 데이터베이스의 정보를 구분하여 저장하는 기본 단위 (= table) 키 테이블의 행의 식별자로 이용되는 테이블의 열 식별자 - 여러개의 객체를 담고 있는 하나의 테이블에서 각각을 구분할 수 있는 논리적인 이름 주키(PK) - 현재 테이블에서 행을 식별하는 식별자 외래키(FK) - 현재 테이블과 연관되어 있는 외부 .. 2023. 8. 30.
쓰레드와 쓰레드 풀 프로세스와 쓰레드의 차이점 프로세스 자신만의 고유 공간(code, data, heap, stack)과 자원을 할당받아 사용 다른 프로세스의 변수나 자료에 접근 불가 프로세스 만으로 작업을 처리하면 프로세스를 생성할 때 많은 시간이 소요되고, 스위칭의 비효율성이 커진다. 프로세스 간 통신은 비용이 비싸 통신이 어려워짐 쓰레드 다른 쓰레드와 공간과 자원을 고유하며 사용(stack만 따로 사용) 프로세스보다 실행 단위가 작아 생성 및 소멸에 대한 오버헤드 감소 자원을 공유하기 때문에 context switching이 빠름 프로세스 간 통신 시간, 방법 어려움 해소 프로세스와 쓰레드의 주소공간 프로세스 각각 독립된 메모리 영역을 할당받음 최소 1개의 쓰레드(메인 쓰레드)를 가지고 있다. 기본적으로 다른 프로세스.. 2023. 8. 24.
프로그램과 프로세스 프로그램이 저장되는 곳 - 보조 기억장치 프로그램이 로딩되는 곳 - 주 기억장치 프로그램을 실행하는 주체 - 프로세스 작업을 처리하는 주체 - 쓰레드 프로세스 생명주기 = 프로세스 상태변화 프로세스 상태 신규 프로세스가 이제 막 메인메모리에 올라온 상태 수용을 거쳐 준비 상태가 되야 실행 가능 준비 변수 초기화와 같은 준비작업을 마쳐 실행이 가능한 상태 스케쥴러를 통해 발송되어야 수행 상태가 됨 신규 상태에서 수용/대기 상태에서 입출력 or 이벤트가 완료/수행 상태가 중단되면 준비 상태가 됨 수행 CPU가 실제로 프로세스를 실행하는 상태 선점 스케쥴링에 의해 중단 > 준비 입출력 or 이벤트가 필요 > 대기 수행 완료 > 종료 대기 프로세스 중에 입출력이 필요해 입출력을 수행하는 상태 CPU는 이때 다른.. 2023. 8. 22.