<aside> <img src="https://raw.githubusercontent.com/eirikmadland/notion-icons/master/v5/icon3/ul-github.svg" alt="https://raw.githubusercontent.com/eirikmadland/notion-icons/master/v5/icon3/ul-github.svg" width="40px" /> ์ฐธ์กฐ Github Code

</aside>

RetiredDeveloper Entity ๊ตฌํ˜„

@Setter
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@EntityListeners(AuditingEntityListener.class)
public class RetiredDeveloper {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    protected Long id;

    private String memberId;
    private String name;

    @CreatedDate
    private LocalDateTime createdAt;

    @LastModifiedDate
    private LocalDateTime updatedAt;
}

Developer Entity ์ƒํƒœ๊ฐ’(StatusCode ์ถ”๊ฐ€)

@Enumerated(EnumType.STRING)
private StatusCode statusCode;
Developer developer = Developer.builder()
            .developerLevel(request.getDeveloperLevel())
            .developerSkillType(request.getDeveloperSkillType())
            .experienceYear(request.getExperienceYears())
            .memberId(request.getMemberId())
            .statusCode(EMPLOYED)
            .name(request.getName())
            .age(request.getAge())
            .build();

DMakerController ์˜ deleteDeveloper ๋ฉ”์„œ๋“œ ๊ตฌํ˜„

@DeleteMapping("/developer/{memberId}")
public DeveloperDetailDto deleteDeveloper(
        @PathVariable String memberId
) {
    log.info("Delete /deleteDeveloper HTTP/1.1 ");

    return dmakerService.deleteDeveloper(memberId);
}

DMakerService ์˜ deleteDeveloper ๋ฉ”์„œ๋“œ ๊ตฌํ˜„

@Transactional
public DeveloperDetailDto deleteDeveloper(String memberId) {
    // 1. EMPLOYED -> RETIRED
    Developer developer = developerRepository.findByMemberId(memberId)
            .orElseThrow(() -> new DMakerException(NO_DEVELOPER));
    developer.setStatusCode(RETIRED);

    // 2. save into retiredDeveloper
    RetiredDeveloper retiredDeveloper = RetiredDeveloper.builder()
            .memberId(developer.getMemberId())
            .name(developer.getName())
            .build();

    retiredDeveloperRepository.save(retiredDeveloper);
    return DeveloperDetailDto.fromEntity(developer);
}
@Repository
public interface RetiredDeveloperRepository extends JpaRepository<RetiredDeveloper, Long> {
}

์žฌ์งํ•œ ์‚ฌ๋žŒ๋งŒ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด์„œ getAllDevelopers ์ˆ˜์ • ํ•„์š”