java

프로그램과 객체지향형설계

다름임 2024. 12. 23. 10:40

 

프로그램이란?

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