전체 글 251

154~155. 가상기억장치 구현 기법 / 페이지 교체 알고리즘 / 기타 관리 사항(A)

가상기억장치 보조기억장치의 일부를 주기억장치처럼 사용하는 것 프로그램을 여러 개의 작은 블록 단위로 나누어 가상기억장치에 보관, 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당 주소 변환 작업이 필요함 페이징 기법, 세그멘테이션 기법 페이징 기법 가상기억장치에 보관된 프로그램, 주기억장치의 영역을 동일한 크기로 나눈 후 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법 프로그램을 일정한 크기로 나눈 단위 = 페이지, 페이지 크기로 일정하게 나누어진 주기억장치 단위 = 페이지 프레임 내부단편화 발생 페이지 맵 테이블 필요 비용 증가, 처리 속도 감소 세그멘테이션 기법 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행..

151. UNIX / LINUX / MacOS(A)

UNIX 시분할 시스템을 위해 설계된 대화식 운영체제, 개방형 시스템 다중 사용자, 다중 작업 지원 트리 구조의 파일 시스템 구성 : 커널 -> 쉘 -> 유틸리티 -> 사용자 커널 UNIX의 가장 핵심적 부분 부팅 시 주기억장치에 적재된 후 상주하면서 실행 프로그램과 하드웨어 간의 인터페이스 역할 쉘 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기 시스템과 사용자의 인터페이스 담당 파이프라인 기능 지원 유틸리티 일반 사용자가 작성한 응용 프로그램 처리하는 데 사용 에디터, 컴파일러, 인터프리터, 디버거 Linux UNIX 기반으로 개발한 운영체제 UNIX와 완벽히 호환 MacOS UNIX 기반 운영체제 드라이버 설치가 단순 파일 디스크립터 : 파일을 관리하기 위한 시스템이 필..

142~146. 절차적, 객체지향, 스크립트, 선언형 언어, 라이브러리(A)

절차적 프로그래밍 언어 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술해 나가는 언어 실행 속도가 빠름, 다른 위치에서 호출하여 사용가능, 구조적인 프로그래밍 유지 보수나 코드 수정이 어려움 C언어, FORTRAN, ALGOL, COBOL 객체지향 프로그래밍 언어 개발 시 객체들을 조립해서 프로그램을 작성하는 기법 상속을 통한 재사용과 시스템의 확장 용이 코드 재활용성 높음, 개발 유지보수 용이 구현 시 처리 시간이 지연됨 JAVA, C++, Smalltalk 특징 : 상속성, 다형성, 정보 은닉, 추상화, 캡슐화 스크립트 언어 HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 것 서버용 스크립트 언어 : ASP, JSP, PHP, 파이썬 클라이언트용 스크립트 언어 : 자바 스크립트(JA..

139. 포인터(B)

포인터와 포인터 변수 포인터는 변수의 주소, C언어에서는 주소를 제어할 수 있는 기능 포인트 변수 선언 : int *a; 포인터 변수에 주소 저장 : a = &b; 포인터 변수에 간접 연산자(*)를 붙이면 해당 포인터 변수가 가리키는 값 : c = *a; 메모리 영역인 힙 영역에 접근하는 동적 변수 포인터와 배열 배열 위치를 나타내는 첨자 생략하고 배열 대표명 지정시 배열의 첫 번째 요소의 주소를 지정하는 것과 같음 &연산자 사용 Ex.) int a[5], *b; b = a : 배열의 대표명을 적었으므로 a 배열의 시작 주소인 a[0]의 주소를 b에 저장 a[0], a[1], a[2], a[3] 배열 표기 방법, *(a+0), *(a+1), *(a+2), *(a+3) 포인터 표기 방법

135. 데이터 입출력(B)

C언어의 표준 입출력 함수 scanf(), getchar(), gets(), printf(), putchar(), puts() scanf() : C언어의 표준 입력 함수, 키보드로 입력받아 변수에 저장, 여러개의 데이터를 받을 수 있음 printf() : C언어의 표준 출력 함수, 인수로 주어진 값을 화면에 출력 getchar() : 키보드로 한 문자를 입력받아 변수에 저장하는 함수 gets() : 키보드로 문자열을 입력받아 변수에 저장하는 함수 putchar() : 인수로 주어진 한 문자를 화면에 출력 함수 puts() 인수로 주어진 문자열을 화면에 출력한 후 커서를 자동으로 다음 줄 앞으로 이동하는 함수 JAVA의 표준 입출력 함수 표준 입력 : Scanner 클래스를 이용(Ex.) Scanner s..

133. 변수(A)

변수명 작성 규칙 첫 글자는 영문자나 _로 시작 글자 수 제한 X 데이터 타입 명시하는 것을 헝가리안 표기법이라고 함 기억 클래스 변수 선언 시 메모리 내에 변수의 값을 저장하기 위한 기억영역이 할당, 할당되는 기억영역에 따라 차이가 있다 자동변수 : 메모리(스택), auto, 일시적, 지역적 레지스터 변수 : 레지스터, register, 일시적, 지역적 정적 변수(내부) : 메모리(데이터), static, 영구적, 지역적 정적 변수(외부) : 메모리(데이터), static, 영구적, 전역적 외부 변수 : 메모리(데이터), extern, 영구적, 전역적 가비지 콜렉터 : 변수들이 점유한 메모리 공간을 강제로 해제하여 다른 프로그램들이 사용할 수 있게 한것

130. 배치 프로그램(B)

배치 프로그램 사용자와의 상호 작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것 정기 배치, 이벤트성 배치, On-Demand 배치로 구분 정기 배치 : 일, 주, 월과 같이 정해진 기간에 정기적으로 수행됨 이벤트성 배치 : 특정 조건을 설정하고 조건이 충족될 떄만 수행 On-Demand 배치 : 사용자 요청 시 수행됨 필수 요소 : 대용량 데이터, 자동화, 견고성, 안정성, 성능 배치 스케줄러 일괄 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구 스프링 배치, Quartz 스프링 배치 오픈 소스 프레임워크 데이터베이스나 파일의 데이터를 교환하는데 필요한 컴포넌트 제공 로그 관리, 추적, 트랜잭션 관리등 다양한 기능 제공 Quartz 스프링 프레임워크로 ..

127~128. 개발 환경 구축, 서버 개발(C)

하드웨어 환경 사용자와 인터페이스 역할을 하는 클라이언트, 클라이언트와 통신하여 서비스 제공하는 서버로 나뉨 클라이언트 : PC, 스마트폰 서버 : 웹 서버, 웹 애플리케이션 서버(WAS), 데이터베이스 서버, 파일 서버 웹 서버 : 클라이언트로부터 직접 요청을 받아 처리하는 서버, 정적 파일 제공(Apache HTTP Server, Google Web Server) 웹 애플리케이션 서버 : 사용자에게 동적 서비스 제공, 웹-데이터베이스, 웹-파일 서버 간 인터페이스 역할 (Apache Tomcat, WebSphere) 데이터베이스 서버 : 데이터베이스 관리, DBMS 운영(MySQL Server, Oracle Server) 파일 서버 : 서비스 제공을 목적으로 파일 저장하는 서버 (AWS 83) 소프트..

120. 쿼리 성능 최적화(C)

쿼리 성능 최적화 데이터 입, 출력 애플리케이션 성능 향상을 위해 SQL 코드를 최적화 성능 측정 도구 APM을 사용하여 최적화 할 쿼리 선정 RBO : 규칙 기반 옵티마이저, 규칙에 정의된 우선순위, 개발자 숙련도 중요, 예측이 쉬움 CBO : 비용 기반 옵티마이저, 액세스 비용, 옵티마이저의 예측 성능, 예측이 복잡함 실행 계획 : EXPLAIN 명령어를 통해 확인, 그래픽이나 텍스트로 표현 SQL 코드 재구성 WHERE 절을 추가하여 일부 레코드만 조회하게 함으로 조회 비용 감소 가능한 연산자 사용 자제 서브 쿼리에 특정 데이터 확인시 IN보다 EXISTS 활용 인덱스 재구성 단일 인덱스로 쓰거나 수정 없이 읽기인 경우 IOT(Index-Organized-Table)로 구성하는 것을 고려 불필요한 ..

114~116. 프로시저, 트리거, 사용자 함수(C)

프로시저 절차형 SQL을 활용하여 특정 기능을 수행하는 일종의 트랜잭션 언어, 호출을 통해 실행되어 미리 저장해 놓은 SQL 작업 수행 시스템의 일일 마감 작업, 일괄 작업에 사용 프로시저 생성 : CREATE 프로시저 실행: EXECUTE, CALL 명령어 사용 프로시저 제거 : DROP PROCEDURE 프로시저 구성도 : DECLARE(필수) BEGIN(필수) CONTROL SQL EXCEPTION END(필수) 트리거 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL 데이터베이스에 저장, 데이터 변경 및 무결성 유지, 로그 메시지 출력 등의 목적으로 사용 DCL 사용 X 선언, 이벤트, 시작, 종료로 구성 트리거 생성 : CREATE 트리거 제거 : DROP TRIGGER 트리거..