티스토리 뷰

자바 프로그램의 개발과 구동

우리는 컴퓨터를 구동하기 위해서는 컴퓨터, 즉 하드웨어와 운영체제, 그리고 그 위에서 구동될 소프트웨어가 필요하다. 그리고 소프트웨어를 개발할 수 있는 개발 도구가 필요하다. 자바는 이러한 과정을 그대로 모방하고 있다. 

 

현실세계 자바 월드
소프트웨어 개발 도구 JDK(Java Development Kit)
운영체제 JRE(Java Runtime Enviorment)
하드웨어(컴퓨터) JVM(Java Virtual Machine)

 

현실 세계에서 프로그램을 실행하려면 개발 도구로 프로그램을 개발하고, 운영체제를 통해 하드웨어에 구동시킨다. 

자바 월드도 마찬가지다. JDK를 이용해 개발된 프로그램을 JRE를 통해서 JVM에서 구동된다. 

 

다음으로 알아볼 것은 자바의 메모리 사용방식이다. 먼저 일반적으로 프로그램이 메모리를 사용하는 방식이다. 

 

 

일반적인 프로그램이라는 것은 모든 프로그래밍 언어의 공통된 메모리 사용방식 이라는 것이다. 

객체 지향 프로그램에서는 데이터 저장 영역을 다시 3개의 영역으로 분할해서 사용한다. 

 

 

자바에 존재하는 절차적/구조적 프로그래밍의 유산

객체 지향 언어를 이해하는데 절차적/구조적 프로그래밍을 아는 것은 큰 도움이 된다. 

 

절차적 프로그래밍을 한마디로 표현하면 goto를 쓰지 말라는 것이다. goto는 어느 부분에서 다른 부분으로 건너뛸 때 사용하는 명령어다. 즉, 프로그램의 흐름을 바꿀 수 있어 절차적인 흐름을 이어가지 못할 수 도 있다. goto 명령어는 조건문이나 반복문이 존재하지 않았던 프로그래밍 언어에서 탄생해서 지금까지 남아있는 것으로 보인다. 

 

이 책을 읽으면서 goto 명령어를 처음 들어보았을만큼 많은 사람들은 goto를 사용하면 안된다고 말한다. 흔히 금지된 문법이라고 한다. 그럼 왜 goto를 사용하지 못하게 하는 것일까 ? goto를 사용하게 되면 프로그램의 실행 순서가 인간이 이해하기에 너무 복잡해질 가능성이 있기 때문이다. 자바에서는 goto를 예약어로 등록해놓아서 사용하지 못하도록 하고 있다. 자바 키워드에서 볼 수 있다. 

 

 

구조적 프로그래밍은 함수를 쓰라는 것이다. 함수를 사용하면 중복 코드를 한 곳에 모아서 관리할 수 있고, 논리를 함 수 단위로 분리해서 이해하기 쉬운 코드로 작성할 수 있다. 또, 구조적 프로그래밍은 전역 변수보다는 지역변수를 쓰라는 것도 있다. 

그럼 자바의 이러한 절차적/구조적 프로그래밍의 유산은 어디에 남아 있을까 ?

바로 메서드 안에서 확인할 수 있다. 객체 지향 프로그래밍에서 제어문이 존재할 수 있는 유일한 공간은 바로 메서드 내부이기 때문이다. 

 

그럼 함수와 메서드의 차이는 무엇일까 ? 결론부터 이야기 하자면 똑같다. 그냥 절차적/구조적 프로그래밍에서 함수라 불렀는데 객체 지향에서는 좀 다르게 불러야 하지 않을까 ? 싶어서 메서드라고 불렀다고 한다. 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday