TIL 3

병렬 처리와 병행 처리

프로그램이란 '어떤 일을 수행하기 위해 만들어진 명령 모음'이다. 달리 말하자면, 명령의 모음이 파일로 빌드되어 보조 기억 장치에 저장되어 있는 정적인 상태라고 할 수 있다. 프로그램 실행 명령이 내려지면 CPU는 보조 기억 장치에서 꺼내 메인 메모리에 올려놓고 코드를 해석하며 작업을 시작한다. 이처럼 프로그램이 메인 메모리로 올라와 실행되고 있는 상태를 프로세스라고 한다. 병렬 처리는 여러 작업을 동시에 실행하는 방법이다. 2개 이상의 코어가 각기 다른 프로세스의 명령을 실행해서 각 프로세스가 같은 순간에 실행되도록 하는 방법이다. 병행 처리는 하나의 코어가 여러 프로세스를 돌아가면서 조금씩 처리하는 것이다. 병행 처리란 작업을 조금씩 나누어 실행하면서 컴퓨터가 마치 여러 작업을 동시에 실행하는 것처럼..

코딩 2024.07.05

소프트웨어 개발의 단계

아이템 선정  -> 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 배포 아이템 선정: 어떤 서비스를 만들지 다양한 정보에 근거하여 아이템을 선정하는 과정이다. 요구사항 분석: 앞에서 선정한 서비스에 필요한 사항들을 도출, 분석, 검증하여 앞으로의 개발 과정에 기준이 될 문서를 만들어 내는 과정이다. 설계: 앞에서 정의한 기능들을 데이터 레벨까지 상세하게 분석하여 좀 더 효율적으로 개발할 수 있도록 그 구조를 잡는 과정이다. 구현: 앞에서 한 설계를 바탕으로 실제 컴퓨터가 이해할 수 있는 언어로 소프트웨어를 작성하는 과정이다.  테스트: 앞에서 작성한 소프트웨어가 에러 없이 잘 돌아가는지 검증하는 과정이다. 배포: 테스트까지 마친 구현체를 사용자가 직접 사용해볼 수 있도록 사용자가 접근 가능한 영역..

코딩 2024.07.02

컴파일러 방식의 언어와 인터프리터 방식의 언어

프로그래밍 언어는 반드시 기계어로 번역해야만 기계에서 실행할 수 있다. 번역하는 방식에 따라 컴파일러 방식의 언어와 인터프리터 방식의 언어로 구분된다.  컴파일러 방식의 언어는 외국어로 된 원서를 오랜 시간에 걸쳐 처음부터 끝까지 번역한 후에 출판하는 번역서에 비유할 수 있다. 책 한 권을 모두 번역해야 하므로 작업이 꽤 오래 걸리지만 한 번만 완벽하게 번역해놓으면 더 이상 번역 작업이 필요 없다. 컴파일러 방식의 프로그래밍 언어는 처음부터 끝까지 코딩을 모두 마친 후에 번역 작업을 거쳐서 프로그램을 실행하게 된다. 만일 수백만 줄의 코딩 중에서 단 한 줄의 오류라도 있으면 이 프로그램은 제대로 번역되지 않는다. 반면 인터프리터 방식의 언어는 실시간으로 나오는 영어 뉴스를 우리말로 한 문장 한 문장씩 동..

코딩 2024.07.01