CS

[CS] 객체 지향 / 데이터 모델링

셰욘 2024. 11. 26. 17:01
728x90

객체 지향이란?

: 현실 세계의 무언가를 컴퓨터 세계로 옮겨 만든 것 (= 객체)

  • 현실 세계의 무언가를 개발에 사용할 수 있도록 정형화
    • 추상화 = 정형화 = 공통사항
  • 객체는 속성기능으로 이루어져 있다.

 

객체 설계 단계

현실 세계 -> 요구사항 분석 -> 객체 식별 -> 객체 간의 관계 정의 ->  UML 다이어그램 -> 메모리

 

 

객체지향 프로그래밍 특징

1. 추상화

  • 불필요한 세부사항은 제거하고 공통적인 부분들만 추출하여 표현하는 것

 

2. 캡슐화

  • 서로 연관있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것
  • 캡슐화를 하는 이유
    • 데이터 보호 (외부로부터 클래스에 정의된 속성과 기능들을 보호)
    • 데이터 은닉 (내부의 동작을 감추고 외부에는 필요한 부분만 노출)
더보기

자바에서 캡슐화를 구현하기 위한 방법

 

1. 접근 제어자

  • 외부에서 접근하지 못하도록 접근을 제어하는 역할
  • public, default, protected, private

2. getter/setter 메소드

  • 선택적으로 외부에 접근을 허용할 속성과 그렇지 않을 속성을 getter/setter 메소드로 설정

 

3. 상속

  • 새로운 객체가 기존 객체의 자료와 연산을 이용할 수 있게 하는 기능
  • 기존의 객체를 재활용하여 새로운 객체를 만드는 것

 

4. 다형성

  • 어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 성질
  • 대표적인 예시 : 오버라이딩, 오버로딩
오버라이딩
: 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의해서 사용하는 것

오버로딩
: 같은 이름의 메소드가 매개변수의 자료형이나 개수에 따라 다른 기능을 하는 것

 


 

데이터 모델링

: 현실 세계의 무언가를 컴퓨터 세계로 옮겨 만든 것

  • 현실 세계의 무언가를 DB에 저장할 수 있도록 정형화
  • DB의 데이터는 속성과 속성의 값으로 이루어져 있다.

 

데이터베이스 하면 보통 관계형 데이터베이스를 말하는 것이다.

관계형 데이터베이스가 아닌 것은? = NoSQL

 

데이터 모델링 단계

현실 세계 -> 개념적 구조 -> 논리적 구조 -> 물리적 구조 -> 하드 디스크

개념적 구조 단계에서는 ERD

논리적 구조 단계에서는 정형화

 

 

ORM

ORM(Object Relational Mapping)은 객체로 연결해준다 라는 의미로, 어플리케이션과 데이터베이스 연결 시 SQL 언어가 아닌 어플리케이션 개발 언어로 데이터베이스에 접근할 수 있게 해주는 툴이다.

 

예전에는 DB 설계 후 코드를 짰다면, ORM으로는 코드를 짜면 자동으로 DB에 저장된다.

 


 

현실 세계에서 유형 또는 무형의 무언가를 컴퓨터 세상으로 옮긴 것

= 객체 지향 프로그래밍에서는 '객체', 데이터베이스에서는 '테이블'이라고 한다.

객체 = 속성, 기능 / 테이블 = 속성, 속성의 값

 

 

 

 

 

 

 

 


출처 : https://www.codestates.com/blog/content/%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8A%B9%EC%A7%95

 

객체 지향 프로그래밍의 4가지 특징ㅣ추상화, 상속, 다형성, 캡슐화 -

객체 지향 프로그래밍은 객체의 유기적인 협력과 결합으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임을 의미합니다. 객체 지향 프로그래밍의 기본적인 개념과 그 설계를 바르게 하기 위

www.codestates.com

 

728x90