[Java] - 컴퓨터와 프로그래밍이란?

서현이의 개발 기록장·2022년 10월 4일
0

Java Programming

목록 보기
1/4
post-thumbnail
post-custom-banner

1. 컴퓨터란?

-> 명령을 수행하는 것이라고 하는데, 내 생각에는 계산기이다.


High Level Language vs Low Level Language

- High로 갈수록 User Friendly Language (고급 언어)

ex) Python

- Low로 갈수록 Machine Friendly Laguage (저급언어, 기계어)

ex) Assembly, C

High Level 언어는 Low Level로 표현 가능하고,
Low Level 언어는 0과 1로 표현 가능하다.

즉 컴퓨터란, 코드를 컴파일러를 통해 저급 언어 0과 1로 변환한 뒤, 계산해서 결과를 보여주는 계산기라고 생각한다.


컴퓨터의 구성 요소

- 프로세서 (중앙처리장치, CPU)

  • 명령을 처리하는 장치, (인간의 두뇌)

- 메인보드

  • 각각의 장치 끼리 연결해주는 매개체의 역할

- 기억장치

  1. 주 기억장치 (RAM)

    • 속도는 빠르지만, 휘발성 메모리로 전기가 나가면 파일 또한 날아간다.
  2. 보조 기억장치 (SSD, HDD, ROM)

    • 속도는 느리지만, 비휘발성 메모리로 전기가 나가도 파일은 살아있다.

- 파워 서플라이

  • 전류를 각 장치의 전압과 전류의 세기에 맞게 분배하여 공급해주는 장치.

- I/O

  • Input, Output (키보드, 마우스, 스피커, 모니터)

2. 프로그램이란?

-> 매우 구체적으로 작성된 명령 나열, 명령어 집합이다.


프로그램 VS 알고리즘

- 프로그램

  • 컴퓨터가 수행할 수 있도록 매우 구체적으로 작성된 명령 나열
  • 이를 작성하는 행위를 코딩, 프로그래밍이라 한다.

- 알고리즘

  • 어떤 문제를 해결하기 위해 정해놓은 일련의 절차

-> 프로그램이 알고리즘보다 더 구체적이다.


3. 프로그램 설계

건축가 (Architect) -> 집을 어떻게 지을지 설계하는 사람
빌더 (Builder) -> 집을 짓는 사람.

vs

설계 (Design) -> 구조, 알고리즘 구축
구현 (Implementation) -> 프로그램, 코드 구현

  • 프로그래밍에 있어서 두 작업 다 해야하지만, 분리해서 사고하는 것이 좋다.

객체 지향 설계 (Object-Oriented Design)

-> 프로그램 설계 방법 중 한가지 방식

특징

  • 모든 것이 다 객체이다.
  • 객체는 객체 자신의 메서드를 갖는다.
  • 화면, 사용자, 프로그램 등 모든것이 객체이다.
    객체끼리 주고 받는 메시지를 통해 계산이 수행된다.
    (한 노드의 Output이 다른 노드의 Input으로 작용)

클래스 구조도 (Class Diagram)

클래스 (class)

  • 객체를 생성하기 위한 툴
  • 클래스는 메서드를 지닌다.

클래스 구조도

  • 클래스와 클래스간의 흐름을 그려놓은 설계도

profile
HanYang ERICA Univ. Department of Artificial Intelligence
post-custom-banner

0개의 댓글