- 상속, 인터페이스, 추상 클래스를 각각 어떤 상황에서 사용해야하는지 잘 와닿지 않습니다. 특히 인터페이스는 자바에만 있는 기능인 것으로 압니다.
- 실제 프로그래밍 할 때는 Animal 클래스와 같이 명확한 상황이 거의 없는데 어떻게 적용해야할지 너무 모호합니다.
- 추상클래스, ⇒ 템플릿메소드 패턴
- event-us?? ⇒ 참가자(참가코드, 인증방식). ⇒ 비회원참가자(이메일, 닉네임, 핸드폰), 회원참가자(이메일)
- 캐스팅할때 정확히 어떤차이인지 알고싶습니다. Animal animal = new Animal과 Cat animal = new Animal과 Animal animal = new Cat의 차이가 정확히 뭔지 알고싶습니다.
- 업케스팅 사용시 반드시 업케스팅을 써야만 하는 상황에 대해 적절한 예시가 있을까요?
- 업캐스팅(올라가는거)
- (Parent) Child c;
- 다운캐스팅
- (Child) Parent p;
- Parent p = new Child();
- (Child) p;
- 예를들어 Animal animal = new Cat() 등으로 선언할때 animal을 new Animal() 로 선언해서는 절대 안되고 반드시 new cat()을 사용해야한다던가 하는 확실한 상황등이 있나요?
- 참가자 ⇒ 회원참가자, 비회원참가자
- Participant
- MemberParticipant
- B
- NonMemberParticipant
- A
- MemberParticipant
- Participant p ??? 참가자? 회원참가자? 비회원참가자?
- 비회원참가자의 A라는 기능을 쓰고싶어
- (NonMemberParticipant) p.A();
- 비회원참가자의 A라는 기능을 쓰고싶어
- Participant
- 업캐스팅(올라가는거)
- 3-Tier Architecture
- Presentation Tier
- 프리젠테이션 계층은 일반 사용자가 애플리케이션과 상호작용하는 애플리케이션의 사용자 인터페이스 및 통신 계층입니다. 주요 목적은 정보를 표시하고 사용자로부터 정보를 수집하는 것입니다. 이 최상위 레벨 계층은 예를 들어 웹 브라우저, 데스크탑 애플리케이션 또는 그래픽 사용자 인터페이스(GUI)에서 실행될 수 있습니다. 웹 프리젠테이션 계층은 일반적으로 HTML, CSS 및 JavaScript를 사용하여 개발됩니다. 데스크탑 애플리케이션은 플랫폼에 따라 다양한 언어로 작성될 수 있습니다.
- UI(User-Interface)
- 위키 정의
- 사람(사용자)과 컴퓨터시스템 사이의 의사소통 매개를 의미한다. 이 의사소통은 해당 기기에 대해 효율적인 작동과 사용자의 제어를 보장하는 것을 목표로 한다. 주변의 터치스크린, 마우스 등은 UI를 물리적으로 볼 수 있는 좋은 예시이다.
- 일반적인 웹 또는 앱 서비스
- 브라우저
- Chrome, Safari, Firefox, Explorer, Whale, Edge
- 앱
- 안드로이드 앱
- IOS 앱
- 브라우저
- 위키 정의
- UI(User-Interface)
- 프리젠테이션 계층은 일반 사용자가 애플리케이션과 상호작용하는 애플리케이션의 사용자 인터페이스 및 통신 계층입니다. 주요 목적은 정보를 표시하고 사용자로부터 정보를 수집하는 것입니다. 이 최상위 레벨 계층은 예를 들어 웹 브라우저, 데스크탑 애플리케이션 또는 그래픽 사용자 인터페이스(GUI)에서 실행될 수 있습니다. 웹 프리젠테이션 계층은 일반적으로 HTML, CSS 및 JavaScript를 사용하여 개발됩니다. 데스크탑 애플리케이션은 플랫폼에 따라 다양한 언어로 작성될 수 있습니다.
- Application Tier애플리케이션 계층은 일반적으로 Python, Java, Perl, PHP 또는 Ruby를 사용하여 개발되며 API 호출을 사용하여 데이터 계층과 통신합니다.
- 논리 계층 또는 중간 계층이라고도 하는 애플리케이션 계층은 애플리케이션의 핵심입니다. 이 계층에서 프레젠테이션 계층에서 수집된 정보는 특정 비즈니스 규칙 집합인 비즈니스 로직을 사용하여 데이터 계층의 다른 정보와 비교하여 처리됩니다. 애플리케이션 계층은 데이터 계층의 데이터를 추가, 삭제 또는 수정할 수도 있습니다.
- Data Tier
- 데이터베이스 계층, 데이터 액세스 계층 또는 백엔드라고도 하는 데이터 계층은 애플리케이션에서 처리하는 정보가 저장되고 관리되는 곳입니다. 이는 PostgreSQL , MySQL, MariaDB, Oracle, DB2, Informix 또는 Microsoft SQL Server 와 같은 관계형 데이터베이스 관리 시스템 이거나 Cassandra, CouchDB 또는 MongoDB 와 같은 NoSQL 데이터베이스 서버일 수 있습니다.
- Presentation Tier
JAVA로 서비스를 만든다면..?
https://enjoydevelop.tistory.com/22 - Scanner
- Layered-Architecture → Clean Architecture(Hexagonal Architecture)
- 카페 시스템 중에서 메뉴 목록을 저장하고, 보여주는 부분을 생각해보자.
- Presentation Tier(UI)
- 브라우저
- 메뉴 목록 조회 요청을 한다.
- 주문 가능한 메뉴 목록이 노출 된다.
- 메뉴를 저장한다.
- 메뉴 목록 조회 요청을 한다.
- 자바 콘솔
- 메뉴 목록 조회 요청을 입력 받는다.
- 주문 가능한 메뉴 목록이 노출 된다.
- 메뉴를 저장한다.
- 메뉴 목록 조회 요청을 입력 받는다.
- 브라우저
- Application Tier
- Spring
- 메뉴 목록 조회
- Data Tier에 저장 되어 있는 메뉴 목록을 조회 한다.
- 조회 한 메뉴 목록을 네트워크를 통하여, Presentation Tier로 전달한다.
- Network
- 메뉴 목록 조회
- 자바
- 메뉴 목록 조회
- Data Tier에 저장 되어 있는 메뉴 목록을 조회 한다.
- 조회 한 메뉴를 Presentation Tier로 전달한다.
- 그냥 값 전달
- 메뉴 목록 조회
- Spring
- Data Tier
- Spring
- DB에 저장 되어 있는 메뉴 목록을 Query를 통하여 조회 한다.
- RepositoryInterface → SpringMysqlDB
- 조회 한 정보들을 Application Tier로 전달한다.
- DB에 저장 되어 있는 메뉴 목록을 Query를 통하여 조회 한다.
- 자바
- 메모리에 저장(Java의 기능.. List, HashMap) 되어 있는 메뉴 목록을 조회 한다.
- RepositoryInterface
- DefaultMemoryDB → 배열에서 값을 꺼내와
- RepositoryInterface
- 조회 한 정보들을 Application Tier로 전달한다.
- 메모리에 저장(Java의 기능.. List, HashMap) 되어 있는 메뉴 목록을 조회 한다.
- Spring
🙋♂️ 소감 :
4일 동안의 객체지향 관련 강의가 끝이났다.
내일 새로운 프로젝트 시작이 되는데, 객체지향 개념을 생각하면서,
효율적은 코드를 짤 수 있도록 신경써야겠다.
😈 아는 내용이라고 그냥 넘어가지 않기! 😈
'❤️🔥TIL (Today I Learned)' 카테고리의 다른 글
[TIL] 2022-11-24(19day) (0) | 2022.11.24 |
---|---|
[TIL] 2022-11-23(18day) (0) | 2022.11.23 |
[TIL] 2022-11-21(16day) (0) | 2022.11.21 |
[TIL] 2022-11-18(15day) (0) | 2022.11.18 |
[TIL] 2022-11-17(14day) (0) | 2022.11.17 |
댓글