공부6 소프트웨어공학 소프트웨어(SoftWare)란? - 프로그램, 프로그램의 개발, 운용, 보수에 필요한 정보 일체 (소프트웨어 생산 결과물 일체를 소프트웨어라고 한다) 소프트웨어의 생산 - 소프트웨어는 프로그램의 동적인 실체 - 프로그램은 형식 언어로 표현(코딩)된 지적 노동의 결과물 > 정신적인 노동자 - 제조업 V.S 서비스업 (소프트웨어는 제작이 아니라 창조적 노력이 포함된 개발) > 단순히 사람의 머리에 의하여 창조적인 노력에 의해 개발되는것이 소프트웨어 산업 인건비의 비중이 높음 - 닳아 없어지는 것이 아니라 소용없어 못쓰게 됨 (사용자들이 사용을 안할때 망함) > 소프트웨어의 폐기 - 논리적인 요소로 구성 (유지 보수가 복잡하게 됨) - 소프트웨어 산업(국내 소프트웨어 기업 2020년에 90조 7000억원 매출.. 2021. 3. 3. 프로세스 초기 컴퓨터는 한번에 하나의 프로그램을 실행하여 실행 중인 프로그램이 컴퓨터의 자원을 독점하는 방식이었다. 병행을 실행하는 프로그램들은 컴퓨터 자원을 공유하기 때문에 이를 제어하기 위해 프로세스가 등장하게 되었다. 구동을 하기 위한 형태의 프로그램을 프로세스로 관리 프로세스의 정의 - 실행 중인 프로그램 > 컴퓨터의 자원을 사용할 프로그램들 = IBM운영체제에서 task로 분류 - 비동기적 행위 (Asynchronous) - 실행 중인 프로시저 - 실행 중인 프로시저의 제어 추적 - 운영체제에 들어있는 프로세스 제어 블록 (PCB) - 프로세서에 할당하여 실행 할 수 있는 개체 디스패치가 가능한 대상 > cpu에 연산을 수행시킬지 결정 상태를 관리하기 위한 목적 프로세서와 프로세스 프로세서 > 명령과 연.. 2020. 10. 15. 인터프리터 프로그래밍 해석기법, 파이썬 쉽고 간결한 표현으로 많이 사용되고 있는 프로그래밍 언어인 '파이썬'은 컴파일 언어가 아닌 해석기법의 인터프리터 언어이다. 여기에서는 컴파일 기법과 비교되는 해석(Interpretation)기법의 원리를 정리한다. 컴파일과 가장 크게 비교되는 부분은 컴파일과정은 원시프로그램을 적당한 형태의 중간언어로 프로그램을 변환하고 최적화를 진행하는 과정을 거치며 해석기법은 고급언어로 작성된 프로그램을 과정없이 바로 실행하게 되며 실행하는 과정 속에서 인터프리터(Interpreter)라고 불리는 프로그램에 의해 실행되게 된다. 인터프리터는 고급언어를 마치 기계어처럼 취급하는 시뮬레이션 컴퓨팅 프로그램으로 실행과정을 바로 확인 할 수 있다는 간편함이 있지만 프로그램의 규모가 커지거나 복잡해질때 속도가 느려지고 효율성이.. 2020. 9. 11. 프로그램의 컴파일 과정 고급언어 (C++, Java, Python..)등으로 작성된 프로그램은 컴퓨터가 바로 인식해서 실행 할 수 없다. 따라서 고급언어로 작성된 프로그램은 컴퓨터가 인식 할 수 있는 형식으로 변환하는 과정을 거쳐야 한다. 컴파일 과정 (Compile) - 고급언어로 작성된 프로그램을 컴퓨터가 바로 실행 할 수 있는 프로그램으로 변환하는 기법을 의미하며 컴파일을 하는 프로그램을 컴파일러(Compiler)라고 한다. ex) C의 컴파일러 GCC 컴파일 기법은 번역이 완료되는 즉시 빠르게 프로그램을 실행 시킬 수 있는 장점이 있다. 과정을 살펴보면 처음 고급언어로 작성된 프로그램을 원시 프로그램 (Source Program)이라 하고 컴파일의 결과로 생성되는 기계어 프로그램을 목적 프로그램 (Object Progr.. 2020. 9. 11. 프로그래밍 언어의 설계 원칙 - 효율성 (efficiency) 목적코드의 효율성 - 컴파일러, 인터프리터가 효율적인 실행 코드를 생성 할 수 있어야 함. 번역의 효율성 - 설계된 언어가 번역기에 의해 빠르게 번역될 수 있어야 함. 구현 용이성 - 설계된 언어가 복잡하다면 용이성이 떨어지게 됨 프로그래밍 효율성 - 언어로 얼마나 빠르고 쉽게 프로그램을 작성할수 있는가 - 언어 구조가 간결하다면 프로그래밍의 효율성이 높아지게 됨 (LISP) - 일반성 (generality) > 밀접하게 관련 있는 개념들을 하나의 더 일반적인 것으로 결합하는 성질 - 직교성 (Orthogonality) > 언어의 구성자가 문맥이 다르다고 다른 의미를 가져서는 안된다는 성질 - 획일성 (Uniformity) > 비슷하게 보이는것 은 비슷하게, 의미를 가져.. 2020. 9. 11. 프로그래밍 언어란 일단 프로그래밍 언어는 컴퓨터가 알아 들을 수 있는 언어를 칭한다 예를 들어 토종 미국인에게 알아듣게 말을 하려면 영어로 , 일본인에게는 일본어로 말하듯이 컴퓨터도 컴퓨터의 언어로 말을 해야 알아 듣는다. 컴퓨터의 시스템은 스스로 인식 할 수 있는 명령어들로 이루어진 프로그램에 의하여 동작되며 여기서 사용하는 프로그래밍 언어는 프로그램을 작성하기 위한 인공적인 언어이다. 크게 프로그래밍 언어를 저급언어(Low level), 고급언어(High leve)로 나눌수 있는데 언어가 싸구려라서 저급이 아니고 시대적이고 편리함에 따라서 분류를 한것이다. - 저급언어 ex) 기계어(01010101011), 어셈블리어(mov ax...) - 고급언어 ex) python, java, C++ , C -> 시대에 따라서 중.. 2020. 9. 11. 이전 1 다음