포트폴리오 -1

김정현·2024년 5월 30일
0

포트폴리오

목록 보기
1/8
  1. main 메서드 실행 클래스 설정 -build.gradle
plugins {
    id 'java'
    id 'application'
}

group = 'org.choongang'
version = '1.0-SNAPSHOT'

mainClassName = 'org.choongang.Application'

repositories {
    mavenCentral()
}

dependencies {
    testImplementation platform('org.junit:junit-bom:5.10.0')
    testImplementation 'org.junit.jupiter:junit-jupiter'
}

test {
    useJUnitPlatform()
}

tasks.jar {
    manifest.attributes['Main-Class'] = 'org.choongang.Application'
}
  1. 의존성 추가 - build.gradle
    lombok
    odjbc11
    orai18n
    mybatis
    slf4j api
    logback-classic
  1. MVC 모델 - 역할 분담

- M(Model) - 비즈니스 로직 구현

Service : 기능
-DTO(Data Transfer Object) : 데이터 전달 목적의 객체
-Vaildator : 데이터 검증
-DAO(Data Access Object) : 데이터 접근 객체(DB 처리...)
-VO(Value Object)

- V(View) - 보이는 부분 / 처리 결과 데이터를 가지고 보이는 부분

- C(Controller) : 요청(사용자) - 요청 처리를 위한 모델, 뷰를 연결 - 응답 (뷰)

DDD(Domain Driven Design) : 도메인 주도 설계

Domain : 전문가 영역

표현 계층 : View
도메인 계층
인프라 계층 : 공통 인프라(DB ...)

MSA(Micro Service Architecture)

  1. Controller 설계
    1) 메뉴 라우팅
    2) 컨트롤러

-> 템플릿 메서드 패턴
run()
공통 (common())
메뉴 항목 (show())
입력 (prompt())

3) 뷰(View) : template
-Template 인터페이스
-Templates 클래스

5.Model 설계

기능- Service
-DTO,DAO, Validator ... 다른 객체의 협력을 통해서 하나의 기능을 완성
-회원이 입력한 데이터가 매개변수 -> 처리

회원 기능
:회원가입 -> 데이터베이스 접근
:로그인 -> 데이터베이스 접근

참고) 테이블및 시퀀스 생성

SQL> CREATE TABLE MEMBER (
  2     USER_NO NUMBER(10) PRIMARY KEY,
  3     USER_ID VARCHAR2(30) UNIQUE NOT NULL,
  4     USER_PW VARCHAR2(65) NOT NULL,
  5     USER_NM VARCHAR2(40) NOT NULL,
  6     REG_DT DATE DEFAULT SYSDATE,
  7     MOD_DT DATE 
  8  );

Table created.

SQL> CREATE SEQUENCE SEQ_MEMBER;

Sequence created.

SOILD 객체 지향 설계 원칙

S - 단일 책임 원칙 - 하나의 클래스는 하나의 책임을 가짐

O - 개방 폐쇄 원칙 - 확장에서는 열려 있고, 변화에는 닫혀있음

  • 디자인 패턴 : 전략패턴
  • 상속은 확장에 불리
  • 구성이 확장에 유리
  • 직접 구성 객체를 생성 X -> 통제 불가

I - 인터페이스 분리 원칙
: 하나의 인터페이스에 설계항목을 너무 많이 X, 역할별로 인터페이스를 분리
: java.time 패키지의 핵심 클래스 , LocalDateTime

L - 리스코프 치환 원칙 - 서브 타입은 언제나 기반타입으로 교체 가능 (다형성)

D - 의존 역전 원칙 - 특정 대상을 직접 참조하기 보다는 그 대상의 상위 요소인 추상클래스 또는 인터페이스로 참조

위와 같은 방식으로 외부에서 통제하는 것이 유리함.

데코레이터 패턴

0개의 댓글