인프런 커뮤니티 질문&답변

gggg5555님의 프로필 이미지
gggg5555

작성한 질문수

쥬쥬와 함께 하루만에 시작하는 백엔드 - 스프링, 도커, AWS

4-5 [맛집] 맛집 가져오기 API 개발하기

이너 클래스 vs 클래스 별도 생성의 차이?

작성

·

208

·

수정됨

0

[4-5 맛집 정보 가져오기 API 개발하기]

맛집 정보 가져오기 API 부분 코드 작성해 주시는 부분에서 (2분 34초쯤부터)

메뉴 클래스를 하나 더 만드실지 고민하시는듯 하다가 이너 클래스로 만드신 것처럼 보이는데요,

이전에 request 만드실때는 메뉴 클래스를 분리하셨는데

해당 부분에서는 고민하시다가 이너 클래스로 만드신 이유가 무엇인지

그리고 어떤 경우에 이너 클래스를 쓰고 분리를 하는지 궁금해서 문의드립니다.

답변 2

0

쥬쥬님의 프로필 이미지
쥬쥬
지식공유자

안녕하세요. 지식공유자 쥬쥬입니다.

 

실습에서는 다양하게 코딩하는 것을 보여드리기 위해 다양한 방법을 이용해 코드를 작성하고자 했습니다.

 

코틀린에서는 파일 하나에서 다양한 클래스를 선언할 수 있지만 자바에서는 파일에서 클래스를 하나밖에 생성할 수 없기 때문에, 개발자분들의 성향에 따라 이너클래스를 사용하시는 분들도 계십니다.

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

이너 클래스와 별도의 클래스로 분리하는 것 사이의 선택은, 클래스의 사용 범위와 목적에 따라 달라질 수 있습니다.

이너 클래스(Innner Class)는 특정 클래스 안에 선언된 클래스로, 주로 해당 이너 클래스를 감싸고 있는 외부 클래스에서만 사용될 때 선호됩니다. 이런 이너 클래스는 외부 클래스의 멤버 변수나 메소드에 쉽게 접근할 수 있다는 장점이 있습니다. 따라서, 특정 클래스 내부의 작업을 도와주는 보조적인 역할을 할 때 유용합니다.

반면, 클래스를 별도로 분리하여 만드는 경우에는 해당 클래스가 여러 곳에서 공통적으로 사용될 때 효과적입니다. 별도 클래스는 재사용성이 높고, 각 클래스의 독립성이 유지되며, 결합도가 낮아져서 유지보수가 용이합니다.

개발자가 이너 클래스를 선택하는 경우는 주로 해당 클래스가 외부 클래스 안에서만 의미를 갖고, 외부 클래스의 멤버들과 긴밀한 작업을 해야 할 때입니다. 이는 클래스의 관련성을 높이고, 가독성 및 유지보수성을 개선할 수 있습니다. 반대로, 분리하여 클래스를 생성하는 경우는 해당 클래스가 독립적인 역할을 하며, 다른 클래스에서도 사용될 가능성이 있을 때 선택됩니다.

따라서, 메뉴 클래스를 이너 클래스로 만드신 경우, 해당 클래스가 해당 API 개발 범위 안에서만 사용되고, 이외에는 별도의 독립적인 역할을 하지 않는다고 판단되었을 수 있습니다. 경우에 따라, 디자인 패턴, 프로젝트의 구조, 개발 팀의 선호도 등 다양한 요소를 고려하여 선택하게 됩니다.

gggg5555님의 프로필 이미지
gggg5555

작성한 질문수

질문하기