Web/.Net

ASP.NET 프로젝트 구조와 Spring 프레임워크와의 비교

yebin0322 2025. 3. 26. 12:02
반응형

  • .NET 프로젝트는 기본적으로 Spring MVC와 비슷한 구조를 가짐

ASP.NET

  • C#과 같은 .NET 언어를 사용하여 웹 애플리케이션 개발
  • MS에서 제공하는 웹 애플리케이션과 웹 서비스를 개발할 수 있는 프레임워크

Properties(프로퍼티)

  • .NET 프로젝트에서 자동 생성됨
  • AssemblyInfo.cs 같은 메타데이터를 담고 있는 파일들이 위치
  • 역할 : 애플리케이션의 비전, 이름, 저자 등의 정보를 담고 있음
  • Spring에서의 src/main/resources
  • Spring 프로젝트에서 메타데이터는 주로 application.properties나 application.yml 파일에서 관리

2. References(참조)

  • 프로젝트에서 사용하는 외부 라이브러리 및 참조된 어셈블리들을 관리
  • 역할 : 외부 라이브러리나 다른 프로젝트 간의 의존성 관리
  • Spring에서의 pom.xml이나 build.gradle
  • Spring에서는 Maven이나 Gradle을 사용해 의존성 관리를 하며, pom.xml이나 build.gradle 파일에 라이브러리 의존성 선언

3. App_Data

  • 데이터 파일이나 애플리케이션에서 사용하는 DB 파일들이 위치하는 폴더
  • 역할 : DB 파일, XML 파일 등 애플리케이션의 데이터 관련 파일들이 저장됨
  • Spring에서의 resources 디렉토리
  • Spring에서는 DB 연결 설정을 application.properties에서 하거나, JPA를 사용하여 엔티티 클래스를 생성하고 application.yml에서 연결 설정을 함

4. App_Start

  • 애플리케이션 시작 시 설정 및 초기화를 담당하는 클래스들이 위치하는 폴더
  • 역할 : 애플리케이션 초기화 설정, 라우팅 설정, 필터 설정 등 관리
  • Spring에서 @Configuration을 사용하여 설정 클래스를 정의하고, JavaConfig나 XML을 사용하여 설정을 관리하는 부분
  • Spring에서 @Configuration, Spring Boot에서의 @SpringBootApplication을 통한 초기화 작업

5. Content

  • CSS, 이미지, 폰트, JS 파일 등 애플리케이션의 정적 파일들이 위치하는 폴더
  • 역할 : 스타일시트(CSS), 이미지, 폰트, 정적 자원 파일들 저장
  • Spring에서의 src/main/resources/static 또는 src/main/resources/public 디렉토리
  • Spring에서는 static 폴더에서 정적 파일을 제공하며, application.properties에서 이를 설정할 수 있음

6. Controllers

  • ASP.NET MVC에서 사용되는 컨트롤러 클래스들이 위치하는 곳
  • HTTP 요청을 받아 처리하고, 적절한 뷰나 데이터 반환
  • 역할 : 사용자 요청을 처리하는 비즈니스 로직을 담고 있는 컨트롤러 클래스가 위치
  • Spring에서는 @Controller 어노테이션을 사용하여 요청을 처리하는 컨트롤러 정의
  • @Controller 어노테이션을 사용하여 HTTP 요청을 처리하는 클래스들, 그리고 @RequestMapping 등을 사용하여 URL 매핑 설정

7. Models

  • 애플리케이션에서 사용하는 데이터 모델 클래스들이 위치하는 곳
  • DB table과 매핑되는 엔티티 클래스가 들어감
  • 역할 : DB와 매핑되는 모델 클래스가 위치
  • Spring에서는 주로 @Entity 어노테이션을 사용하여 모델 클래스를 정의하고, DB와 매핑
  • Spring에서는 주로 JPA를 사용하여 entity class를 정의하고, @Entity, @Id 등을 사용하여 DB와의 매핑 설정

8. Scripts

  • JavaScript 파일들이 위치하는 폴더
  • jQuery, Angular, Vue.js 등의 JS 라이브러리가 관리됨
  • 역할 : 클라이언트 사이드에서 사용할 JS 파일들 위치
  • Spring에서의 src/main/resources/static/js 폴더
  • Spring에서는 JS파일을 static 폴더에 배치하고, 필요한 경우 JS 프레임워크와 라이브러리 사용

9. Views

  • 사용자에게 보여줄 HTML 콘텐츠를 담고 있는 Razor 뷰 파일들이 위치하는 폴더
  • 역할 : 웹 페이지에서 사용자에게 출력할 뷰 템플릿이 위치
  • Spring에서는 src/main/resources/templates 폴더에 Thymeleaf 또는 JSP 파일들이 위치

10. favicon.ico

  • 브라우저 탭에 표시되는 아이콘 파일
  • Spring에서는 static 폴더에 favicon.ico 파일을 두어 브라우저에서 표시될 아이콘을 관리

11. Global.asax

  • 애플리케이션의 전역 이벤트(애플리케이션 시작, 종료, 오류 처리 등)를 처리하는 파일
  • 역할 : 애플리케이션의 전역 이벤트를 처리
    • 애플리케이션 시작 시 필요한 초기화 작업
  • Spring에서는 web.xml 또는 ServletInitializer 클래스를 통해 애플리케이션의 초기화 및 전역적인 설정을 함

12. packages.config

  • NuGet 패키지 관리 파일로, 프로젝트에서 사용하는 외부 패키지들에 대한 정보를 관리
  • 역할 : NuGet 패키지 의존성 정보를 관리
  • Spring에서는 의존성 관리 도구로 Maven이나 Gradle을 사용

13. Web.config

  • ASP.NET 애플리케이션의 설정 파일
  • 보안 설정, 데이터베이스 연결 문자열, 애플리케이션 설정 등을 담고 있음
  • 역할 : 애플리케이션의 설정과 환경 설정을 관리
  • Spring에서는 application.properties 또는 application.yml파일을 사용하여 환경을 설정
반응형