객체 지향이란?
: 현실 세계의 무언가를 컴퓨터 세계로 옮겨 만든 것 (= 객체)
- 현실 세계의 무언가를 개발에 사용할 수 있도록 정형화
- 추상화 = 정형화 = 공통사항
- 객체는 속성과 기능으로 이루어져 있다.
객체 설계 단계
현실 세계 -> 요구사항 분석 -> 객체 식별 -> 객체 간의 관계 정의 -> 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에 저장된다.
현실 세계에서 유형 또는 무형의 무언가를 컴퓨터 세상으로 옮긴 것
= 객체 지향 프로그래밍에서는 '객체', 데이터베이스에서는 '테이블'이라고 한다.
객체 = 속성, 기능 / 테이블 = 속성, 속성의 값
'CS' 카테고리의 다른 글
[네트워크] TCP, UDP 프로토콜 / 3 Way Handshake (0) | 2024.12.02 |
---|---|
[CS] 컴파일 언어 vs 인터프리터 언어 / 자바 / 자바 환경변수 설정 (0) | 2024.12.02 |
형상관리 (0) | 2024.11.25 |
웹 서버, 웹 어플리케이션 서버(WAS), DB 서버 연동 실습 (0) | 2024.11.25 |
시스템 아키텍처 / 부하 분산 실습 (HAProxy) (0) | 2024.11.22 |