<2022년 01월 25일 _ 패스트캠퍼스 챌린지 02일차>
[스프링 입문_객체지향이란?]
1. 객체지향
(1) 50년이 넘는 역사를 가지고 있다
(2) 이전엔 C언어 기반의 절차지향 언어 였다
(3) 순차적 처리의 비효율을 개선하여 효과적인 개발방식을 채택한 객체지향이 등장함
(4) 추상화, 상속, 은닉, 재사용, 인터페이스등의 특성이 있음
2. 객체지향의 특성
(1) 현실의 사물을 있는 그대로 모델링
: 행위와 속성을 정의
: 실제 사물이 동작하는 방식으로 설계
(2) 사물 : 객체(Object)
(3) 사물의 행위 : 행위(Method)
(4) 사물의 속성 : 변수(Variable)
(5) 기존의 절차지향보다는 편리하게 설계 가능
3. Java
(1) Sun Microsystems에서 개발
(2) 현재는 Oracle 에서 서비스중
(3) 자바 가상 머신 Java Virtual Machine JVM만 있으면 어디서든 독립적 실행 가능
4. 객체 설계하기
객체 == 사물 == Object
(1) 속성
자동차: 자동차 이름,번호,등록년월,모델명...
사람: 아이디,패스워드,이메일,전화번호...
은행계좌: 계좌번호,잔고,예치금,이율...
(2) 행위
자동차: 주행거리,연비계산,번호교체,등록증갱신
사람: 계정등록,계정삭제,비밀번호변경,이메일변경
은행계좌: 잔고계산,이율계산,입금기록,출금기록
5. 객체의 3가지 요소
(1) 상태 유지(객체의 상태)
: 상태정보 저장, 유지
: 속성Variable은 변수로 정의되어야 함
: 속성값이 바뀜으로 인하여, 객체의 상태가 변경 될 수 있어야 함
(2) 기능 제공(객체의 책임)
: 객체는 기능을 제공해야 함(Method의 제공으로 이루어짐)
: 캡슐화와 연관되어 있음(외부에서의 직접 속성 변경이 아닌, 객체가 제공하는 Method로 기능이 제공되어야 함)
(3) 고유 식별자 제공(객체의 유일성)
: 각각의 객체는 고유한 식별자를 가져야 함
ex)카드번호, 계좌번호, 자동차 번호판과 같은 속성을 통한 고유한 값
: DB에서 Unique key 또는 Primary key로 작성 가능
5. 물리 객체와 개념 객체
(1) 물리 객체
: 실제 사물이 존재하며 이를 클래스로 정의
ex) 자동차 렌탈 시스템(자동차,고객,직원,사업장,정비소등)
ex) 급여관리 시스템(직원, 월급통장등)
ex) PC방관리 시스템(PC,직원,공간,책상,의자 등)
(2) 개념 객체
: 개발할 시스템에서의 Service에 해당
: Business logic을 처리하는 부분을 의미
--> Business logic은 여러 객체를 서로 상호작용하도록 하며, 객체가 제공하는 오퍼레이션 method를 통해 객체 속성 변경 가능
ex) 사용자 관리 시스템(사용자 객체의 접속일자를 이용한, 계정만료, 비번 초기화, 재등록 처리 등)
ex) ATM시스템(사용자Object의 Action에 따른, 계좌Object의 잔고 속성을 변경하는, 입/출금 logic 처리 등)
6. 객체지향에서의 코딩
(1) 객체 지향에서의 코딩은 대부분 각 객체에 기능을 정의 함
(2) 각 객체의 기능을 business logic을 처리하는 Service에서 객체의 Method를 활용 및 조건을 확인해, 객체의 속성을 변경하는 작업
(3) 이러한 작업을 위해 각 객체의 속성Variable과 속성을 변경하거나 상태를 변경할 수 있는 오퍼레이션Method를 잘 정의해야 함
2일차 강의 완료~
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'개발새발 > Spring' 카테고리의 다른 글
220129_스프링입문_디자인패턴_디자인패턴이란_패스트캠퍼스 챌린지 06일차 (0) | 2022.01.29 |
---|---|
220128_스프링입문_객체지향_POJO JAVA_패스트캠퍼스 챌린지 05일차 (0) | 2022.01.28 |
220127_스프링입문_객체지향_객체지향 설계 5원칙 SOLID_패스트캠퍼스 챌린지 04일차 (0) | 2022.01.27 |
220126_스프링입문_객체지향_객체지향 4대 특성_패스트캠퍼스 챌린지 03일차 (0) | 2022.01.26 |
220124_스프링입문_객체지향_개발환경설치_패스트캠퍼스 챌린지 01일차 (0) | 2022.01.24 |