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(값에 의한 전달): 메소드를 호출하면서 인자로 전달되는 것은 변수 자체가 아닌 변수가 저장한 값의 복사본이다.
- 멀티 스레드: 스택 영역을 스레드 개수만큼 분할해서 사용하는 것
→ 전역 변수는 멀티 스레드에 안전하지 않다.
- 멀티 프로세스: 다수의 데이터 저장 영역, 즉 다수의 메모리 구조를 갖는 것
'Java > 자바 객체 지향의 원리와 이해' 카테고리의 다른 글
자바가 확장한 객체 지향 (0) | 2023.09.04 |
---|---|
자바와 객체 지향 (0) | 2023.08.31 |
자바 객체 지향의 원리와 이해 출처 (0) | 2023.08.30 |
댓글