C, C++/C Basic

1. S/W 개발과 C언어

2023. 2. 7. 01:09

  • -
더보기

개발자 관점에서

  • 개발자란? 기술자
    전문가, 돈을 받는 프로다.
  • 개발자는 목표가 정해지면, 대상을 분석하고, 계획을 세우고, 구현이라는 결과를 만드는 사람이다.

여러분의 목표는?

너는 지금 여기서 공부를 열심히 왜 하고 있나요?
  • 내 목표와 결과 과정과 계획

목표가 확실해야 하는 이유

  • 목표가 확실하게 정해지지 않으면, 목표를 이루기 위한 계획이 불가능하다.
  • 행동의 이유가 없으면 의욕이 생기지도 않고, 능률도 향상되지 않는다.

 

※ 오늘 수업 목표
1. 하드웨어
1.1 하드웨어를 바라보는 관점
1.2 하드웨어 ↔ 소프트웨어 ↔  개발자 정의와  관계 이해
2. 프로그래밍 언어 
2.1 프로그래밍 언어 왜 등장했을까?
3. 로직 그리고 용어
3.1 로직이란?
3.2. 개발자가 용어를 바라보는 관점과 정의해야 하는 이유

4. 소프트웨어 개발이란?
4.1 응용 소프트웨어란?
4.2 현업 소프트웨어 개발은 어떻게 진행될까?
4.3 소프트웨어 개발자란?
5. 실행
5.1 프로그래밍 언어와 빌드
5.2 실행
5.3 에러
5.4 디버깅
6. 플랫폼
6.1 기계와 컴파일러
6.2 하드웨어 종속적
6.3 다중 플랫폼 지원 프로그램

① 하드웨어

①.① 하드웨어, 소프트웨어 그리고 개발자 

하드웨어란?

  • (컴퓨터를 구성하고 있는) 기계다

소프트웨어란?

  • 사용자가 원하는 것을, 하드웨어로 처리하는 방법과 순서가 기술된 명령문이다.

개발자란?

  • 소스코드로 로직을 구현하여 하드웨어를 다루는 사람이다. 
  • 개발자는, 하드웨어를 제어하는 소프트웨어를 만드는 사람이다.

② 프로그래밍 언어

②. 프로그래밍 언어는 왜 등장했을까?

  • 필요해서

②.② 하드웨어는 0과 1만 이해하고 사용한다. 

  • 개발자는 하드웨어를 제어하는 명령문(소프트웨어)을 작성하는 사람이다.
  • 하드웨어는 0과 1만 이해 가능하다. 
  • 개발자는 하드웨어가 이해 가능한 0과 1로 명령문을 개발한다?

②. 하드웨어의 0과 1 연산 

②.하드웨어의 0과 1 저장 

②. 프로그래밍 언어의 기본 역할 

  • 개발자가 프로그래밍 언어를 통해 소스 코드를 작성하면, 컴파일러가 0과 1로 이루어진 기계어로 변환한다.

②. 프로그래밍 언어 문법과 기술을 바라보는 관점 

  • 모든 프로그래밍 언어 문법과 기술은 필요해서 등장했고 발전하고 있다.
  • 개발의 효율성 향상을 위해서다.

③ 로직과 용어

로직의 정의

  • Logic, 논리, 규칙, 항상 옳은 상태

로직의 종류 1 

  • 프로그래밍 언어의 문법과 형식

로직의 종류 2

  • 개발자의 의도를 명령문으로 정해 놓은 순서
  • 실행이 항상 True 인 상태

용어를 바라보는 관점

  • 개발자는 평생 공부해야 하는 직종이다.
  • 용어는 지식의 이정표다.
  • 전문가, 기술자, 프로

소프트웨어 개발이란?

④. 응용 소프트웨어란?

  • "현실의 어떤 대상"을 소스 코드로 구현된 프로그램을 만들어 대체하는 것이다.
    예) QR 방역패스, 출석체크, 은행업무, 주민등록증, 음식주문배달, 게임, 티켓팅 등
  • 디지털화Digitization
  • 프로그램은, 현실을 기반으로한다.

④. 현업 소프트웨어 개발은 어떻게 진행될까?

  • 소프트웨어 개발이란 소프트웨어 제품이 탄생하는데 수반되는 모든 과정을 포괄하는 의미다.
  • 규모가 큰 회사에서는 개발자의 역할을 위에 나열한 업무마다 할당할 수도 있다.
  • 규모가 작은 회사에서는 소수의 개발자(한 명)이 모든 업무를 수행하기도 한다.
  • 프로그래밍 언어를 공부한다는 것은, S/W 개발 프로세스에서 어느 부분에 해당할까?
  • 신입 또는 경력으로 입사한 당신의 업무는?
  • "소트트웨어 개발" 구글 검색"소프트웨어 공학" 구글 검색신입포폴예시

④. 소프트웨어 개발자란?

실행

⑤.① 빌드

⑤. 실행

⑤. 에러

  • 컴파일 에러
  • 런타임 에러
  • 로지컬 에러
  • 시멘틱 에러

 플랫폼

⑥.① 하드웨어와 C 컴파일러

기계어가 다르다. 운영체제가 처리하는 구조가 다르다.

 

⑥. 하드웨어에 종속적

⑥.③ 다중 플렛폼을 지원하는 프로그램

⑥. Cross Platform

③ 소프트웨어 생명주기 (SDLC)

 참고

⑦. 프로그래밍 언어

  • 소프트웨어 개발에서 "현실의 어떤 대상"을 소스 코드로 구현할 때 사용되는 도구
  • 컴퓨터 프로그래밍 언어는 데이터data(언어의 명사noun), 명령어instruction, 코드code(언어의 동사verb)로 구성된다.
  • 사람의 언어보다 모호함과 예외가 적고 일관성 있기 때문에 배우기 쉽다.

. 프로그램

- Program : 그리스어에서 유래, "지시 사항 등이 순서대로 나열된 것"

- Computer Program :  Data와 Logic이 논리적으로 나열된 명령문

- Computer Programing : "Program" 을 작성하는 작업

. Computer & Calculator

 

- Calculator : 정해진 기능만을 수행하는 단일 목적 장치

- Computer : Program에 작성된 여러 개의 명령을 차례로 읽어들여,

                    현재 상태를 기억하고, 조건에 맞는 기능을 작동한다.

- HTML의 경우 계산기에 가까우며, Programming 언어라고 하지 않는다.

 

 

.④ Computational Thinking

    - 문제 분해(decomposition)

    - 자료 표현(data representation)

    - 추상화(Abstraction)

    - 모형(modeling)

    - 알고리즘(Algorithm)

    - 일반화(generalization)

 

 

- 크고 복잡한 문제를 작은 문제 단위로 분해

- 큰 문제 분석 > 패턴(반복) 발견 > 이용할 데이터 결정 > 문제 일반화 > 모델링 > 큰 문제 해결

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.