개발자

라이브러리 구조 설계

2024년 06월 05일조회 77

안녕하세요. 현재 경력2년차 C# 언어 사용중입니다. 개발환경은 VS2019, .net Framework4.7.2 입니다. 코드의 재사용성을 높이고자 라이브러리 구조를 새로 설계하고있습니다. 사진처럼 각 솔루션을 생성하였고 그것을 기준으로 git 관리를 진행하고있습니다. 각 프로젝트는 C# 클래스 라이브러리입니다. 가장 기본이되는 common 내부에 c++ dll 이 존재하기 때문에 다른 솔루션들에서 사용시 기존프로젝트를 불러온 후 참조를 진행하고있습니다. 이 방식은 MyReleaseProject를 빌드할 경우 자동으로 c++ dll도 복사가 된다는 장점이 존재합니다. 하지만 직접 참조를 진행해야하는 프로젝트들이 점점 많아지는 단점이 존재합니다. 선배 개발자님들께서는 이럴때 어떤식으로 설계를 진행하시는지 궁금합니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

김상기님의 프로필 사진

저는 1.5년차 개발자이고 C#, VS 2022 쓰면서 솔루션 개발 하는 중입니다. 계층을 나누어서 참조되게끔 하는건 유지/보수 측면에서 용이하다고 생각합니다! 저도 혼자 솔루션 만들 때 위 사진과 같이 공통 > 주요클래스 > ... 이런 순으로 참조시켜서 만들었어요 개인적인 견해로 규모가 작은 솔루션에 과도한 분리를 하게되면 피로도가 있을 수 있다는 점이...

profile picture

익명

작성자

2024년 06월 07일

원래 git flow 방식으로 버전관리까지 진행하려했지만 규모가 작은데 너무 복잡해질까봐 일단은 저렇게만 진행하고있어요 과도한 분리는 스트레스를 유발해요 ㅜ

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 06월 05일

안녕하세요! 가장 기본이 되는 common 프로젝트와 그걸 참조하는 여러 프로젝트들의 관리에 대한 변경을 고려하고 계신 거군요. 먼저, NuGet 패키지를 만드는 방법을 추천드립니다. .NET에서는 NuGet을 통해 의존성을 관리하고, 재사용 가능한 코드 라이브러리를 배포하는 것이 일반적입니다. 이렇게 해서 common 프로젝트를 NuGet 패키지로 만들면, 다른 프로젝트들에서 쉽게 참조할 수 있으며 동시에 c++ dll도 패키징되어 전달됩니다. 두번째로, 프로젝트 구조 자체를 리팩토링하는 방안도 고려해 볼 수 있습니다. 예를 들어 모든 공통 라이브러리를 하나의 솔루션으로 합치거나 (common, library1, library2 등), 그 반대로 각각의 솔루션으로 분리할 수도 있습니다. 하지만 이 경우에는 모든 변경이 한 곳에서 관리된다는 장점과 trade-off 로서 범위가 넓어진다는 단점이 있습니다. 세번째로, 필요하다면 CI/CD 파이프라인 설정을 통해 각 프로젝트의 빌드 시 c++ dll의 복사를 자동화할 수 있습니다. 이 방법은 처음 설정이 복잡하거나 프로젝트 관리 툴에 익숙하지 않다면 어려울 수 있습니다. 위 3가지 방안 중에서 가장 적합한 것을 선택해보세요. 제 개인적인 생각으로는 NuGet 패키지를 만드는 것이 가장 직관적이며 .NET 환경에 잘 맞을 것 같습니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!