본문 바로가기
Java/자바 객체 지향의 원리와 이해

자바와 절차적/구조적 프로그래밍

by k-mozzi 2023. 8. 30.
반응형
Preface

 

1장에선 딱히 정리할만한 부분이 없어서 2장부터 정리를 시작한다.

 

작가는 코드를 STS(Spring Tool Suite)로 실행해 볼 것을 권장했지만, 대부분 매우 짧고 간단한 코드라 이미 설치되어 있는 이클립스를 사용했다.

 

이번 장 까지는 절차적/구조적 프로그래밍에 대한 간단한 설명, 기본적인 메모리 구조 사용 방법 등 익숙한 부분을 다뤄서 쉽게 읽고 넘어갈 수 있었다.

 

다만, CBD와 OOP의 차이점에 대해선 아직 정확히 구분할 수가 없다.

 

두 방식에 대해선 조금 더 자세히 공부할 필요가 있을 것 같다.


 

- SOA(Service-Oriented Architecture): 서비스 지향 아키텍처

→ 애플리케이션을 독립적인 서비스 단위로 분리하여 구축하고 통합하는 접근 방식

 

 

- CBD(Component Based Development): 컴포넌트 기반 개발방법론

→ 애플리케이션을 의미 있는 단위로 구분하여 개발한 후 부품을 결합해 소프트웨어 제품을 완성시키는 방식

 

 

- UML(Unified Modeling Language): 표준화된 모델링 언어

 

 

- 자바의 구성

1) JDK: 자바 개발 도구

2) JRE: 자바 실행 환경

3) JVM: 자바 가상 기계

 

 

- 메모리는 코드 실행 영역과 데이터 저장 영역으로 나뉜다.

→ 데이터 저장 영역은 다시 스태틱 영역, 스택 영역, 힙 영역으로 나뉜다.

 

 

- 각 영역별 데이터

1) 스태틱 영역: 클래스

2) 스택 영역: 메소드

3) 힙 영역: 객체

 

 

- 절차적 프로그래밍: goto를 쓰지 말자

 

 

- 구조적 프로그래밍: 함수를 쓰자(전역 변수보단 지역 변수)

 

 

- 객체 지향 언어에서 클래스 외부에 존재할 수 있는 것은 없다.

 

 

- 자바에서 main( ) 메소드가 실행되기 전 JVM에서 수행하는 전처리 작업 순서

1) java.lang 패키지를 메모리의 스태틱 영역에 배치한다.

2) import된 패키지를 메모리의 스태틱 영역에 배치한다.

3) 프로그램 상의 모든 클래스를 메모리의 스태틱 영역에 배치한다.

 

 

- 여는 중괄호로 스택 프레임이 만들어지고, 닫는 중괄호로 스택 프레임이 소멸된다.

 

 

- 변수는 메모리의 세 영역 모두에 존재할 수 있다.

1) 스태틱 영역: 클래스 멤버 변수

2) 스택 영역: 지역 변수

3) 힙 영역: 객체 멤버 변수

 

 

- 외부 스택 프레임에선 내부 스택 프레임 변수에 접근할 수 없지만, 반대는 가능하다.

 

 

- 메소드 스택 프레임에서 다른 메소드 스택 프레임의 내부 변수에는 접근할 수 없다.

 

 

- Call By Value(값에 의한 전달): 메소드를 호출하면서 인자로 전달되는 것은 변수 자체가 아닌 변수가 저장한 값의 복사본이다.

 

 

- 멀티 스레드: 스택 영역을 스레드 개수만큼 분할해서 사용하는 것

→ 전역 변수는 멀티 스레드에 안전하지 않다.

 

 

- 멀티 프로세스: 다수의 데이터 저장 영역, 즉 다수의 메모리 구조를 갖는 것

 

728x90
반응형

댓글