Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요구사항
기본 요구사항
프로젝트 초기화
/some/path/1-sprint-mission이라면:1-sprint-mission/some/path로 설정합니다.
Create Git Repository옵션은 체크하지 않습니다.com.sprint.mission으로 설정합니다..gitignore에 IntelliJ와 관련된 파일이 형상관리 되지 않도록.idea디렉토리를 추가합니다.도메인 모델
com.sprint.mission.discodeit.entityid: 객체를 식별하기 위한 id로 UUID 타입으로 선언합니다.createdAt,updatedAt: 각각 객체의 생성, 수정 시간을 유닉스 타임스탬프로 나타내기 위한 필드로 Long 타입으로 선언합니다.id는 생성자에서 초기화하세요.createdAt는 생성자에서 초기화하세요.id,createdAt,updatedAt을 제외한 필드는 생성자의 파라미터를 통해 초기화하세요.Getter함수를 정의하세요.update함수를 정의하세요.서비스 설계 및 구현
com.sprint.mission.discodeit.service[도메인 모델 이름]Servicecom.sprint.mission.discodeit.service.jcfJCF[인터페이스 이름]data필드를 활용해 생성, 조회, 수정, 삭제하는 메소드를 구현하세요.메인 클래스 구현
JavaApplication클래스를 선언하고, 도메인 별 서비스 구현체를 테스트해보세요.심화 요구 사항
서비스 간 의존성 주입
스크린샷
요구사항
기본 요구사항
File IO를 통한 데이터 영속화
com.sprint.mission.discodeit.service.fileFile[인터페이스 이름]객체 직렬화/역직렬화 가이드
Application에서 서비스 구현체를File*Service로 바꾸어 테스트해보세요.서비스 구현체 분석
JCF*Service구현체와File*Service구현체를 비교하여 공통점과 차이점을 발견해보세요.레포지토리 설계 및 구현
com.sprint.mission.discodeit.repository[도메인 모델 이름]Repositorycom.sprint.mission.discodeit.repository.jcfJCF[인터페이스 이름]JCF*Service구현체의 "저장 로직"과 관련된 코드를 참고하여 구현하세요.com.sprint.mission.discodeit.repository.fileFile[인터페이스 이름]File*Service구현체의 "저장 로직"과 관련된 코드를 참고하여 구현하세요.심화 요구 사항
관심사 분리를 통한 레이어 간 의존성 주입
다음의 조건을 만족하는 서비스 인터페이스의 구현체를 작성하세요.
com.sprint.mission.discodeit.service.basicBasic[인터페이스 이름]Basic*Service구현체를 활용하여 테스트해보세요.JCF*Repository구현체를 활용하여 테스트해보세요.File*Repository구현체를 활용하여 테스트해보세요.JCF*Service또는File*Service)와 비교해 어떤 차이가 있는지 정리해보세요.기본 요구사항
Spring 프로젝트 초기화
3.4.0입니다.com.sprint.mission입니다.discodeit입니다.Jar입니다application.properties파일을yaml형식으로 변경하세요.DiscodeitApplication의 main 메서드를 실행하고 로그를 확인해보세요.Bean 선언 및 테스트
JavaApplication에서 테스트했던 코드를 DiscodeitApplication에서 테스트해보세요.JavaApplication의 main 메소드를 제외한 모든 메소드를DiscodeitApplication클래스로 복사하세요.JavaApplication의 main 메소드에서 Service를 초기화하는 코드를 Spring Context를 활용하여 대체하세요.JavaApplication의 main 메소드의 셋업, 테스트 부분의 코드를DiscodeitApplication클래스로 복사하세요.Spring 핵심 개념 이해하기
JavaApplication과DiscodeitApplication에서 Service를 초기화하는 방식의 차이에 대해 다음의 키워드를 중심으로 정리해보세요.Lombok 적용
@Getter로 대체해보세요.@RequiredArgsConstructor로 대체해보세요.비즈니스 로직 고도화
추가 기능 요구 사항