CS
-
[CS] 프로세스(Process)와 스레드(Thread)의 차이CS 2025. 1. 20. 01:48
프로세스(Process)운영체제가 관리하는 프로그램의 실행 단위.실행 중인 프로그램은 독립된 메모리 공간(Code, Data, Heap, Stack 등)를 가짐.하나의 프로세스는 여러 개의 스레드를 포함할 수 있음. ✅ 프로세스의 특징독립적인 실행 환경을 가짐 → 한 프로세스가 종료되어도 다른 프로세스에는 영향 없음.CPU 스케줄링을 통해 실행됨.프로세스 간 데이터 공유가 어렵고, IPC(Inter-Process Communication)를 사용해야 함.문제가 발생하면 개별 프로세스만 영향을 받음.1. 크롬(Chrome)을 실행하면 하나의 프로세스가 실행됨.2. 크롬에서 여러 개의 탭을 열면, 각각의 탭이 개별 프로세스로 실행됨.3. 한 탭이 충돌해도 다른 탭에는 영향을 미치지 않음 (Sandboxing..
-
[CS] DLL(Dynamic Link Library)CS 2025. 1. 20. 01:19
DLL(Dynamic Link Library) DLL(Dynamic Link Library)은 동적 링크 라이브러리로, Windows 운영체제에서 여러 프로그램이 공용으로 사용할 수 있도록 기능을 묶어놓은 파일이다. 확장자는 .dll이며, 주로 실행 파일(.exe)과 함께 동작하며 코드, 데이터, 리소스(예: 아이콘, 이미지)를 공유하는 데 사용된다. dll의 주요 특징 🔹 코드 재사용성여러 프로그램에서 동일한 코드를 공유하여 중복을 줄일 수 있음.예를 들어, Windows에서 User32.dll, Kernel32.dll 같은 시스템 DLL을 여러 프로그램이 공동으로 사용.🔹 메모리 절약DLL을 사용하는 프로그램들은 실행 시 필요한 코드만 메모리에 로드함.중복되는 코드를 각각 포함하는 것보다 메모리..
-
[CS] 배치 작업 처리CS 2023. 5. 12. 09:14
1. 배치 프로그램 이란? - 개별적으로 어떤 요청이 있을 때마다 실시간으로 통신하는 것이 아닌 한꺼번에 일괄적으로 대량 처리 - 정해진 특정한 시간에 실행되도록 스케쥴링 진행 2. 배치 스케쥴러 - 일괄 처리(Barch Processing) 작업이 설정된 주기(시, 분, 일, 월, 특정 이벤트 등)에 맞춰 자동으로 수행되도록 지원해 주는 도구 3. 배치 스케쥴러 종류 - 스프링 배치(Spring Batch) - Spring Source사와 Accenture사가 2007년에 공동 개발한 오픈소스 프레임워크 - 로그 관리, 추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작 등의 다양한 기능을 제공 - Quartz - Quartz는 스프링 프레임워크로 개발되는 응용 프로그램들의 일괄 처리를 위한 다양한 ..
-
[CS] 나만의 간단한 프레임워크 설계 방법CS 2023. 5. 10. 09:18
1. 프레임워크의 정의 Gof의 디자인 패턴으로 유명한 랄프 존슨(Ralph Johnson)은 "프레임워크란, 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"이라고 정의 ex) 게임 프레임워크 or 게임 엔진 : 렌더링 모듈, 파일 입출력 모듈, 게임 오브젝트 모듈, 사운드 모듈, 네트워크 모듈, 키 입출력 모듈, UI / 앱 모듈 2. 프레임워크의 구조와 설계 파악하기 - 프레임워크를 초보자 혼자서 만들기에는 상당히 큰 작업 - 기존에 존재하는 여러 프레임워크를 사용해보며 전체적인 구조를 파악하는 것이 핵심 - 여러 프레임 워크 중에 공통적인(중첩적인) 부분은 반드시 존재하며, 그 부분을 자신만의 설계 포인트로 "어떻게" 녹여낼 것..
-
[CS] Unmanaged Language VS Managed LanguageCS 2023. 5. 8. 10:08
1. Unmanaged Language VS Managed Language UnManaged Language TestA(){ class* a = new class() } 힙 영역에 잡혀진 메모리를 직접 관리 가능 블록문 벗어났을 때 수동으로 지우지 않으면 메모리가 남아 있는다. Managed Language TestB(){ class b = new class(); } 힙 영역에 잡혀진 메모리가 Garbage Collector에서 자동으로 관리 블록문 벗어나면 메모리가 남아 있지만 GC가 감지한다. 스택 영역은 Managed / UnManaged 다 동일한 방식으로 구현 TestC(){ class c; } 블록문 벗어나면 알아서 해제가 된다. 힙 영역은 런 타임에 크기가 결정됨 - 사용자의 동적 할당 스택..
-
[CS] 공통 코드CS 2023. 5. 8. 09:09
1. 하드 코딩 한다면? - 값이 추가되거나 변경될 때마다 소스 코드를 수정 / 배포해야하는 불필요한 작업 - 여러 페이지에 같은 내용을 표현해야 할 경우, 동일한 코딩을 반복하는 시간 낭비 - 공통코드 : 하드 코딩에 해당하는 데이터를 참조를 통한 테이블화 후 관리하기 위해 묶어 놓은 데이터 집합체 - java, python의 코드 문법으로 치면 가장 비슷한 타입 : enum 타입(형) 2. 어떤 때 사용하나? - 구분코드의 특징을 갖는 데이터 - 남녀 구분 코드, 사용여부 등 - 특징이 공통적인 것들끼리 묶을 수 있는 데이터 - 고객등급 코드, 주문처리, 상태 등 - 고정적이지 않고 지속적으로 추가 가능한 데이터 - 상품 종류, 결제수단, 코드 3. 테이블 설계 - 공통코드는 크게 코드의 유형과 실제..
-
[CS] 쓰레드에 대한 이해와 활용CS 2023. 5. 1. 09:21
1. Program - Internet Explorer, Chrome, Notepad, online Game ... - HelloWorld 또한 하나의 프로그램 2. Process - 프로그램의 하나의 인스턴스가 프로세스 (프로그램이 실제 메모리에 코드가 실행된 상태) - 프로그램은 하나지만, 같은 프로세스가 여러 개가 될 수 있다. 3. Thread - 프로세스 내에서 실행되는 흐름의 단위 - CPU는 한번에 하나의 명령 수행 - 멀티쓰레드라 하더라도 context switching에 의해 번갈아가며 실행된다. - 프로세스는 반드시 1개 이상 스레드를 가짐 4. Thread의 활용 예시 (1) - 10개의 요청이 동시간대에 이루어진다면? - 요청 처리할 때마다 515ms를 보내야 하나? - Multi ..
-
[CS] 저장 프로시저(Stored Procedure)의 정의와 활용CS 2023. 4. 27. 09:16
1. 함수(Function)란? - DB 내에서 제공되는 모듈(대부분 수식을 통한 내부 계산, SQL문 사용 X) - 반드시 리턴값이 존재 - 클라이언트에서 서버에 필요한 값을 요청 받은 후 Local 실행 - SQL문 안에서 실행이 가능하다 ex) SELECT 함수명() FROM DUAL; 2. 저장 프로시저(Stored Procedure)란? - SP(Stored Procedure)는 일련의 쿼리문을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합 - 호출 시 DB에서 실행해서 요청한 CLIENT(혹은 미들 서버)로 돌려준다. - 리턴 값이 존재할수도, 존재하지 않을 수도 있다. - 저장 프로시저는 그 자체가 쿼리문의 집합체기 때문에 SQL문에서 사용 불가 - SP를 최초 실행하면 최적화, 컴파일 단..