inflearn logo
강의

講義

知識共有

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

SpringのOOPとアンチパターン: Transaction script

패키지 구조에 대한 질문

131

작성자 없음

投稿した質問数 0

0

요즘 가장 많이 쓰는 패키지 구조가 있죠. 아래와 같이 레이어끼리만 모아둔

image.png

과연 이것이 좋은 패키지 구조일까요? 더 좋은 코드를 위해 추천하는 패키지 구조나 레퍼런스가 있는지 여쭤보고 싶습니다.

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

回答 1

0

communityai8509

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

패키지 구조에 대한 고민은 많은 개발자들이 마주하는 도전 과제 중 하나입니다. 설명하신 바와 같이 레이어별로 패키지를 분리하는 방식은 전통적으로 많이 사용되어 왔습니다. 이는 각 기능을 모듈화하여 관리하기 쉽게 만들어 주지만, 때로는 복잡성이 커지면서 불편함을 초래할 수도 있습니다.

더 나은 패키지 구조를 위해 다음과 같은 전략을 고려해 보세요:

  1. 기능 중심의 패키지 구조(Feature-based Structure): 기존의 레이어 중심 구조 대신, 관련 기능 중심으로 패키지를 구성합니다. 즉, 같은 기능을 수행하는 모든 컴포넌트(Controller, Service, Repository 등)를 하나의 패키지에 모아두는 것입니다. 이렇게 하면 특정 기능에 대한 모든 코드를 한 곳에서 관리할 수 있어, 개발과 유지보수에 도움이 됩니다.

  2. 핵사고날 아키텍처(Hexagonal Architecture): 외부 인터페이스와 내부 비즈니스 로직을 잘 분리하여 테스트 가능하고 확장 가능한 구조를 만듭니다. 각 레이어는 명확한 역할을 가지며, 의존성 주입을 통해 유연한 구조를 만들어주기 때문에 이 점에서는 간편한 확장이 가능합니다.

  3. 도메인 중심 구조(Domain-driven Structure): 도메인 개념을 기반으로 코드를 구조화합니다. 이는 특히 복잡한 비즈니스 로직을 가진 프로젝트에서 유용하며, 코드를 비즈니스 언어로 표현함으로써 가독성과 유지보수성을 높일 수 있습니다.

관련해서 Java/Spring에서 OOP와 안티 패턴 : Transaction script를 참고하시면, 설계와 관련하여 더 깊이 있는 이해를 도울 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

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

0

89

1

Repository 인터페이스 위치

0

71

1

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

0

402

1

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

0

159

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