분류 전체보기 62

소프트웨어 개발 프로세스

소프트웨어의 정의와 특징- 소프트웨어 : 프로그램(코드)를 비롯, 개발 과정 중 생성되는 모든 산출물과 각 단계에서 만들어지는 각종 문서, 매뉴얼 등 전부(자료 구조, DB 구조, 테스트 결과 등) 소프트웨어 특징제조가 아닌 개발- 제조는 개인 능력에 따른 결과물의 차이가 크지 않음- 하지만 개발은 제조와 달리 개인 능력에 따른 차이가 큼소모가 아닌 품질 저하- 하드웨어 : 오래 사용하면 부품이 닳고 기능이 떨어짐- 소프트웨어 : 닳지 않고 시간이 지나도 기능이 떨어지지 않으나, 사용 시작 단계부터 사용자의 요구가 계속 발생하고 이런 요구를 모아 시스템에 반영하면(기능 추가, 향상 등) 실패율이 급격히 증가할 수 있음  소프트웨어 공학의 정의와 소프트웨어 개발의 생명주기- 소프트웨어 공학이란, 품질 좋은..

카테고리 없음 2024.10.17

데이터 마이닝

데이터- 이론을 세우는 데 기초가 되는 사실, 또는 바탕이 되는 자료- 관찰이나 실험, 조사로 얻은 사실이나 자료- 문자, 숫자, 소리, 그림 따위의 형태로 된 자료- 데이터는 정보가 아니고 데이터를 가공해 얻는것이 곧 정보  데이터셋(Dataset)- 데이터 모음- 하나의 데이터베이스 테이블의 내용이나, 하나의 통계적 자료 행렬과 일치- 열(column) : 특정 변수를 대표, 속성- 행(row) : 주어진 변수에 일치하는 값, 데이터 개체- 각각의 값은 데이터  데이터의 형태실험 데이터(Experimental Data)관측 데이터(Observational Data)- 생물학 실험, 약물 실험, 물리학 실험 등 설정된 실험 환경에서 수집된 데이터- 미리 가설을 설정 후 가설에 따른 실험을 설계- 가설 ..

카테고리 없음 2024.10.14

머신러닝

머신러닝이란- 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야(Arthur Samuel, 1959)- 어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정 헀을 때, 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것(Tom mitchell, 1997)  알고리즘과 머신러닝알고리즘(Algorithms)머신러닝(Machine Learning)- 어떠한 문제를 해결하기 위한 일련의 절차나 방법- 기계가 패턴을 학습하여 자동화하는 알고리즘  머신러닝 학습의 종류지도 학습비지도학습준지도학습강화학습- 입력과 결과가 레이블로 표시- 입력과 출력에 매핑되는 일반적인 규칙을 학습- 원하는 출력 없이 입력 데이터 사용- 입력 데이터의..

인공지능 개념

인공지능(artificial intelligence)의 유래- 다트머스 회의(1956)에서 존 매카시(John MacCarthy)가 제안한 용어  인공지능의 정의인간적 사고- 컴퓨터가 생각하게 하는 흥미로운 시도, 문자 그대로 완전한 의미에서 마음을 가진 기계(Haugeland, 1985)- 인간의 사고, 의사결정, 문제 풀기, 학습 등 활동에 연관시킬 수 있는 활동들의 자동화(Bellman, 1978)합리적 사고- 계산 모형을 이용한 정신 능력 연구(Charniak 및 McDermott, 1985)- 인지와 추론, 행위를 가능하게 하는 계산의 연구(Winston, 1992)인간적 행위- 사람이 지능적으로 수행해야 하는 기능을 수행하는 기계의 제작을 위한 기술(Kurzweil, 1990)- 현재로서는 사..

그래프

그래프쾨니히스베르크 다리문제를 해결하기 위해 오일러가 최초 사용  오일러는 불가능을 증명했으며, 모든 지점과 연결된 다리의 수가 짝수여야만 모든 다리를 한 번씩 거쳐 제자리로 돌아올 수 있음-> 이를 오일러 경로라고 한다   그래프의 정의- 그래프는 G(V, E)로 나타낸다- V : 공집합이 아닌 정점(Vertex)들의 유한집합- E : 간선(Edge)들의 유한집합으로 정점의 쌍으로 구성  그래프의 종류무방향 그래프(Undirected Graph)- 간선(Edge)에 방향이 없는 그래프- 정점 v0와 v1사이의 간선은 (v0, v1)으로 표기한다- 방향이 없으므로 (v0, v1) == (v1, v0)이 성립한다방향 그래프(Directed Graph, Digraph)- 간선(Edge)에 방향이 있는 그래프..

자료구조 2024.06.17

분석 모형 설계

모형 구축의 기법통계분석 : 정보 추출, 데이터 관계 이해, 예측모델 생성으로 진행되는 전통적 방법으로 데이터의 패턴 식별, 가설 검증에 주로 사용데이터 마이닝 : 큰 데이터 세트에서 유용한 패턴, 상관관계, 트렌드 등을 찾는 과정으로 기존 DB관리 도구의 용량을 넘어서는 큰 데이터 집합과 복잡한 구조에서 정보를 발견하기 위해 사용머신러닝 : 데이터로부터 학습하고 예측을 수행하는 알고리즘과 모델을 개발하는 과정으로 다음과 같이 구분- 지도학습- 비지도학습- 강화학습비정형 데이터 분석 : 텍스트, 이미지, 오디오 등 비정형 데이터를 분석하는 기법    통계분석선형 회귀 모델- 하나 이상의 독립변수와 연속적인 종속 변수 간의 선형 관계를 모델링 - 가장 간단하면서도 널리 사용되는 예측 기법- 경제학, 생물학..

페이징 메모리 관리

페이징 기법의 개념페이지와 프레임프로세스의 주소 공간(논리주소)을 0번지부터 동일한 크기의 페이지로 나눔 -> 페이지(page)물리 메모리 역시 0번지부터 페이지와 동일한 크기대로 나눔 -> 프레임(frame)- 페이지와 프레임에 번호 할당- 페이지의 크기는 주로 4KB이며 운영체제마다 다르게 설정 가능(2^n으로 설정 가능, 4KB, 8KB, 16KB.....)- 페이지 테이블 : 각 페이지에 대해 페이지 번호와 프레임 번호를 1:1매칭하여 저장하는 테이블  페이징 기법프로세스의 주소공간(논리주소)와 물리메모리(물리주소)를 페이지, 프레임 단위로 분할하고 프로세스의 각 페이지를 물리 메모리의 프레임에 분산 할당하여 관리하는 기법- 프로세스의 주소 공간(논리주소) : 0부터 시작하여 연속적인 주소 공간-..

운영체제 2024.06.04

메모리 관리

메모리 계층 구조메모리는 컴퓨터 시스템 여러 곳에 계층적으로 존재한다- CPU 레지스터 -> CPU 캐시 -> 메인 메모리 -> 보조기억장치- 보조기억장치로 갈수록 가격이 저렴해지고 속도가 느려지며 용량이 증가  레지스터L1/L2 cacheL3 cache메인 메모리보조기억장치용도몇 개의 명령과 데이터 저장한 코어에서 실행하는 명령과 데이터 저장멀티 코어들에 의해 공유되는 명령과 데이터 저장실행중인 프로세스의 코드, 데이터와 입출력중인 파일 블록들 저장파일, DB, 메모리에 적재된 코드, 데이터의 영구 저장용량byte 단위로 8~30개정도 존재1KB 미만KB단위MB단위GB단위TB단위타입 SRAMSRAMDRAM마그네틱 필드나 플래시 메모리속도가격 고가고가보통저가휘발성휘발성휘발성휘발성휘발성비휘발성    계층화..

운영체제 2024.06.03

교착 상태(Dead Lock)

교착상태(Dead Lock)란자원을 소유한 채 상대방이 소유한 자원을 기다리면서 무한정 대기하는 상태   식사하는 철학자 문제(Dining Philosophers Problem)1965년 다익스트에 의해 처음으로 문제화되었으며 병렬처리에서의 동기화 이슈와 해결 방법을 설명하고자 학생들에게 낸 시험 문제5명의 철학자가 원탁에서 식사하며 식사 시간은 서로 다를 수 있음자리마다 스파게트 1개와 양 옆에 포크가 존재각 철학자는 옆의 철학자와 대화할 수 없음식사를 하기 위해서는 양 옆의 포크를 모두 확보하여야 함왼쪽 포크를 먼저 들고 다음에 오른쪽 포크를 들어야 함포크가 사용중이면 대기함 이런 상황일때 식사하는데에 어떤 문제가 있을까?5명이 동시에 왼쪽 포크를 들고 이후 오른쪽 포크를 들려고 하면 모두 상대의 포..

운영체제 2024.06.03

스레드 동기화

스레드 동기화의 필요성스레드 동기화(Thread synchronization) : 공유 데이터에 대한 다수 스레드가 동시에 접근할 때 해당 데이터가 훼손되지 않게 하는 기법으로 한 스레드가 공유데이터에 배타적 독점권을 가지도록 순서화공유 데이터(Resource)에 동시에 쓰기를 접근한다면- 공유 데이터가 훼손되는 문제가 발생할 수 있음- 예) 공동계좌에 2명이 완전히 동일한 시각에 10만원을 입금한다면 동시 쓰기가 발생하여 결과가 20만원이아닌 10만원이 될 수 있음  공유 데이터 접근 문제의 해결책스레드 동기화 : 한 스레드가 공유 데이터 사용을 마칠 때 까지 다른 스레드가 해당 데이터에 접근하지 못하도록 제어-> 멀티 스레드의 경쟁 상황은 매우 자주 발생하며, 주로 사용자가 작성한 멀티스레드 프로그램..

운영체제 2024.06.03