[꼼꼼한 개발자] 꼼코더

07. 스프링 입문을 위한 자바 객체 지향의 원리와 이해 - [자바와 절차적/구조적 프로그래밍] - 프로그램이 메모리를 사용하는 방식 본문

Spring/스프링 입문을 위한 자바 객체 지향의 원리와 이해

07. 스프링 입문을 위한 자바 객체 지향의 원리와 이해 - [자바와 절차적/구조적 프로그래밍] - 프로그램이 메모리를 사용하는 방식

꼼코더 2022. 12. 27. 01:45
반응형

🔋 프로그램이 메모리를 사용하는 방식

자바의 특징을 빠르게 살펴봤다. 이제부터는 자바를 잘 활용하기 위한 지식을 쌓아보자.

 

아래 그림은 하나의 프로그램이 실행될 때 프로그램이 메모리를 사용하는 방식을 간략하게 보여준다.

기계어를 포함한 모든 프로그래밍 언어의 공통된 사용 방식이다.

객체 지향 프로그램에서는 데이터 저장 영역을 다시 세 개의 영역으로 분할해서 사용한다(아래 그림 참고).

그림의 우측 영역(데이터 저장영역)은 T처럼 보이기에 앞으로 T메모리 구조라고 간략하게 지칭하겠다.

 


🏴‍☠️ 자바에서 존재하는 절차적/구조적 프로그램의 유산

객체지향 프로그래밍은 절차적/구조적 프로그램의 어깨를 딛고 있다.

‘절차적 프로그래밍’을 한마디로 표현하자면 ‘goto를 쓰지 말라는 것’이다.

 

❓왜 goto를 사용하면 안 될까?

그 이유는 goto를 사용 시 프로그램의 실행 순서가 인간이 이해하기에 너무 복잡해질 가능성이 있기 때문이다.

실행 순서가 이리저리 이동된다는 뜻이다.

그렇게 되면 소스를 이리저리 따라가며 프로그램을 이해해야 한다.

구조적 프로그래밍’‘함수를 쓰지라는 것’이다.

 

❓ 왜 함수를 써야할 까?

중복코드를 한 곳에 모아서 관리할 수 있다.

논리를 함수 단위로 분리해서 이해하기 쉬운 코드를 작성할 수 있다.

 

추가로 공유 사용 시 문제가 발생하기 쉬운 ‘전역 변수’보다는 ‘지역 변수를 사용’하라는 이야기도 있다.

 

자 그럼 결론적으로 객체 지향 언어에서 절차적/구조적 프로그램의 유산은 어디에 남아 있을까?

바로 메서드 내부에서 확인할 수 있다.

이유는 메서드는 객체 지향 프로그래밍에서 제어문이 존재할 수 있는 유일한 공간이기 때문.

 

자바의 예약어 중 구조적/절차적 프로그래밍의 유산이라 할 수 있는 것들을 표시해 보았다.

자바 키워드 중 절반 이상이 구조적/절차적 프로그래밍 언어에서 유래됐음을 알 수 있다.

 

다음시간에는 구조적/절차적 프로그래밍을 이해해보는 글을 올려보겠다.

 

 

 

위 내용은 스프링 입문을 위한 자바 객체 지향의 원리와 이해 교재를 참고하여 작성되었습니다.

 

스프링 입문을 위한 자바 객체 지향의 원리와 이해 - YES24

자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량 애플리케이션 프레임워크인 스프링은 자바와 객체 지향이라는 기반 위에 굳건히 세워져 있다. 따라서 스프링을 제대로 이해하고 활용

www.yes24.com

 

 

 

Comments