Skip to content

[박인규] Sprint1 #30

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 14 commits into
base: 박인규
Choose a base branch
from

Conversation

Leichtstar
Copy link
Collaborator

@Leichtstar Leichtstar commented Apr 13, 2025

요구사항

기본

프로젝트 초기화

  • IntelliJ를 통해 다음의 조건으로 Java 프로젝트를 생성합니다.
  • IntelliJ에서 제공하는 프로젝트 템플릿 중 Java를 선택합니다.
  • 프로젝트의 경로는 스프린트 미션 리포지토리의 경로와 같게 설정합니다.
  • Build system은 Gradle을 사용합니다. Gradle DSL은 Groovy를 사용합니다.
  • JDK 17을 선택합니다.
  • GroupId는 com.sprint.mission로 설정합니다.
  • ArtifactId는 수정하지 않습니다.
  • [ ] .gitignore에 IntelliJ와 관련된 파일이 형상관리 되지 않도록 .idea디렉토리를 추가합니다.

도메인 모델링

  • 디스코드 서비스를 활용해보면서 각 도메인 모델에 필요한 정보를 도출하고, Java Class로 구현하세요.
  • 패키지명: com.sprint.mission.discodeit.entity
  • 도메인 모델 정의
  • 공통
  • id: 객체를 식별하기 위한 id로 UUID 타입으로 선언합니다.
  • createdAt, updatedAt: 각각 객체의 생성, 수정 시간을 유닉스 타임스탬프로 나타내기 위한 필드로 Long 타입으로 선언합니다.
  • User
  • Channel
  • Message
  • 생성자
  • id는 생성자에서 초기화하세요.
  • createdAt는 생성자에서 초기화하세요.
  • id, createdAt, updatedAt을 제외한 필드는 생성자의 파라미터를 통해 초기화하세요.
  • 메소드
  • 각 필드를 반환하는 Getter 함수를 정의하세요.
  • 필드를 수정하는 update 함수를 정의하세요.
    서비스 설계 및 구현
  • 도메인 모델 별 CRUD(생성, 읽기, 모두 읽기, 수정, 삭제) 기능을 인터페이스로 선언하세요.
  • 인터페이스 패키지명: com.sprint.mission.discodeit.service
  • 인터페이스 네이밍 규칙: [도메인 모델 이름]Service
  • 다음의 조건을 만족하는 서비스 인터페이스의 구현체를 작성하세요.
  • 클래스 패키지명: com.sprint.mission.discodeit.service.jcf
  • 클래스 네이밍 규칙: JCF[인터페이스 이름]
  • Java Collections Framework를 활용하여 데이터를 저장할 수 있는 필드(data)를 final로 선언하고 생성자에서 초기화하세요.
  • data 필드를 활용해 생성, 조회, 수정, 삭제하는 메소드를 구현하세요.
    메인 클래스 구현
  • 메인 메소드가 선언된 JavaApplication 클래스를 선언하고, 도메인 별 서비스 구현체를 테스트해보세요.
  • 등록
  • 조회(단건, 다건)
  • 수정
  • 수정된 데이터 조회
  • 삭제
  • 조회를 통해 삭제되었는지 확인
    기본 요구사항 커밋 태그
    GURU
  • 여기까지 진행 후 반드시 커밋해주세요. 그리고 sprint1-basic 태그를 생성해주세요.

심화

주요 변경사항

  • 메뉴트리 적용하여 전체 기능 구현

스크린샷

// 메인 메뉴트리
image

// 1_0 메세지 관리 트리
image
// 1_1 메세지 작성
image
// 1_2 메세지 조회
image
image
// 1_3 메세지 수정
image
image
// 1_4 메세지 삭제
image
image

// 2_0 채널 관리 트리
image
// 2_1 채널 개설
image
// 2_2 채널 조회
image
// 2_3 채널 수정
image

// 2_4 채널 삭제
image
image

// 3_0 유저 관리 트리
image
// 3_1 유저 생성
image
// 3_2 유저 조회
image
// 3_3 유저 수정
image
// 3_4 유저 삭제
image
image

멘토에게

  • JavaApplication.java 클래스의 집중도가 너무 높아 .control 패키지를 따로 두어 각 도메인의 컨트롤러를 분리하였습니다.

-메세지 전체출력 기능 구현
- Application상 메뉴 구현하여 메서드로 캡슐화
- 사용자 생성/수정/삭제/조회기능 구현
- Application상 메뉴 구현하여 메서드로 캡슐화
- 사용자 생성/수정/삭제/조회기능 구현
- 사용자 관리에 5번 사용자변경 추가
- 채널입장 세부메뉴 구현
  ㄴ채널 내부에서 메세지 관련 기능 모두 구현
- 메세지 도메인 채널 도메인에 연결
  ㄴ채널삭제 기능 미구현
  ㄴMessageControl.java : 메세지 관리 컨트롤 패널
  ㄴChannelControl.java : 채널 관리 컨트롤 패널
  ㄴUserControl.java : 유저 관리 컨트롤 패널
- Channel명 변경시 중복검사 로직 추가함
- 전체 메세지 표시 포맷 변경
- 날짜 표시 포맷 yyyy.MM.dd hh.mm.ss로 변경
  ㄴMessageControl.java : 메세지 관리 컨트롤 패널
  ㄴChannelControl.java : 채널 관리 컨트롤 패널
  ㄴUserControl.java : 유저 관리 컨트롤 패널
- Channel명 변경시 중복검사 로직 추가함
- 전체 메세지 표시 포맷 변경
- 날짜 표시 포맷 yyyy.MM.dd hh.mm.ss로 변경
@Leichtstar Leichtstar requested a review from ssjf409 April 13, 2025 10:47
@Leichtstar Leichtstar added the 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. label Apr 13, 2025
- IntelliJ로 프로젝트 생성시 src\main\java\main.java 구조를 만들지 않고 src\main.java로 바로 생성하는데 그레이들에서 src\main\java\ 구조가 없으면 빌드를 안해주는 문제 확인
- src\ 아래 있는 모든 구조 및 클래스를 src\main\java 디렉토리 하위로 이동, 정상 런 확인
- IntelliJ로 프로젝트 생성시 src\main\java\main.java 구조를 만들지 않고 src\main.java로 바로 생성하는데 그레이들에서 src\main\java\ 구조가 없으면 빌드를 안해주는 문제 확인
- src\ 아래 있는 모든 구조 및 클래스를 src\main\java 디렉토리 하위로 이동, 정상 런 확인
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants