개발자 채용 과제 수정해보기

개발자 채용 과제 수정해보기

728x90

반응형

이전에 특정회사에서 과제전형으로 주어진 걸 Mybatis로 셋팅하여서 확장자 체크를 수행하는 과제를 했었는데...

(아래주소)

https://lollaziest.tistory.com/168

그걸 피드백받은 방식 + 서비스회사에서 주로 사용하는 JPA기본 을 사용하여 변경해보았다.

변경해보고 느낀점은..음 날 왜 안뽑았는지 알 듯했다^^; 많이 부족한 설계능력+Mybatis로 인한 난잡한 코드들... 부끄럽다고 느꼈지만 그래도 그러한걸 다 남겨둬야 나중에 티스토리 블로그를 살펴보다가 이런때가 있었지 할듯하여 남기기로했다.

확장자를 갈아끼우는 형태로도 가능하게 하려고 몇개의 테이블+메뉴코드 테이블이 엮여있는 테이블이 아닌 기능만을 위한 심플한 테이블을 생성하는 Entity를 만들었다. 처음에는 Y,N값으로 구분하려고 했으나 Enum이 그런부분에 있어서 강점이 있다고해서 바꿨다.

기본적인 Extension Entity생성

import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.validation.constraints.NotBlank; import org.hibernate.validator.constraints.Length; import com.test.flow.file.type.ExtensionType; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor @Entity public class Extension { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Long id; @NotBlank // not null @Length(max = 20) String extension; //확장자값 @Enumerated(EnumType.STRING) ExtensionType fixExtension; // Y,N 고정확장자여부 체크값 }

간단한 Enum생성

public enum ExtensionType { FIX,CUSTOM }

그리고 그걸 사용할 JpaRepository 생성

import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import com.test.flow.file.Entity.Extension; import com.test.flow.file.type.ExtensionType; @Repository //생략가능 public interface ExtensionRepository extends JpaRepository{ List findAllByFixExtension(ExtensionType fix); void deleteByExtension(String extension); Long countByFixExtension(ExtensionType custom); Extension findByExtension(String extension); }

위와 같이 수행할 경우

JPQL로 심플하게 작성한 쿼리 + CRUD로 매우 심플하게 돌아가는 로직이 완성되었다.

나머지의 상세변경등에 대한 코드들은 깃허브에서 확인가능하다.. 이렇게 쉽게 가능한 부분들을 참 어렵게도 짰구나라는 생각이 절로 들었다;;

https://github.com/helloworldkim/extensiontest

728x90

반응형

from http://lollaziest.tistory.com/172 by ccl(A) rewrite - 2021-10-28 19:01:21