보통 프로젝트에 투입될 때, 아무것도 없는 상태에서 A-Z 까지 다 구현하기도하지만
실무에서는 보통은 누가 짜놓은 코드 위에 새로운 기능을 추가하는 경우가 많다.
스프링 개발자로 일하며 다양한 프로젝트에 투입되었지만 투입될 때마다 기존의 프로젝트 환경을 분석하는게 쉽지 않았다.
문서로 잘 정리된 프로젝트들도 있었지만 많은 프로젝트들이 프로젝트 코드레벨까지 뜯어보지 않으면 분석하기 힘들게 되어있었다.
최근에 여유시간이 조금 생겨 강의를 챙겨봤었는데,
이 강의에서 강사님이 Spring 프로젝트를 분석하는 좋은 방법을 알려주셔 복습차원에서 내용을 정리해보려고한다.
https://zero-base.co.kr/category_dev_camp/cleancode_1book
그럼 본격적으로 포스팅해보도록하겠다.
Spring 프로젝트 분석하기
1. repository이름과 READ.MD 파일을 보고 프로젝트 파악하기
보통 프로젝트는 특정한 형상관리 툴을 이용해 프로젝트를 관리한다.
요즘은 보통 대부분의 회사들이 git 을 이용하는데 ( 오래 전에 구축된 소스코드를 관리하는 회사의 경우 svn이나 cvs를 이용하기도 한다) 프로젝트 repository의 이름과 READ.MD 파일을 보면서 해당 프로젝트의 성격을 파악해볼 수 있다.
2. 패키지의 구조 파악하기
패키지 구조를 통해 프로젝트가 어떤 구조로 설계되었는지를 파악할 수 있다.
그리고 하나의 프로젝트는 여러 개의 작은 프로젝트들을 모듈로 가져와 사용하기도 한다. 이러한 요소 역시 패키지 구조 파악을 통해 알 수 있다.
실제로 실무에서 다른 프로젝트에서도 사용할 수 있게 공통 모듈을 만들어 넣고 가져와 쓰기도 하고, 외부의 프로젝트를 필요에 따라 모듈로 가져와 쓰기도 한다.
3. 빌드 성정 파일을 보기
빌드설정 파일을 보면 어떤 dependency(모듈)을 쓰는지 확인할 수 있다.
gradle로 구축된 프로젝트라면 build.gradle을 보고 maven 으로 구촉된 프로젝트라면 pom.xml을 열어보면 된다.
4. config 패키지 내부 보기
보통 실무의 프로젝트를 보면 다양한 Configuration을 관리하는 패키지를 만들어 놓고 패키지 안에서 관리되도록 한다.
해당 패키지 내부를 통해 어떤 설정이 적용되어 있는지를 확인할 수 있다.
예를들어 RedisConfig, DatasourceConfig, KafkaProducerConfig, CircuitBreakerConfg, CacheConfig 등을 예로 들수 있다.
5. controller 패키지 내부 보기
controller 내부의 Controller 코드를 분석해보면 해당 프로젝트에서 어떤 요청을 처리하는지를 확인 할 수 있다.
6. service 패키지 내부 보기
service 내부의 Service 코드를 분석해보면 각 기능들에 대한 비지니스 로직을 파악할 수 있다.
7. resourece 하위의 db 설정 파일 보기
resouce 하위의 db 설정 파일을 통해 db 에 직접 접근하여 데이터 구조를 파악해 볼 수 있다. 내부에 schema.sql이 있다면 실제로 ddl을 읽어보면서 파악하면 이해가 더 쉽다.
8. 이미 짜여진 Test Code 보기
보통 테스트 코드는 개발자가 구현한 비지니스 로직을 확인하기 위해 사용한다. 해당 테스트 코드와 실제 비지니스로직을 비교해보면 쉽게 이해가 된다.
끝.
ref.
zero-base, 한달한권 | 클린코드 28강
'Develop > Spring' 카테고리의 다른 글
Spring Bean Scope (0) | 2021.11.02 |
---|---|
Spring Bean LifeCycle (0) | 2021.11.02 |
[Spring] JUnit5 생명 주기 정리 (0) | 2021.10.08 |
[Spring] @Transactional 정리 (0) | 2021.10.07 |
[Spring Cloud MSA] Eureka Server에서 랜덤 port 로 서비스 여러 서비스 띄우기 (0) | 2021.09.17 |
댓글