내배캠 사전캠프/내배캠 사전캠프 TIL

241002 내배캠 사전캠프 TIL

yjuni22 2024. 10. 2. 22:58

객체 지향 프로그래밍의 필요 이유 먼저 이해하기

 

도서관리 , 회원관리 프로그램 등

클래스는 (의미있는) 데이터를 묶음으로 만들려는 것이다 --(모델링)--> 상태정보를 담는 바구니

 

클래스/구조체를 사용하는 이유 2가지

1. 사용하려는 모델의 설계

DTO/VO : 관련 데이터를 한 곳에 담는 역할

DAO : 데이터 처리(비즈니스 로직)

Helper Object : 유틸리티

2. 애플이 미리 설계해 놓은 클래스/구조체를 잘 사용하기 위함

 

 

언제 클래스 / 구조체를 사용해야 하는가?

 

데이터관점에서

단순하게 변수나 상수를 만드는 것을 아주 가볍게 사용하려고

살짝 더 무겁게 - 구조체 (스택영역사용 , 클래스보다 가벼움, 메모리에 오랫동안 저장하지 않음 , 상속 x 

반드시 필요한 경우가 아니라면 구조체를 사용하기를 권장 - 애플

 

정답이 있는 것은 아님, 프로젝트의 사례에 따라 적합한 것 선택

 

연관된 데이터들을 단순히 묶는 것이 목적일 때 구조체

참조하는 것보다 복사해서 사용하는 경우

저장속성들이 값 타입 - 구조체

 

상속의 구조가 필요하면 클래스

 

객체지향의 4대 특징   (캡상추다)

객체지향(OOP)- 클래스를 사용한다라고 생각

 

1. 추상화

[모델링] 

실생활에서 여러가지 구체적인 것을 관심있는 부분만 가지고 재조합 하는 것

공통적인 특성을 뽑아내서 하나의 분류(class)로 만든 것 

 

2. 캡슐화

[모델링 / 정보은닉 / 데이터캡슐화]

연관이 있는 속성이나 메서드를 하나의 클래스로 묶어서 활용한다는 개념

은닉화 - 숨긴다 

 

3. 상속성

[재사용 / 확장]

부모클래스의 속성과 메서드를 자식클래스에서 그대로 물려받는 개념

 

 

4. 다형성

[사용편의 / 동적바인딩]