전체 글 493

[NetWork] SPA와 MPA

SPA란? SPA 작동방식 SPA(Single Page Application)는 모던 웹의 패러다임이다. SPA는 단일 페이지로 기존의 서버 사이드 렌더링과 비교할 때, 배포가 간단하며 네이티브 앱과 비슷한 사용자 경험을 제공한다는 장점이 있다. SPA는 웹 앱에 필요한 모든 정적 리소스를 처음에 한번 다운로드한다. 페이지 간 이동 시, 페이지 갱신에 필요한 데이터만을 JSON으로 전달받아 페이지를 갱신하므로 전체적인 트래픽을 감소할 수 있고, 전체 페이지를 다시 렌더링하지 않고 변경되는 부분만을 갱신하므로 새로고침이 발생하지 않아 네이티브 앱과 유사한 사용자 경험을 제공할 수 있다. 이런 특징들은 SPA가 모바일 웹에 최적화 된 이유이기도 하다. 속도, 사용성, 반응성의 향상으로 더 나은 사용자 경험을..

IT지식/NetWork 2022.11.09

[C#] Web 종류 net6.0기준

builder.Services.AddRazorPages(); app.MapBlazorHub(); app.MapFallbackToPage("/_Host"); MVC Model, view, Contoller 방식 고전적이지만 명확함 builder.Services.AddControllersWithViews(); app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); Razor MVVM 방식 Controller와 View가 합처져 있다. builder.Services.AddRazorPages(); app.MapRazorPages(); WebAPI View가 없는 방식 범용적으로 사용 할 수 있다. bu..

VisualStudio/C# 2022.11.07

[Mssql] Union, UnionAll, INTERSECT, EXCEPT

예제에서 사용할 테이블-- 테이블 생성CREATE TABLE Employees1 (Name NVARCHAR(50), Department NVARCHAR(50));CREATE TABLE Employees2 (Name NVARCHAR(50), Department NVARCHAR(50));-- 데이터 삽입INSERT INTO Employees1 VALUES ('Alice', 'HR'), ('Bob', 'Finance');INSERT INTO Employees2 VALUES ('Alice', 'HR'), ('Charlie', 'IT');1. UNION두 개 이상의 SELECT 쿼리 결과를 합쳐서 반환합니다.중복된 행은 제거됩니다. OR 문과 동일 컬럼의 데이터 형식과 순서가 동일해야 합니다.-- UNION 사용..

DB/Mssql 2022.11.07

[Mssql] Index

Clustered - 유일 키, 테이블에 한개만 생성 가능 - 영어사전 처럼 책의내용 자ㅔ가 순서대로 정렬 - SELECT시 유리 함. UPDATE INSERT 느림() Non - Clustered - 테이블에 여러개 생성 가능 - 색인과 같이 그냥 찾아보기 기능 - SELECT시 느림. UPDATE INSERT 유리함 --인덱스 생성 CREATE INDEX 인덱스이름 ON 테이블명(컬럼); CREATE UNIQUE INDEX 인덱스이름 ON 테이블명(컬럼); CREATE CLUSTERED INDEX 인덱스이름 ON 테이블명(컬럼); CREATE INDEX 인덱스이름 ON 테이블명(컬럼1, 컬럼2); --인덱스 삭제 DROP INDEX 테이블명.인덱스이름

DB/Mssql 2022.11.07

[Mssql] 데이터베이스 스키마 구문 DDL : Data Definition Language

-- 데이터베이스 생성 -- 참고) Schema --데이터베이스 생성 CREATE DATABASE GameDB; USE GameDB; --테이블 생성(Create), 삭제(Drop), 변경(ALTER) -- CREATE TABLE 테이블명(열이름 자료형 [DEFAULT 기본값] [NULL | NOT NULL]... --테이블 생성 CREATE TABLE accounts( accountID INTEGER NOT NULL, accountName VARCHAR(10) NOT NULL, coins INTEGER DEFAULT 0, createdTime DATETIME ); --테이블 삭제 USE GameDB; DROP TABLE accounts; --컬럼 추가 ALTER TABLE accounts ADD las..

DB/Mssql 2022.11.04

[Mssql] 집계함수 - COUNT, DISTINCT, SUM, AVG, MIN, MAX

COUNT NULL 데이터가들어가 있으면 무시한고 집계한다. 집계함수에서 (*)할 수 있는 유일한 함수 SELECT COUNT(*) AS PLAYERCOUNT FROM PLAYERS; DISTINCT(중복제거) SELECT DISTINCT birthCity FROM PLAYERS; DISTINCT와 COUNT 함께사용 할 때 아래와 같이 사용하면 COUNT가 우선 순위기 때문에 DISTINCT 적용 안됨. SELECT DISTINCT COUNT(birthCity) FROM PLAYERS; 아래와 같이 해결 해야 된다. SELECT COUNT(DISTINCT birthCity) FROM PLAYERS; AVG SELECT AVG(CASE WHEN weight IS NULL THEN 0 ELSE weight..

DB/Mssql 2022.11.04

[C#서버][방법] 배치(bat)파일 사용 방법 Main(string[] args) args 인자 값 만들기

bat파일 만드는 방법 새로 만들기 -> 메모장 생성 -> 확장자명 .bat로 변경 1. START명령어를 사용하여 exe 실행 자동화 2. exe뒤에 ../../.......은 Main(string[] args) args의 인자값을 생성하는 부분 3. XCOPY /Y GenPackets.cs "../../DummyClient/Packet" XCOPY - 파일을 복사하여 다른 폴더에 저장하기 위해사용 /Y - 이미 파일이 존재한다면 덮어쓰기 protoc.exe -I=./ --csharp_out=./ ./Protocol.proto IF ERRORLEVEL 1 PAUSE START ../../../Server/PacketGenerator/bin/PacketGenerator.exe ./Protocol.prot..

VisualStudio/C# 2022.11.01

[C#서버] 빌드 경로 AppendTargetFrameworkToOutputPath

AppendTargetFrameworkToOutputPath는 .NET 프로젝트에서 특정 타겟 프레임워크를 출력 경로에 추가할지를 제어하는 속성입니다. 이 속성은 주로 멀티타겟팅 프로젝트에서 사용되며, 여러 타겟 프레임워크별로 빌드된 출력 파일이 구별될 수 있도록 합니다.true (기본값) - 출력 경로는 bin/Debug/net6.0/ 또는 bin/Debug/net7.0/처럼 타겟 프레임워크별로 구분됩니다.false - 출력 경로는 단일 디렉터리(bin/Debug/)에 모든 빌드 파일이 저장됩니다. 멀티타겟팅 프로젝트에서 빌드 산출물이 덮어씌워질 위험이 있습니다. 단일 프레임워크 빌드:특정 타겟 프레임워크에만 빌드하는 경우, 이 속성을 false로 설정하면 출력 디렉터리가 간단해집니다.멀티타겟팅 프로젝..