inflearn logo
강의

講義

知識共有

Java/Spring ジュニア開発者のための誤解

サービスとは何ですか?

의존하는 객체 final 선언 질문드립니다.

159

lifetimelearner

投稿した質問数 1

0

안녕하세요,

'서비스란 무엇인가' 강의를 보고 질문드립니다.

 

서비스는 불변으로 만들기 위해 서비스에서 쓰고 있는 리포지토리를 final로 선언하라고 강의를 통해 배웠습니다.

 

컨트롤러에서 쓰는 서비스나 리포지토리에서 쓰는 것들도 final로 선언해도 될까요? 불변이면 생성된 객체가 변경할 수 없는 것 이라는 정도만 이해하고 있는데 다른 레이어도 final로 선언하면 더 안정적인 애플리케이션이 되는 거 아닌가? 라는 생각이 들어 질문드립니다!

 

감사합니다.

java spring 객체지향 소프트웨어-테스트

回答 1

0

communityai8509

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

도도한 개님,

의존하는 객체를 final로 선언하는 것은 해당 객체가 생성된 이후에는 참조가 변경되지 않도록 하여 불변성을 보장하려는 목적이 있습니다. 서비스 객체에서 리포지토리를 final로 선언하는 것처럼 컨트롤러에서 사용하는 서비스나 리포지토리에서도 final로 선언하는 것은 좋은 방법입니다. 이는 객체의 상태가 예기치 않게 변경되지 않도록 막으며, 코드의 안정성을 높일 수 있습니다.

Spring Framework에서 final 키워드를 사용한 생성자 주입 방식은 의존성 주입 시 가장 권장되는 방법 중 하나입니다. 이는 컴파일 시점에 주입된 객체가 변경되지 않음을 보장할 수 있으며, 코드의 유지보수와 안정성을 높이는 데 도움이 됩니다.

따라서, 다른 레이어에서도 마찬가지로 의존하는 객체들을 final로 선언하면 더욱 안정적인 애플리케이션 설계에 도움이 됩니다.

도움이 되셨길 바랍니다. 추가적인 질문이 있으시면 언제든지 문의해주세요!

Image URL: 서비스와 기능 설계의 예

Origin URL: Spring Boot Reference Documentation

주니어 개발자가 더 나아가기 위한 조언을 부탁 드려도 될까요?

0

89

1

Repository 인터페이스 위치

0

71

1

Rest API - 많이하는 실수 에서 복수형

0

402

1

패키지 구조에 대한 질문

0

131

1

의존성 주입에서 파라미터 주입과 필드 주입 관련 질문 드립니다.

0

183

1

강의내용 중 Fake Repository 질문

0

284

1

변하는 값을 추상화 시켜라

0

306

1

외래키를 지양하라는 질문에 대한 궁금증

0

2995

2

안녕하세요 아랫분 질문에 서 궁금한점이 있어서 질문드립니다

0

452

2

@Entity != RDB Table에 대한 질문입니다.

1

496

2

의존성조언에서 UserService의 login은 Clock에 의존하는지 모르지 않나요?

0

462

2

MySQL 사용에 대한 조언 질문있습니다.

0

865

2

강의와 크게 상관은 없지만 공부의 방향성에 대해서 질문합니다.

1

635

2

진짜 객체지향과 테스트하기 쉬운 코드를 위헤서는 jpa가 의미없는게 아닌가하는 생각이 들어요

2

1855

2

c. Collection,Map 질문

1

536

2

fake Repository로 테스트를 진행하려고 합니다,

1

1175

3

DB 엔티티와 도메인 분리

3

4700

2

도메인 객체 질문

1

582

2

Controller / application Service / Domain 의 역할 구분

1

1413

2

테스트 하기 쉬운 코드에서 테스트의 범위?

1

675

2

스프링에서 서비스 레이어(Apllication Layer) 테스트에 대한 질문입니다.

2

895

2

Repository 대신 Reader / Writer 사용 질문있습니다!!

1

709

2

ProductService부분에서 리팩토링 언급 질문

1

387

2

IoC != DI에 대한 질문입니다.

1

833

2