728x90

개인 프로젝트 26

[TOY] 설계 - 유스케이스

1. 클래스 설계 - 유스케이스유스케이스 클래스에 대한 설계입니다. 서비스에서 구현될 유스케이스를 정의하는 인터페이스로 구성되어 있습니다. 이전 패키지 구조에서 여러 개로 나뉘어 있던 UseCase중 CRUD 기능들은 하나로 묶어서 정의하였습니다.2. UseCase각 도메인 패키지 아래의 usecase 패키지가 입니다. 기본적인 CRUD를 구현한 유스케이스와 부가 기능을 가진 유스케이스가 존재합니다.2.1 UserUser 도메인 패키지 아래의 유스케이스 입니다. CRUD 유스케이스와 login 유스케이스로 분리되어 있습니다.User CRUD를 정의한 유스케이스입니다. 회원 가입, 수정, 삭제, 정보 조회 기능을 가지고 있습니다.User login을 정의한 유스케이스입니다. 현재는 로그인에 관한 유스케이스..

[TOY] 설계 - 도메인

1. 클래스 설계 - 도메인도메인 클래스 설계에 대한 부분입니다. 현재 패키지는 각 도메인 별 기능을 분리하여 설계되어 있는데 그중 domain 패키지 내부 클래스들에 대한 설계입니다. 아키텍처 설계에서 구상되었던 패키지 내 예상 클래스 구조에서 추가되는 부분이 많을 것으로 생각되며 앞선 설계서 내용은 수정하지 않고 클래스 설계 마무리 단계에 최종 결과물이 올라갈 예정입니다.2. Model흔히 말하는 도메인 클래스입니다. 프로젝트 패키지 구조로 domain 패키지 내 repository와 패키지 구분을 위해 model 패키지를 따로 생성하였습니다. 비즈니스 모델을 관리하는 곳으로 User, Post, Comment, Photo 클래스에 해당합니다.2.1 User ClassUser 클래스 설계입니다. My..

[TOY] 설계 - 데이터베이스 DataBase

1. DateBase 이번 프로젝트에서 사용하게 될 데이터베이스는 MySQL입니다. 스프링의 ORM 기술인 JPA를 사용한 프로젝트를 진행하여 관계형 데이터베이스를 사용하게 되었고 많은 온라인 리소스를 제공하는 오픈 소스 MySQL을 선택하였습니다. 2. 테이블 & 다이어그램앞선 분석과 설계로 뽑아낸 엔티티는 user, post, comment로 다이어그램과 테이블을 설계하였습니다.2.1 ERD (Entity-Relationship Diagram)아래는 구성된 다이어그램입니다.엔티티가 몇 개 없는 간단한 프로젝트다 보니 다이어그램도 간결하게 구성되었습니다. 뽑아낸 엔티티에서 photos 테이블이 추가로 생성되었습니다. photos 테이블은 게시글에 이미지와 같은 파일이 포함될 경우 별도 처리를 위한 테이..

[TOY] 설계 - 아키텍처[Hexagonal] & 패키지

1.  아키텍처 - Hexagonal이번 프로젝트는 헥사고날 아키텍처를 기반으로 진행될 예정입니다. 헥사고날 아키텍처는 비즈니스 로직과 인터페이스, 인프라스트럭처를 분리하여 책임을 명확히 하고 각 컴포넌트의 독립성을 높여, 유지보수성과 확장성을 극대화하는 데 도움을 줍니다. 객체지향 언어인 자바를 사용함에 따라 SOLID 원칙을 효과적으로 적용할 수 있는 헥사고날 아키텍처를 선택하였습니다. 1.1 헥사고날 아키텍처 헥사고날 아키텍처(Hexagonal Architecture)는 소프트웨어 설계 패턴으로 Alistair Cockburn에 의해 제안되었습니다. 애플리케이션의 비즈니스 로직을 외부 세계와 분리하여 유연하고 테스트하기 쉬운 시스템을 설계하는 데 중점을 둔 구조입니다. "포트와 어댑터" 구조로 구성..

[TOY] 설계 - 유스케이스

1. 유스케이스 유스케이스는 특정 시스템이 사용자에게 제공하는 기능이나 서비스의 단위를 의미합니다. 현재 분석된 요구사항을 토대로 유스케이스 다이어그램을 작성하였습니다.회원, 비회원, 매니저로 액터를 분류하여 기능을 구성하였고 분석한 기능을 위주로 작성하였습니다. 1.1 회원회원 가입: 회원 가입을 수행하는 유스케이스로그인: 일반 회원과 매니저가 수행하는 유스케이스필수 선행 조건으로 DB를 통한 인증 유스케이스가 존재확장 조건으로 인증에 실패하는 경우 로그인 실패 유스케이스가 존재게시글 CRUD: 회원으로 게시글 CRUD를 수행하는 유스케이스선행 조건으로 게시글 보기 유스케이스 존재 필수 선행 조건으로 로그인 유스케이스 존재댓글 CRUD: 회원으로 게시글 CRUD를 수행하는 유스케이스선행 조건으로 게시글..

[TOY] 게시판 프로젝트 개요

[TOY] Project - Board1. 프로젝트 개요학습 목적의 TOY 프로젝트로 게시판 제작을 시작하게 되었습니다. 기본적인 게시판의 기능인 조회, 검색, 댓글 기능이 가능하고 회원, 비회원 모두 게시글 및 댓글 작성이 가능하며 게시글 추천수에 따른 인기글 게시판 기능을 제공합니다.2. 요구사항 분석게시판 제작에 필요한 기본적인 요구사항들을 정리하여 분석하였습니다. 기능 요구사항회원 관리회원 가입: 사용자는 가입 시 기본적으로 일반 회원으로 등록역할 지정: 관리자가 일반 회원을 매니저로 지정 가능관리자 계정: 관리자는 가입이 불가능하며, 초기 개발자가 생성한 계정으로만 존재게시글 관리게시글 작성: 비회원: 게시글에 표시될 이름과 비밀번호를 지정하여 게시글 작성 가능회원: 로그인 시 회원 이름으로 게..

728x90