diff --git a/Documents/Project RULE 10.md b/Documents/Project RULE 10.md index e1f3934..399d3b2 100644 --- a/Documents/Project RULE 10.md +++ b/Documents/Project RULE 10.md @@ -65,7 +65,15 @@ namespace Front.Program.Pages; - [C# 코드 스타일 권장 사항 (Microsoft Docs)]("https://learn.microsoft.com/ko-kr/dotnet/csharp/fundamentals/coding-style/coding-conventions")을 따른다. - 클래스, 인터페이스, 메서드, 변수, 상수 등 모든 명명 및 스타일은 위 문서를 기준으로 작성한다. - **필요**시 `.editorconfig` 파일을 통해 프로젝트 전체에 스타일 자동 적용 도구를 사용할 수 있다. - +- 작업자 이외의 제 3자에게 유출되어야 하는 데이터의 이름을 작성시에는 그 의미를 쉽게 유추 할 수 없게 영단어를 줄여서 쓴다. + 1. 단어의 조합에서 각 단어의 앞 글자는 `대문자로 시작`하고 `_ , - , 공백` 등은 사용하지 않는다. + - 예) `username`, `user-name`, `user name`→ `UserName` + 2. 단어를 줄일때는 자음에 해당하는 영문자만 사용한다. (A, E, I, O, U 는 제거) + - 예) `password` → `Pswd`, `phone number` → `PhnNmbr` + 3. 단어의 시작이 모음일 경우에는 첫 글자에 한해서만 모음을 허용한다. + - 예) `email` → `Emil`, `address` → `Adrss` + 4. 단어를 줄일때는 2글자로 하며, 단어의 길이가 2글자 이하인 경우에는 줄이지 않는다. + - 예) `user` → `Us`, `id` → `Id`, `username` → `UsNm` --- ## 3️⃣ Git 규칙 diff --git a/Documents/Publish동작.md b/Documents/Publish동작.md new file mode 100644 index 0000000..182a3d5 --- /dev/null +++ b/Documents/Publish동작.md @@ -0,0 +1,24 @@ +# Front 웹 개발 후 서버 배포 방법 (Local) +## 1. .NET 실행 설정 프로파일 동작 +- 단순하게 run 하는 방식으로 `./bin/Debug/net8.0/` 밑에 프로젝트 결과가 생성된다. +- `./wwwroot` 내부에 있는 정적리소스들을 활용하여 웹 페이지를 보여준다. +- 해당 방법은 단순하게 서버에도 연결하지 않고 그냥 Front 로컬로 사용하는 방법이다. + +## 2. package.json 에서 npm 스크립트 실행 +- `dotnet publish -c Release -o ./publish` 를 실행해서 ./publish 밑에 결과물을 생성한다. + - 그런데 npm에서는 dotnet이 실행 할 수 없기에 직접 dotnet의 경로를 지정해서 해야한다. + - ./publish 폴더를 퍼블리시 동작마다 삭제를 안해주면 계속 중첩해서 추가가 되기에 일단 삭제를 하는 동작을 해줘야 한다. +- Front 프로젝트의 퍼블리시를 위해서는 Tailwind CSS 를 사용하기에 `build:css`를 먼저 실행해준다. +- 그리고 `build:publish` 를 실행하면서 `./publish` 폴더를 삭제하고 다시 퍼블리시를 한다. +- 마지막으로 생성된 `./publish/wwwroot` 폴더 안에 내용 전부를 `../AcaMate_API/publish/debug/wwwroot` 폴더에 복사한다. + +# Front 웹 개발 후 서버 배포 방법 (SERVER) +## 1. Development, Production 공통 +- `build:css` 실행을 먼저 진행을 해주고 나서 Local로 테스트를 진행한다. +- 이상 없음이 판단 되면 gitea 에 push 를 해준다. +- Jenkins 동작을 하게 될 경우 서버 저장소에 클론을 하게 된다. + - 기존에 있는 데이터는 삭제하지 않기에 만약에 충돌이 있는 경우가 있다. + - 기존 디렉터리와 비교해서 맞지 않는 코드의 경우에는 수동으로 삭제를 진행한다. + - `acamate-front-build-debug` 또는 `acamate-front-build-relase` 컨테이너를 수동으로 실행시켜 준다. +- private repository 나 따로 직접 서버에 반영을 해야 하는 리소스가 있는 경우에는 직접 넣어준다. + - `acamate-front-build-debug` 또는 `acamate-front-build-relase` 컨테이너를 수동으로 실행시켜 준다. \ No newline at end of file diff --git a/Documents/Tip.md b/Documents/Tip.md new file mode 100644 index 0000000..199a095 --- /dev/null +++ b/Documents/Tip.md @@ -0,0 +1,9 @@ +# Tip + +## JSON 파싱시 +- JSON 파싱시에 소문자로 들어오는데 이를 C#의 클래스에 맞게 넣어주기 위해서는 다음과 같은 구문을 넣어줘야지 안그러면 제대로 파싱이 되지 않는다. +- 둘 다 소문자이면 아무 상관 없을건데 여기서 소문자로 쓰면 경고가 나오니까 +```c# +var userData = JsonSerializer.Deserialize(userDataJson, +new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); +``` \ No newline at end of file diff --git a/Program.cs b/Program.cs index 7a9cf60..132e9d5 100644 --- a/Program.cs +++ b/Program.cs @@ -53,6 +53,7 @@ builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddSingleton(); +builder.Services.AddSingleton(); // 추가 // builder.Services.AddSingleton(sp diff --git a/Program/Layout/MainLayout.razor b/Program/Layout/MainLayout.razor index c0af7d5..2c64661 100644 --- a/Program/Layout/MainLayout.razor +++ b/Program/Layout/MainLayout.razor @@ -1,29 +1,44 @@ -@inherits LayoutComponentBase +@inherits LayoutComponentBase @implements IDisposable -
+ +
@* *@ + @if(isAcademy) { -
+
@if (!isIntro && UserStateService.isLogin) { - -
-
+ @*
*@ + + @*
*@ +
+ +
-
- @Body + + +
+ + +
+ @Body +
} else { -
+
@Body
} @@ -36,17 +51,17 @@ } -
+
@Body
} - - - - - -