본문 바로가기

스파르타코딩클럽(내일배움캠프)

스파르타 코딩 클럽 5주차 3일

728x90

객체 지향적 설계 방법


1. 솔리드원칙중 단일책임의 원칙이라도 지키자
하나의 클래스는 하나의 책임만 부여해야한다.

2. 여러가지 변경될 수 있는 DB라던지 그런것들은 추상화를 통해 선언해줘야한다.

3. CRUD가 있다면 각각의 클래스를 만들지말고 메서드를 만든다음에 그것을 제어하는 클래스를 만들자

4. 캡슐화를하자 클래스내부 변수는 Private로 선언

5. 데이터 <- 어플리케이션 <- 프레젠테이션 이렇게 화살표방형으로만 불러와야 3계층 구조가 망가지지 않는다. 프레젠테이션에서능 모든곳에 접근가능

 

6. 엔티티는 고유한것만 있어야함 예를들어 은행, 손님 -> 기능이 없는 클래스설계 라고도함

 

7. 안바뀔거는 private final로 constant하자


8. 어째뜬 재사용성을 강화시키는것이 객체지향의 목적이다

 

 

자바에서 코드가 실행되는과정

 

Java -> 컴파일러 -> 바이트코드(.Class) -> JVM -> OS -> CPU동작

JDK : Java -> 컴파일러 -> 바이트코드(.Class) -> JVM 

JRE : Library(java.lang, java.util 등) + JVM

JVM : CLS(Class Loader Subsystem) + RDA(Runtime Data Area) + EE(Excute Engine)

 

RDA 대해 알아보았다.

RDA 는 5가지 영역이 존재 : static, heap, stack + PC, Native Internal Thread

 

이중 Static heap stack위주로 알아두자

 

static 영역 : 클래스와 static
stack 영역 : 메서드
heap 영역 : 객체(instance)

psvm(public static void main)


1. JRE는 psvm 매서드가 있는지 먼저 찾는다.
2. psvm이 있다면 jre는 jvm부팅
3. jvm이 부팅되면 바이트파일(.class) 실행
4. JVM 전처리 java.lang 패키지 static영역에 로드 
1. 개발자가 작성한 클래스와 import package를 static영역에 올린다.
5. 스택영역에 main 스택 프레임이 올라간다.

728x90