반응형 분류 전체보기97 .NET CORE 백엔드 개발 (4) - Service간 참조 서비스 참조클린 아키텍처를 적용하며 가장 헷갈렸던 부분 중 하나가 service간 참조가되는 상황에서의 코드 작성이다. 외부와 연결이 되지 않아 Repository로 만들수는 없고, 이미 다른 서비스에 구현되어 있는 코드를 다시 새로운 서비스에 구현하는 것도 비효율적인 것 같았다. 구글링을 해보니 Spring에서는 이런 경우 컨트롤러에서 각 서비스들을 호출서비스들을 호출하는 UseCase 활용 / 상위 Service를 만들어 통합이 가장 많이 고려되는 방법이었다. 하지만 컨트롤러에서 각 서비스들을 호출하는 방법은 clean architecture의 철학과 맞지 않다고 생각된다. Controller에서 여러 Service를 호출하게 되면, 여러 서비스 호출 시 한 서비스에서 오류가 발생 했을 때, 다른 서.. 2025. 10. 24. .NET CORE 백엔드 개발 (3) - 에러 핸들링 에러 핸들링 애플리케이션을 운영하다 보면 예외(Exception)는 피할 수 없다. 단순한 에러부터 비즈니스 로직에 따른 예외까지, 예외가 발생했을 때 이를 일관된 방식으로 처리하지 않으면 유지보수성, 사용자 경험, 보안 측면에서 모두 문제가 생긴다.특히 Clean Architecture에서는 Application, Domain, Infrastructure 등 레이어가 나뉘어 있기 때문에, 예외 처리 로직을 각 레이어에 흩뿌려두는 것은 적합하지 않다.따라서 전역(Global) 에러 핸들링 미들웨어를 통해 예외를 한 곳에서 모아 관리하는 것이 효율적일 것이다. 글로벌 에러 핸들링의 필요성일관성: 클라이언트는 항상 정해진 포맷으로 에러 응답을 받을 수 있음.보안성: 스택 트레이스나 내부 DB 정보가 그대로 .. 2025. 10. 5. .NET CORE 백엔드 개발 (2) - 로그 시스템 만들기 로그 시스템 만들기 백엔드 개발에서 로그(logging)는 단순한 기록이 아니라, 시스템을 운영하고 개선하는 핵심 도구이다. 로그를 통해 얻을 수 있는 효과는 다음과 같다.1. 문제 진단 및 디버깅운영 환경에서 발생하는 버그나 장애는 재현하기 어렵다. 이때 로그는 발생 시점의 맥락을 알려주는 단서가 된다.어떤 요청에서 오류가 발생했는지어떤 입력 값이 들어왔는지어느 지점에서 예외가 던져졌는지이러한 기록을 통해 빠르게 원인을 파악하고 문제를 해결할 수 있다.2. 성능 모니터링로그는 단순히 에러 추적용으로만 쓰이지 않고 다음의 역할도 할 수 있다.요청 처리 시간DB 쿼리 실행 시간API 호출 빈도이 같은 데이터를 통해 병목 구간을 찾고 성능 최적화 포인트를 식별할 수 있다. 3. 운영 효율성 및 간접업무 지원.. 2025. 10. 3. .NET CORE 백엔드 개발 (1) - 프로젝트 구조 만들기 .NET CORE 백엔드 개발하기신입 시절 .NET CORE 2.1로 만든 백엔드 프로젝트가 있었다. 당시 백엔드 개발을 한번도 해본적이 없는 상태에서 혼자 개발을 해야 했었는데, 슬프게도 도움을 주거나 방향을 제시해 줄 시니어도 없었다.인터넷과 유튜브를 미친듯이 찾아다니며 프로젝트를 만들어 나갔는데, 그 때는 LLM서비스들이 유행하기 전이라 참고 자료를 찾기가 매우 힘들었다. 특히 .NET은 SPRING에 비해 국내 사용자가 압도적으로 적어 영어 블로그, 영어 유튜브를 열심히 해석해야만 했다.이번에 여유가 생긴 김에 .NET CORE 2.1이라는 끔찍한 버전과 더 끔찍한 내 실력으로 버무려진 내 1호 프로젝트를 .NET9 으로 재탄생시키려고 한다. 그 김에 나 같은 .NET 초보를 위해 개발 기록을 남.. 2025. 9. 29. 이전 1 2 3 4 ··· 25 다음 반응형