2024.01.22(월)

🤔프로그래밍의 기본 원리

💬컴파일 언어와 인터프리터 언어

프로그래밍 언어 종류정의개발 편의성실행 속도보안파일 용량예시 언어
컴파일 언어프로그래밍을 마친 뒤 코드 전체를 미리 기계어로 번역(컴파일)한 다음 실행 파일을 생성해서 실행하는 언어느림 (코드 수정하고 컴파일을 다시 해야 실행 가능)빠름강함큼 (실행 파일 전체를 전송)C, C++, C#, 자바, 타입스크립트, 코틀린, 스위프트, 스칼라, Go, 러스트
인터프리터 언어작성된 언어를 한 줄 한 줄 통역하면서 실행되는 언어빠름 (코드 수정하고 즉시 실행 가능)느림약함작음 (코드만 전송)자바스크립트, 파이썬, 루비, PHP, 펄, R

🧠프로그래밍의 개념

  • 설계(Design): 프로그램을 개발하기 전에 머리 속으로 알고리즘, 구조, 데이터 모델 등을 계획하고 기록하는 과정
  • 원시코드 작성(Implementation): 설계한 내용을 바탕으로 프로그램의 소스 코드를 작성하는 과정
  • 컴파일(Compile): 고수준 언어로 작성된 소스 코드를 기계어 또는 중간 코드로 변환하는 과정
  • 링크(Link): 여러 개의 컴파일된 소스 코드나 라이브러리를 하나의 실행 파일로 결합하는 과정
  • 빌드(Build): 소스 코드를 컴파일하고 링크하는 전체적인 과정을 포괄하는 용어

🔤변수와 자료형

💾메모리 영역

🗄️콜 스택과 메모리 힙

데이터 타입변수에 저장되는 값
원시 타입 데이터변수에 값이 저장된 콜 스택 메모리의 주소값이 저장된다.
참조 타입 데이터변수에 메모리힙의 주소 값이 저장된 콜 스택의 주소값이 저장된다.
  • 변수 식별자 a, b, c, d 이름 자체는 콜 스택 상의 '실행 컨텍스트(Execution Context)의 렉시컬 환경(Lexical Environment)'에 저장된다.
  • 변수 b, c, d는 주소 값을 저장하고 있기 때문에 “포인터 변수”라고도 한다.
  • 상수(const): 내부 값이 결정된 이후에는 프로그램 동작하는 동안 변경이 불가능, 선언과 동시에 초기화.
    const double pi = 3.14159;

📊자료형

  • char의 경우에는 ASCII Table에 값이 mapping되어 있다.

⌨️사용자로부터 데이터 입력받기

scanf("서식 문자열", &변수, …);

  • 서식 문자열

  • 단항 연산자 &: 해당 피연산자(변수)의 주소를 나타내는 연산자

📝평가 문제

  • 강사님이 오늘 마지막 강의에서 내준 쉬운 평가 문제이다.
  • online c compiler를 사용했다.
  1. 사용자로부터 1개의 정수를 입력 받은 수에 5를 곱한 결과를 출력하라.

    #include <stdio.h>
    
    int main()
    {
        int input;
        scanf("%d", &input);
        printf("%d", input * 5);
    
        return 0;
    }
  2. 사용자로부터 알파벳 문자 하나를 입력 받는다. 그리고 이에 해당하는 숫자를 출력하라. 예를 들어 'A'를 입력하면 출력 결과는 65가 되어야 한다.

    #include <stdio.h>
    
    int main()
    {
        char input;
        scanf("%c", &input);
        printf("%d", input);
    
        return 0;
    }

오늘까지 스프린트 2 백엔드 프로젝트가 끝났고 프론트엔드 기초 강의가 시작되었다. 강사님께서 C언어를 기반으로 기초적인 프로그래밍의 개념에 대해 설명을 해주셨다. C언어는 대학교 1학년 때 수업을 들었던 것 같은데 요즘 python이나 자바스크립트를 많이 쓰다보니 정말 오랜만에 보는 것 같다. 포인터가 정말 어려웠던 기억이 있는데 이번 기회에 마스터해보자! 많이 까먹었지만 역시 어려워도 프로그래밍 언어 근본은 C언어인 것 같다.🤩

profile
이것저것 관심 많은 개발자👩‍💻

0개의 댓글