inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 스프링부트 활용 웹개발 실무용

E08 Mybatis와 enum 활용 DB 컬럼 in out 사용방법

BoardType 클래스 추가후 직렬화코드

252

odark

작성한 질문수 105

0

데이타 조회시 Board 타입의 속성값을 갖는 BaseResponse클래스 값이 리턴되는데 ...이번에는 Board 클래스안에 enum 클래스인 BoardType을 추가했다고 해서...왜 갑자기 BaseCodeLabelEnumJsonSerializer 이런 클래스를 만들고 WebConfiguration에는 ObjectMapper 와 mappingJackson~ 메소드를 추가했는지 몰겠네요...

위 두 메소드 설정추가는 BaseCodeLabelEnum 이걸 직렬화하고 json형태로 변환하기 위한 설정인줄은 알겠는데....BoardType이란걸 리턴클래스의 속성값으로 추가하면서부터 왜 갑자기 객체직렬화코드가 들어가게 된건지가 이해가 안가네요...그전에  boardType 없어도 BaseResponse에 대한 직렬화는 필요없는건가요? 

결과적으로 리턴타입이 클래스 오브젝트라 하더라도 기본적으로 json형태로 출력해주는것 같은데 그래서 여쭤보는겁니다. 설령리턴 클래스안의 또 클래스타입이 속성이 있어서 모두 json형태로 출력해주지 않나요? boardType이란걸 추가하고나서부터 왜 직렬화 코드가 나와야 하는건지가 이해가 안갑니다. 그전에 리턴하는 클래스(BaseReponse)에 대해서는 직렬화코드가 왜 필요없었던건지~~

spring-boot

답변 1

0

송자바코딩

BaseCodeLabelEnumJsonSerializer를 추가안해도 Board 클래스에 boardType(enum) 추가 만해도 json에 출력이 되는데요.

그런데 출력 되는 값은 오로지 boardType의 value 즉 name() 값만 출력이 됩니다.

boardType에 label 추가하였었는데요. 

NOTICE, FAQ, INQUIRY 값은 코드 형태의 값이므로 사용자에게 안보이는 뒷단에서 관리되는 값이며,

label에 공지사항, 자주묻는질문, 1:1문의는 실질적으로 사용자에게 보이는 텍스트 문구 입니다.

실제로 화면기능을 구현하다보면 목록조회, 상세조회에는 코드값이 아닌 텍스트 문구가 대부분 사용되는경우에 이방법을 사용하면 간단히 사용할 수 있다는 용도로 해당 영상에 사용된거에요. ^^

만약 이부분이 DB로 관리하게되면 코드의 이름을 가져오기 위해 JOIN 을 통하여 가져와야 하는데 불필요한 쿼리가 생기게 됩니다.

하지만 enum을 활용한다면 쉽고 빠르게 할 수 있는 부분입니다.

2강 Board.xml에 만들 때 오류를 어떻게 해결해야 하나

0

8833

1

E03 Swagger 설치 + 게시판 API 문서화

0

385

0

E04 참고

0

347

1

3강 Swagger 컴파일 에러

0

580

0

API 연동에 필요한 프로퍼티 관리와 사용방법에서 facebook.properties도 추가하려면 코드를 어떻게 작성해야 하나요?

0

251

0

용두사미

1

442

0

스웨거시 컴파일 에러는 안나는데 실행하면 에러가 나네요?

0

395

1

됐다가 안됐다가 쩝!

0

410

0

강의가 안됩니다.

0

763

0

마리아디비

0

309

0

application.properties

0

306

0

spring boot version

0

371

1

부트 로그인 화면

0

351

0

logger.info 질문입니다

0

467

1

강사님. 코드관련 질문드립니다.

0

427

1

컨텐츠가 2개로 나오는데 어느부분을 확인해야할까요?

0

350

0

강의 질문드립니다 [ApplicationContext]

0

482

1

아무리해봐도 해결이되지않네요 ㅠ

0

509

1

레포지토리 검색을 못한다네요 ㅠㅠ

0

6707

1

2강에 setMapperLocations 에 에러

0

814

1

주석 단축키가 뭔가요

0

582

1

E03 영상 관련.

0

383

1

질문드립니다

0

393

1

1

0

180

0