Sunuer

Sunuer Manage Sunuer Easy 주변
프로젝트 소개

프로젝트 구조


SunuerManage ├─ appsettings.json # 애플리케이션 설정 파일, DB 연결 문자열 및 기타 설정 포함 ├─ bin # 컴파일된 바이너리 파일 디렉터리 │ ├─ Debug # 디버그 모드 컴파일 출력 │ └─ Release # 릴리스 모드 컴파일 출력 ├─ Code # 비즈니스 로직 및 데이터 액세스 레이어 코드 │ ├─ Admin # 관리자 관련 비즈니스 로직 │ │ ├─ AdminDal.cs # 관리자용 데이터 액세스 레이어 │ │ ├─ AdminModel.cs # 관리자 데이터 모델 │ │ ├─ AdminPowerDal.cs # 관리자 권한 데이터 액세스 레이어 │ │ ├─ AdminPowerModel.cs # 관리자 권한 데이터 모델 │ │ ├─ AdminRolesDal.cs # 관리자 역할 데이터 액세스 레이어 │ │ └─ AdminRolesModel.cs # 관리자 역할 데이터 모델 │ ├─ Articles # 기사(글) 관련 비즈니스 로직 │ │ ├─ ArticleCategoryDal.cs # 기사 카테고리 데이터 액세스 레이어 │ │ ├─ ArticleCategoryModel.cs # 기사 카테고리 데이터 모델 │ │ ├─ ArticlesDal.cs # 기사 데이터 액세스 레이어 │ │ └─ ArticlesModel.cs # 기사 데이터 모델 │ └─ ManageSet # 관리 설정 관련 비즈니스 로직 │ └─ ManageSetModel.cs # 관리 설정 데이터 모델 ├─ Controllers # 컨트롤러(API), HTTP 요청을 처리 │ ├─ Admin # 관리자 관련 컨트롤러 │ │ ├─ AdminController.cs # 관리자 컨트롤러 │ │ ├─ AdminPowerController.cs # 관리자 권한 컨트롤러 │ │ └─ AdminRolesController.cs # 관리자 역할 컨트롤러 │ ├─ Articless # 기사(글) 관련 컨트롤러 │ │ ├─ ArticleCategoryController.cs # 기사 카테고리 컨트롤러 │ │ └─ ArticlesController.cs # 기사 컨트롤러 │ ├─ Files # 파일 관련 컨트롤러 │ │ ├─ CaptchaController.cs # CAPTCHA 컨트롤러 │ │ ├─ FilesController.cs # 파일 업로드 컨트롤러 │ │ └─ QRCodeController.cs # QR 코드 생성 컨트롤러 │ └─ ManageSets # 관리 설정 관련 컨트롤러 │ └─ ManageSetController.cs # 관리 설정 컨트롤러 ├─ Data # 데이터 액세스 레이어 및 DB 컨텍스트 │ ├─ ApplicationDbContext.cs # DB 컨텍스트, DB와 상호작용 │ └─ SunuerManage.sql # DB 스크립트 파일(백업/복원) ├─ Pages # Razor 페이지(프론트엔드 표시용) │ ├─ About.cshtml # "About" 페이지 │ ├─ Cases.cshtml # 케이스(사례) 페이지 │ ├─ Contact.cshtml # 연락처 페이지 │ ├─ Error.cshtml # 오류 페이지 │ ├─ Index.cshtml # 메인 페이지 │ ├─ News.cshtml # 뉴스 페이지 │ ├─ newsview.cshtml # 뉴스 상세 페이지 │ ├─ Manage # 관리자 백엔드 페이지 │ │ ├─ Admins # 관리자 관리 페이지 │ │ │ ├─ AdminAdd.cshtml # 관리자 추가 페이지 │ │ │ ├─ AdminEdt.cshtml # 관리자 수정 페이지 │ │ │ ├─ AdminList.cshtml # 관리자 목록 페이지 │ │ │ ├─ AdminPassWord.cshtml # 관리자 비밀번호 변경 페이지 │ │ │ ├─ AdminPowerAdd.cshtml # 관리자 권한 추가 페이지 │ │ │ ├─ AdminPowerEdt.cshtml # 관리자 권한 수정 페이지 │ │ │ ├─ AdminPowerList.cshtml # 관리자 권한 목록 페이지 │ │ │ ├─ AdminRolesAdd.cshtml # 관리자 역할 추가 페이지 │ │ │ ├─ AdminRolesEdt.cshtml # 관리자 역할 수정 페이지 │ │ │ ├─ AdminRolesList.cshtml # 관리자 역할 목록 페이지 │ │ │ ├─ Adminview.cshtml # 관리자 상세 페이지 │ │ ├─ admin_index.cshtml # 관리자 백엔드 메인 페이지 │ │ ├─ Agreement.cshtml # 사용자 약관 페이지 │ │ ├─ Articless # 기사(글) 관리 페이지 │ │ │ ├─ ArticleCategoryAdd.cshtml # 기사 카테고리 추가 페이지 │ │ │ ├─ ArticleCategoryEdt.cshtml # 기사 카테고리 수정 페이지 │ │ │ ├─ ArticleCategoryList.cshtml # 기사 카테고리 목록 페이지 │ │ │ ├─ ArticlesAdd.cshtml # 기사 추가 페이지 │ │ │ ├─ ArticlesEdt.cshtml # 기사 수정 페이지 │ │ │ ├─ ArticlesList.cshtml # 기사 목록 페이지 │ │ ├─ consoles # 콘솔 페이지 │ │ │ ├─ console.cshtml # 콘솔 페이지 │ │ ├─ Login.cshtml # 로그인 페이지 │ │ ├─ LoginOut.cshtml # 로그아웃 페이지 │ │ └─ ManageSets # 관리 설정 페이지 │ │ ├─ ManageSetEdt.cshtml # 관리 설정 수정 페이지 │ ├─ Shared # 공용 뷰 및 레이아웃 │ │ ├─ Menu.cshtml # 메뉴 뷰 │ │ ├─ _indexLayout.cshtml # 메인 페이지 레이아웃 │ │ ├─ _Layout.cshtml # 기본 레이아웃 │ │ ├─ _ManageIndexLayout.cshtml # 관리자 백엔드용 레이아웃 │ │ └─ _ValidationScriptsPartial.cshtml # 유효성 검사 스크립트 파셜 뷰 │ ├─ _ViewImports.cshtml # 뷰 임포트 파일(네임스페이스 정의) │ └─ _ViewStart.cshtml # 뷰 시작 파일(레イ아웃 설정) ├─ Tools # 유틸리티 클래스 │ ├─ ApiResponse.cs # API 응답 유틸 클래스 - 통일된 API 응답 포맷 │ ├─ CBC.cs # 암호화/복호화 유틸 클래스 │ ├─ ConfigurationHelper.cs # appsettings.json에서 설정 값을 가져오는 클래스 │ ├─ DataTableToList.cs # DataTable -> List 변환 유틸 │ ├─ DBHelper.cs # DB 헬퍼 클래스 │ ├─ JsEncryptHelper.cs # JS 암호화 헬퍼 클래스 │ └─ Tools.cs # 범용 유틸 클래스 ├─ wwwroot # 정적 리소스 파일 │ ├─ css # CSS 스타일 │ ├─ favicon.ico # 사이트 아이콘 │ ├─ images # 이미지 리소스 │ ├─ js # JavaScript 파일 │ └─ Uploadfile # 업로드된 파일 디렉터리 ├─ Program.cs # 애플리케이션 진입점 ├─ Properties # 프로젝트 속성 │ ├─ launchSettings.json # 실행 설정 파일 │ └─ PublishProfiles # 배포 프로필 │ ├─ FolderProfile.pubxml # 폴더 배포 프로필 │ └─ FolderProfile.pubxml.user # 사용자 전용 폴더 배포 프로필 ├─ Sunuer Manage Disclaimer (Read Carefully).txt # 프로젝트 면책 조항 파일
├─ SunuerManage.csproj # 프로젝트 파일(설정 및 종속성 관리) ├─ SunuerManage.csproj.user # 사용자 전용 프로젝트 설정 파일 ├─ SunuerManage.sln # 솔루션 파일(프로젝트 구조 및 설정 포함)



구성 파일 launchSettings.json



{ "$schema": "http://json.schemastore.org/launchsettings.json", "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:32430", //http://localhost:32430,애플리케이션이 해당 주소를 통해 접근함을 의미합니다. "sslPort": 0 } }, "profiles": { "http": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "http://localhost:5021", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" //Development: 개발 환경. Staging: 스테이징(사전 배포) 환경. Production: 운영(프로덕션) 환경. } }, "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } }


구성 파일 appsettings.json

"ConnectionStrings": {
  "DefaultConnection": "Server=nhdSQLEXPRESS;Database=SunuerManage;User Id=sa;Password=123456;MultipleActiveResultSets=true;TrustServerCertificate=True;Max Pool Size=100;Min Pool Size=5;Pooling=true;"
},

Server=nhd/SQLEXPRESS: 연결하려는 데이터베이스 서버 및 인스턴스 이름 지정.

Database=SunuerManage: 연결할 기본 데이터베이스 이름 지정.

User Id=sa; Password=123456: SQL Server에 로그인하기 위한 인증 정보(계정명 및 비밀번호).

MultipleActiveResultSets=true: 동일한 데이터베이스 연결(세션)에서 여러 데이터 읽기 작업을 동시에 수행할 수 있도록 허용. 예: 한 쿼리가 데이터를 읽는 동안, 다른 쿼리를 동시에 실행 가능. 특히 Entity Framework 사용 시, 하나의 연결에서 반복적으로 데이터를 읽으면서 다른 작업을 수행하려면 이 옵션이 true여야 지원됨.

TrustServerCertificate=True: TLS/SSL 암호화 연결로 SQL Server에 접속할 때, 서버가 제공하는 인증서를 신뢰할지 여부 설정. True로 설정하면 인증서가 신뢰할 수 있는 CA에 의해 서명되지 않았거나 다른 검증 문제가 있어도 연결을 강제로 신뢰하고 암호화 연결을 맺음. 보안 유의사항: 프로덕션 환경에서 자체 서명 인증서나 공식 신뢰 기관에 등록되지 않은 인증서를 사용하는 경우, 연결은 가능하지만 보안 위험이 있을 수 있으므로 실제 상황에 맞추어 신중히 구성해야 함.

Max Pool Size=100; Min Pool Size=5; Pooling=true: 데이터베이스 연결 풀(Connection Pool)의 동작을 제어함.

Pooling=true: 연결 풀 활성화. 애플리케이션에서 데이터베이스를 자주 액세스할 때 성능을 높이고, 매번 연결을 열고 닫는 오버헤드를 줄임.

Max Pool Size=100: 풀에 유지될 수 있는 유휴 연결의 최대 개수. 이 개수를 초과하면 새 연결 요청은 기존 연결이 해제되기를 기다리거나 설정에 따라 예외를 발생시킴.

Min Pool Size=5: 풀에서 유지될 최소 유휴 연결 수. 애플리케이션이 처음 DB에 연결할 때 5개의 연결을 미리 생성해 두어 이후 요청에 빠르게 대응할 수 있도록 함.