프로그램이란?
pro(앞을 뜻하는 전치사) + gram(text / 순차적으로 명령을 나열한것)
Data + 명령으로 이루어진 문장의 나열이다.
(프로그램 예시. 실제 명령과는 다르지만 이해를 위해 직관적으로 작성)
3 + 5
2 * 10
여기에서 3,5,2,10 은 'data' 이고 , '3 + 5'와 '2 * 10' 은 명령이다. ('+' 와 ' * '은 연산자)
컴퓨터에서 프로그램은 CPU가 처리한다.
CPU의 역할
1. 계산
2. READ
3. WRITE
4. Jump (if/while 반복문)
간단한 프로그램 예시를 들어보겠다.
(프로그램 예시)
명령 1 mov al, [num1] ; num1 읽기
명령 2 add al, [num2] ; num2 더하기
명령 3 mov[result], al ; 결과 저장
명령 4 cmp al,8 ; 결과가 8인지 확인 (조건문)
명령 5 jne multiply ; 아니면 multiply로 Jump
명령 1부터 명령 5까지를 순차적으로 read/ write하며 계산을 진행한다.
명령은 계산으로 이루어져 있으며, 만약 중간에 jump (이 프로그램에서는 'jne'가 해당된다)가 있으면 조건문이 if 인 경우 뒤로, while문일경우에는 앞으로 돌아간다.
이 프로그램을 작성할 때 비용을 줄일 수 있는 방법은 최대한 JUMP문을 피하는 것이다.
프로그램에서 비용을 줄이는방법은?
: 튜닝과 설계를 통하여 공통설계를 한다.
튜닝(최적화) : 더 낮은 등급의 코드 ( 직관적인 코드) 로 변환하는 과정
(예시)
for(int i = 1; i <= 5; i++){
y += i;
}
--------------(튜닝)-----------------
y = 1 + 2 + 3 + 4 + 5;
자바(Java)에서는 크게 두가지 프로그래밍이 있다.
OOP(객체 지향 프로그래밍) , FP(함수형 프로그래밍)
OOP 설계란?
집합을 어떻게 구성할지 생각하는 것이다.
OOP(Object- Oriented Programming)은 프로그램 설계 방법론의 일종으로
집합과 그것들을 이루고 있는 관계를 통해서 그룹화 하는 과정을 거쳐 전체 시스템의 복잡도를 낮춘다.
Java 프로그램 에서는 객체를 집합의 개념으로 생각하여 다룰 수 있다.
'java' 카테고리의 다른 글
VisualVM 테스트 1 : 쓰레드 부하, Cpu 부하 확인 (1) | 2025.05.02 |
---|---|
연산자와 식, 문장 (0) | 2024.12.23 |
컴파일러(compiler)와 data, type (1) | 2024.12.23 |
값(value)과 타입의 관계 (0) | 2024.12.23 |