목록컴퓨터 공학/컴퓨터 공학의 이해 (7)
Digital Recipe
# 소프트웨어 테스트 # CSTS (Cetified Software Test Specialist) # ISTQB (International Software Testing Qualification Board) Written By Seo, Hoseok 2021. 05. 23
컴퓨팅에서 데이터 처리에 있어서 동시성(Concurrency)와 병렬성(Parallelism)은 많이 사용되는 개념이지만 동일한 개념으로 혼용되어 사용되기 쉽다. 따라서 이 글을 통해서 두 개념 간의 차이를 구별하고자 한다. 동시성(Concurrency)서로 독립적인 작업을 작은 단위의 연산으로 나누고 시간 분할 형태로 연산하여 논리적으로 동시에 실행되는 것처럼 보여주는 것을 말한다. 논리적인 개념이기 때문에 단일 쓰레드에서도 사용이 가능한 개념이다. 예를 들어 초기 멀티 태스킹은 동시성 개념을 통해 여러 프로세스가 동시에 수행되는 것과 같은 결과물을 만들 수 있었다. 병렬성(Parallelism)병렬성은 동시성과 다르게, 물리적으로 실제로 동시에 여러 작업을 연산하는 것을 말한다. 때문에 단일 쓰레드에..
개요동기(Synchronous)와 비동기(Asynchronous) 명령 처리에 대해서 이야기를 해보겠다. 이 개념은 프로그래밍 언어 개발 시 동기 형태의 함수와 비동기 형태의 함수로도 사용될 수 있고 통신 개발 시 메시지의 송신과 수신에 대해서도 사용될 수 있다. 그리고 이를 위해 콜백(CallBack) 함수라는 개념도 함께 사용된다. 동기(Synchronous)와 비동기(ASynchronous) 처리프로그래밍에서 가장 일반적인 수행 절차는 실행 중인 함수(이하 '마스터'라고 가정)가 필요한 함수를 호출(Call)하는 것이다. 그리고 호출된 함수는 자신이 할 일을 마치고 마스터에게 처리 결과를 응답을 하고 자신의 일을 마친다. 이렇게 기본적인 프로그래밍의 수행 절차는 순차적으로 처리된다. 이런 절차를 동..
평가 결과에 따른 신뢰성 분류법 어떤 것에 대한 평가를 수행한 결과를 신뢰성 측면에서 4가지 분류로 나눌 수 있다. 위 그림에서 보듯이 True/False와 Positive/Negative의 조합으로 이루어진다.어떤 결과에 대해서 TP(True Positive)라고 표현할 수 있다. 이 이야기는 Positive라는 결과를 예측했고 실제 결과가 Positive, 즉 True라는 의미가 된다. 정리해서 설명하면예측된 결과가 Positive냐 Negative냐 구분을 짓고, 그 예상된 결과와 실제 결과가 일치하느냐 불일치하느냐 판별하는 것이 True/False이다. 어떤 결과에 대해서 각 TP, TN, FP, FN에 대해 확률적으로 분류할 수 있고이를 통해 결과에 대한 신뢰성 여부를 살펴보게 된다. Writt..
시작에 앞서, 이 "컴퓨터 공학의 이해"는 주관적인 입장에서 쓰여진 글로써 잘못된 점, 다른 의견, 추가적 의견을 받습니다. 이 게시글은 제 경험 속의 "이해한 컴퓨터 공학"을 이야기로 풀었습니다. 컴퓨터 공학이란 "요청에 대해서 논리적인 연산을 하여 결과를 보여주는 장치에 대한 학문"이라고 표현 가능할 것 같다. 예를 들어, 시간의 흐름을 분(Min) 혹은 초(Second)라는 논리적인 개념으로 변경하여 컴퓨터에 넣었을 때 이를 연산(계산, 혹은 Computing)하여 사용자가 형태의 논리적 시간으로 결과를 보여준다면 컴퓨터 장치가 될 것이다. 이런 컴퓨터는 하드웨어에서 시작되었다. 하드웨어를 통해 입력 -> 처리 -> 결과 형태의 위 역할을 수행할 수 있었을 것이다. 계산기를 예를 들어 보자. 1단계..
1. 프로그램 개발을 위한 코드 작성부터 실행까지의 과정컴퓨터 프로그램의 개발은 코드 작성(프로그래밍)부터 시작된다.이렇게 작성된 코드는 사용자(개발자)가 컴퓨터가 수행해 주기를 원하는 내용을 기술한 것이지만, 컴퓨터가 이해할 수 있는 문법(언어)이 아닌 사용자가 이해할 수 있는 문법이다.따라서 작성된 코드는 '컴파일(Compile)' 과정을 거쳐 컴퓨터가 이해할 수 있는 언어로 변환되며, 컴파일된 파일을 '오브젝트 파일(Object File)'이라고 부른다. 일반적으로 하나의 프로그램은 여러 개의 오브젝트 파일과 공용 라이브러리로 조합이 되며, 하나의 컴퓨터가 실행할 수 있는 프로그램을 완성하기 위한 작업을 '링킹(Linking)'이라고 부른다. 결국 코드를 컴파일 과정과 링킹 과정을 거치면 사용자가 ..