본문 바로가기
❤️‍🔥TIL (Today I Learned)

[TIL] 2022-11-22(17day)

by elicho91 2022. 11. 22.
  • 상속, 인터페이스, 추상 클래스를 각각 어떤 상황에서 사용해야하는지 잘 와닿지 않습니다. 특히 인터페이스는 자바에만 있는 기능인 것으로 압니다.
    • 실제 프로그래밍 할 때는 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
      • Participant p ??? 참가자? 회원참가자? 비회원참가자?
        • 비회원참가자의 A라는 기능을 쓰고싶어
          • (NonMemberParticipant) p.A();
  • 3-Tier Architecture
    • Presentation Tier
      • 프리젠테이션 계층은 일반 사용자가 애플리케이션과 상호작용하는 애플리케이션의 사용자 인터페이스 및 통신 계층입니다. 주요 목적은 정보를 표시하고 사용자로부터 정보를 수집하는 것입니다. 이 최상위 레벨 계층은 예를 들어 웹 브라우저, 데스크탑 애플리케이션 또는 그래픽 사용자 인터페이스(GUI)에서 실행될 수 있습니다. 웹 프리젠테이션 계층은 일반적으로 HTML, CSS 및 JavaScript를 사용하여 개발됩니다. 데스크탑 애플리케이션은 플랫폼에 따라 다양한 언어로 작성될 수 있습니다.
        • UI(User-Interface)
          • 위키 정의
            • 사람(사용자)과 컴퓨터시스템 사이의 의사소통 매개를 의미한다. 이 의사소통은 해당 기기에 대해 효율적인 작동과 사용자의 제어를 보장하는 것을 목표로 한다. 주변의 터치스크린, 마우스 등은 UI를 물리적으로 볼 수 있는 좋은 예시이다.
          • 일반적인 웹 또는 앱 서비스
            • 브라우저
              • Chrome, Safari, Firefox, Explorer, Whale, Edge
              • 안드로이드 앱
              • IOS 앱
    • Application Tier애플리케이션 계층은 일반적으로 Python, Java, Perl, PHP 또는 Ruby를 사용하여 개발되며 API 호출을 사용하여 데이터 계층과 통신합니다.
    • 논리 계층 또는 중간 계층이라고도 하는 애플리케이션 계층은 애플리케이션의 핵심입니다. 이 계층에서 프레젠테이션 계층에서 수집된 정보는 특정 비즈니스 규칙 집합인 비즈니스 로직을 사용하여 데이터 계층의 다른 정보와 비교하여 처리됩니다. 애플리케이션 계층은 데이터 계층의 데이터를 추가, 삭제 또는 수정할 수도 있습니다.
    • Data Tier
    • 데이터베이스 계층, 데이터 액세스 계층 또는 백엔드라고도 하는 데이터 계층은 애플리케이션에서 처리하는 정보가 저장되고 관리되는 곳입니다. 이는 PostgreSQL , MySQL, MariaDB, Oracle, DB2, Informix 또는 Microsoft SQL Server 와 같은 관계형 데이터베이스 관리 시스템 이거나 Cassandra, CouchDB 또는 MongoDB 와 같은 NoSQL 데이터베이스 서버일 수 있습니다.
    출처: IBM(https://www.ibm.com/cloud/learn/three-tier-architecture)

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로 전달한다.
          • 그냥 값 전달
  • Data Tier
    • Spring
      • DB에 저장 되어 있는 메뉴 목록을 Query를 통하여 조회 한다.
        • RepositoryInterface → SpringMysqlDB
      • 조회 한 정보들을 Application Tier로 전달한다.
    • 자바
      • 메모리에 저장(Java의 기능.. List, HashMap) 되어 있는 메뉴 목록을 조회 한다.
        • RepositoryInterface
          • DefaultMemoryDB → 배열에서 값을 꺼내와
      • 조회 한 정보들을 Application Tier로 전달한다.

🙋‍♂️ 소감 : 

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

댓글