Major

1. 정렬/합병의 개요 1) 정렬 ① 내부 정렬 - 데이터가 적어서 메인 메모리 내에 모두 저장시켜 정렬 가능할 때 ② 외부 정렬 - 데이터가 많아서 메인 메모리의 용량을 초과해 보조 저장 장치에 저장된 화일을 정렬할 때 - 레코드 판독, 기록에 걸리는 시간이 중요 - 정렬/합병 : 런 이용(하나의 화일을 여러 개의 서브 화일로 나누어 내부 정렬 기법을 사용해 정렬시킨 화일) 2) 화일 정렬/합병 ⓐ 정렬 단계 : 정렬할 화일의 레코드들을 서브화일로 분할해서 정렬하여 런을 만들어 입력 파일로 분배 ⓑ 합병 단계 : 정렬된 런들을 합병해 보다 큰 런으로 만들고 다시 입력 파일로 재분배하여 합병해 모든 레코드들이 하나의 런에 포함되도록 만드는 단계 ⓒ 런 : 정렬된 서브파일 3) 정렬 단계 ⓐ 런 생성 방법..
· Major/Java
1. 리팩토링 1) 제어 플래그 삭제 - 처리 흐름을 제어할 때 사용하는 플래그 : 제어 플래그 - 제어 플래그가 나쁜건 아닌데 지나치게 사용하면 처리 흐름 파악하기 어려움 2) 리팩토링 카탈로그 이름 제어 프래그 삭제 상황 처리 흐름을 제어한다. 문제 처리 흐름을 제어하는 플래그 때문에 코드가 복잡해집니다. 해법 제어 플래그를 삭제하고 break, continue, return을 사용한다. 결과 O 조건 의미와 제어 흐름이 명확해짐 X 단순 반복에도 무리하게 적용하면 코드가 부자연스러워집니다. 방법 (break, continue을 사용하는 경우) 1) 제어 플래그로 제어하는 반복문 찾기 2) 제어 플래그 할당을 break나 continue로 치환 3) 컴파일 (return을 사용하는 경우) 1) 제어 ..
· Major/Java
1. 리팩토링 1) 매직 넘버를 기호 상수로 치환 - 매직 넘버 : 소스 코드안 특정한 숫자를 직접 적은 것 - 기호 상수 : 숫자에 상징이 되는 기호를 선언한 것 ① 이유 > 매직 넘버의 의미를 알기 어려움 > 매직 넘버는 수정하기 어려움 ② 리팩토링 카탈로그 이름 매직 넘버를 기호 상수로 치환 상황 상수를 사용함 문제 - 매직 넘버는 의미를 알기 어려움 - 매직 넘버가 여러 곳에 있으면 변경하기 어려움 해법 매적 넘버를 기호 상수로치환함 결과 o 상수의 의미를 알기 쉬워짐 o 기호 상수의 값을 변경하면 상수를 사용하는 모든 곳이 변경됨 x 이해하기 어려운 이름을 사용하면 오해가 생길 수 있음 방법 1. 기호 상수 선언하고 치환 후 컴파일 2. 테스트 2. 예제 프로그램 클래스명 역할 Robot 로봇 ..
· Major/Java
1. 리팩토링이란 1) 정의 - 외부에서 보는 프로그램 동작은 바뀌지 않고 프로그램의 내부 구조를 개선하는것 2) 퀴즈 버그 수정은 리팩토링 ? 👉 아니다 기능 추가는 리팩토링 ? 👉 아니다 소스 코드 정리는 리팩토링 ? 👉 반드시 그런 건 아님 3) 리팩토링과 유닛 테스트 - 리팩토링 전후 동작이 변하지 않는 걸 확인하려고 테스트 해야함 - 테스트 방법 중 유닛 테스트가 있음 4) 리팩토링의 목적 버그를 발견하기 쉽게 만든다 기능을 추가하기 쉽게 만든다 리뷰하기 쉽게 만든다 5) 리팩토링의 한계 - 프로그램이 아직 동작하지 않을 때 리팩토링은 불가능하다 - 시간이 너무 촉박할 때 2. 리팩토링과 악취 1) 악취 : 리팩토링이 필요한 부분을 '악취'가 난다고 표현한다. 👉 이해하기, 수정하기, 확장하기 ..
1. 순차 화일 1) 정의 - 레코드를 조작하는 가장 기본적인 방법으로 화일 생성 시 레코드들을 연손적으로 저장 - 레코드들을 접근할 때도 저장할 때 순서대로 연속적으로 접근 2) 종류 - 입력 순차 화일 : 레코드가 입력되는 순서대로 저장 - 키 순차 화일 : 레코드의 특정 필드 값 순서에 따라 저장 2. 스트림 화일 1) 정의 - 연속적인 판독 연산을 통해 레코드가 화일에 저장되어있는 순서에 따라 데이터를 접근하는 화일 - 데이터가 하나의 연속된 바이트 스트림으로 구성 2) 종류 ⓐ 순차 접근 스트림 화일 : 기본 스트림 화일을 판독(read)모드로 열면 판독 포인터는 화일의 첫번째 바이트를 가르킴 > 판독 연산 - 해당 위치에서 시작하여 해당 바이트 값을 전송 - 판독 포인터를 스트림 화일의 다음 ..
1. 병렬 처리 - 다수의 프로세서들이 여러 개의 프로그램들 또는 한 프로그램의 분할된 부분들을 분담하여 동시에 처리하는 기술 - 성능 향상을 위한 방법(처리 속도를 빠르게 하여 동작 주파수를 올리는 것은 한계가 있음) But 병렬 처리장치의 수만큼 속도가 향상되는 건 아님. 병렬처리로 인한 문제점도 발생 1) 병렬처리 문제점 > 분할 문제 병렬처리가 가능한 부분을 태스크로 만드는 것을 분할이라고 하고, 분할된 부분을 그레인이라함 그레인의 크기가 작으면 병렬성을 얻을 수 있지만 동기화와 스케줄링에 과부하가 발생하게 됨 2) 병렬처리의 개념 > 스케줄링 : 분할된 태스크들을 각 프로세서에 배정하는 것을 스케줄링이라고 함 ⓐ 정적 스케줄링 : 정해진 스케줄은 실행되는 동안 변하지 않음 ⓑ 동적 스케줄링 : ..
1. 입출력 제어 환경 1) 운영 체제 - 다수의 사용자를 위해 컴퓨터의 자원을 관리하는 S/W (인터페이스 역할) 2) 입출력 제어 시스템의 기능 ① 화일 디렉터리를 유지 ② 주기억장치와 보조기억장치 사이의 데이터 이동통로를 확립 ③ CPU와 보조기억장치 사이의 통신 조정 기능 ④ 입/출력으로 사용될 화일 준비 ⑤ 입/출력 완료 후의 화일 관리 2. 화일 디렉터리 1) 화일 관리 시스템 - 화일 디렉토리 이용하여 화일들을 조직하고 관리 - 화일 디렉토리 : 화일의 이름, 저장 위치, 화일 크기, 화일 타입 2) 화일 디렉토리의 구조 - 계층 디렉토리(서브 디렉토리 포함) ex) UNIX - 사용자 : 논리적 디렉토리와 화일 구조에만 신경쓰면 된다. - 시스템 : 화일의 공간할당문제를 담당한다. 3) 디..
Chapter 1 웹 서비스 1. 인터넷 이해와 활용 1) WWW 서비스 - 인터넷을 통해 정보를 제공하거나 받는 방법의 한 형태 - 인터넷에서 하이퍼미디어 정보를 전달하기 위한 시스템 - Hypertext 형식을 이용 2) 하이퍼미디어 ① 하이퍼텍스트 - 문서 내 특정 정보의 연관 정보가 있는 곳으로 곧바로 이동하여 검색할 수 있는 형태 - html로 만들어지며 확장자는 html, htm ② 하이퍼미디어 - 일반 텍스트 형태의 문서, 그림, 음성, MPEG형식의 화상 등을 포함한 하나의 문서 2. 웹 시스템 동작 과정 ⭐⭐⭐⭐⭐ ⑴ 사용자가 웹 브라우저를 통해 찾고싶은 웹 페이지의 URL을 입력 ⑵ 사용자가 입력한 URL 주소 중에 도메인 네임 부분을 DNS 서버에서 검색 ⑶ DNS 서버에서 해당 도메..
1. 화일 저장 장치의 특성 - 저장 매체, 접근 장치, 저장 장치 1) 1차 저장 장치 메인 메모리 : 내용을 접근하는 시간은 일정하고 빠름, 프로그램/데이터 처리 위한 작업 공간 캐시 메모리 : 메인 메모리의 성능 향상 목적 2) 2차 저장 장치 자기 디스크 : 데이터 접근이 느림 BUT 싸서 주로 화일 저장에 쓰임 광 디스크, 자기 테이프 2. 저장 장치의 계층 1) 캐시 메모리 - 가장 빠르고 가장 비싼 저장장치, 용량 아주 작음 - 저장 매체 : SRAM(Static Random Access Memory) - CPU 성능을 증진 시키기 위해 사용 - 소멸성 : 데이터 저장에는 부적합 2) 메인 메모리 - 프로그램 실행과 이에 필요한 데이터 유지 공간 - 저장매체 : DRAM(Dynamic Ran..
BeNI
'Major' 카테고리의 글 목록 (3 Page)