경일게임아카데미 멀티 디바이스 메타버스 플랫폼 개발자 양성과정 20220705~0706 2022/04/04~2022/12/13

Jinho Lee·2022년 7월 5일
0

경일 메타버스 20220705~0706 14주차 2~3일 수업내용. 복습

복습

프로그래밍

  • 프로그래밍 :
    컴퓨터가 우리의 목적을 달성할 수 있도록 필요한 절차를 기술하는 것

  • 코딩과의 차이점 :
    코딩은 그 절차를 바탕으로 코드를 작성하는 것

  • 프로그래밍의 파트

    • 코어 : 문법

    • 라이브러리 : 유틸리티 모음

컴퓨터 구성요소

  • 메모리 :
    비트가 저장되는 공간

    • 비트에는 2가지 데이터를 저장할 수 있다.
  • 입출력 장치

    • 입력 :
      컴퓨터로 데이터를 주는 것

    • 출력 :
      컴퓨터가 데이터를 주는 것

  • CPU :
    중앙 처리 장치. 명령어를 처리

  • 프로세스 :
    프로그램을 실행하기 위한 여러 데이터를 관리하는 객체

    • 코드 : 명령어 저장

    • 힙 : 동적 할당 영역

    • 스택 : 정적 할당 영역

    • 데이터 : 정적 데이터 영역

프로그래밍 도구

  • 텍스트 에디터 : 코드 작성

  • 컴파일러 : 컴파일

  • 디버거 : 디버그

  • IDE : 통합 개발 환경

  • 객체 : 데이터 영역

  • 제어문

    • 분기문 / 반복문
  • 배열 : 연속적으로 배치

모듈화

  • 모듈 : 프로그램의 일부 기능을 담당하는 것

  • 함수

  • 사용자 정의 타입 : 구조체

기호 상수

  • const 수식자

  • #define 매크로

  • enum 열거형

객체 지향 프로그래밍

  • 4가지 주요 개념

    • 캡슐화 :
      데이터와 알고리즘을 함께 묶어서 사용할 수 있는 것.
      접근 한정자를 이용해 데이터 은닉 가능

    • 상속 :
      코드를 물려받는 것.
      즉, 코드 재사용

    • 추상화 :
      구현 세부정보를 숨기는 일반적인 인터페이스를 정의하는 것

    • 다형성 :
      여러가지 형태를 가지게 되는 성질

자료구조

  • 데이터를 조직하는 방법

  • 어떤 자료구조를 선택하는가에 따라 프로그램의 성능이 수십, 수백 배 차이 날 수 있다.

  • 선형 자료구조

    • 리스트 / 스택 / 큐
  • 비선형 자료구조

    • 그래프 / 트리
  • 순차 자료구조 :
    메모리에 연속적으로 데이터를 배치.
    배열을 사용

  • 연결 자료구조 :
    노드라는 메모리 청크에 데이터를 저장하고,
    이를 포인터를 사용해서 연결

  • 연산

    • 읽기 / 검색 / 삭제 / 삽입
  • 선형 자료구조

    • 리스트 : 순서를 갖고 있는 자료구조

      • 선형 리스트

        • 검색 : O(n)

        • 읽기 : O(1)

        • 삭제 / 삽입 : 맨 뒤 O(1), 그 외 O(n)

      • 연결 리스트

        • 단일 / 이중 / 원형

        • 검색 : O(n)

        • 읽기 : O(n)

        • 삭제 / 삽입 : 위치를 알면 O(1)

      • 스택 : LIFO

      • 큐 : FIFO

재귀

  • 자기 자신을 호출하는 것

  • 구현이 간단해지나, 함수 호출에 따른 오버헤드 존재

알고리즘 분석

  • 시간 복잡도 : 연산의 횟수

  • 공간 복잡도 : 메모리의 양

  • 빅오 표기법

    • 점근적 상한선을 제공하며, 최악의 경우 시간 복잡도가 대략 어느 정도인지 파악할 수 있게 해준다.

0개의 댓글