부서 구조나 파일 구조 같은 것들을 표시할 때 많이 사용하는 것이 트리구조입니다. 윈도우의 파일 탐색기를 보면 트리구조로 되어 있습니다. 웹에서 이런 UI를 구현하는 라이브러리는 엄청 많습니다. 자기에게 맞는 라이브러리를 찾아서 사용하면 됩니다. 이 포스팅에서는 'jsTree'를 'ASP.NET Core'와 같이 사용하여 봅시다. (참고 : jsTree - 공식 사이트 ) 1. 프로젝트 준비 프로젝트는 'ASP.NET Core 2.2', 'WebAPI' 생성합니다. 아랫글을 참고해 'index.html'을 시작 페이지로 설정해 줍니다. (참고 : [ASP.NET Core] 빈 프로젝트 세팅 (1) - 'index.html'을 시작페이지로 설정하기) 'index.html'를 아래와 같이 작성합니다. jsT..
비트 연산을 하면 한 변수에 여러 옵션을 넣었다 뺐다 하는 효과를 줄 수 있습니다. 이 비트 연산을 열거형 맴버로 한다면 직관적으로 특정 옵션이 들어 있는지 확인하는 것이 가능하죠. 많은 언어가 열거형 맴버를 비트 연산에 활용할 수 있습니다. 닷넷(.Net)에서 어떻게 사용하는지 알아봅시다. 연관글 영역 1. 원리 이해하기 비트 연산의 원리를 간단하게 알아봅시다. 열거형 멤버의 비트 연산은 선언된 값의 합이 다른 멤버의 값과 절대로 겹치지 않는다는 것을 전제로 진행됩니다. (참고 : MSDN - 열거형 디자인) 아래와 같이 열거형 멤버를 선언합니다. /// /// 권한1 옵션 /// public enum Auth1Type { None = 0 , Opt0 = 1 , Opt1 = 2 , Opt2 = 4 , ..
DB를 먼저 작성하거나 다른 프로젝트에 의해 생성된 DB를 사용하는 경우 DB 퍼스트(DB First) 방식을 사용합니다. 연관글 영역 프로젝트는 'ASP.NET Core 2'로 구성되어 있습니다. 이 프로젝트는 sqlite를 기준으로 작성되었습니다. 1. 왜 DB 퍼스트를 사용하는가? 전통적으로 프로젝트가 진행되면 DB를 먼저 만들고 시작했습니다. 예정에는 여기에 직접 쿼리를 날리거나 DBA가 만들어놓은 프로시저를 호출해서 사용했죠. EF(Entity Framework)와 같은 ORM(Object-Relational Mapping) 프레임웍들이 생기면서 모델을 만들어 접근하는 방식을 사용하기 시작합니다. 그렇다면! 기존 방식을 사용하는 프로젝트는 EF를 어떻게 연결하느냐? 이미 만들어져있는 DB의 정보..
'ESXi'의 버추얼 머신(Virtual Machine)을 옮기려면 백업파일을 받아야 합니다. 'ESXi'에서 버추얼 머신 백업(backup)하면 다운로드할 수 있습니다. 이 방식으로 버추얼 머신을 백업하고 복원하는 방법을 알아봅시다. 0. OVF 툴 설치하기 'VMware OVF Tool'을 사용해도 되고 웹상에서 해도 됩니다. 만약 OVF Tool을 사용할 예정이라면 설치해야 합니다. wmware 사이트에서 로그인하면 다운로드할 수 있습니다. (참고 : VMware - VMware Open Virtualization Format Tool 4.3.0 ) 자신의 운영체제에 맞는 버전을 다운받으시면 됩니다. 다운받은 OVF 툴을 설치해줍니다. 백업받을 폴더를 생성해 줍니다. ( 이 포스팅에서는 'F:\ba..
닷넷 코어를 쓰고 나서부터........API결과는 'camelCase'로 온다고 느끼고 있었습니다. 이걸 'PascalCase'로 바꿔 봅시다. 1. 카멜케이스(camelCase)와 파스칼케이스(PascalCase) 코드 표기법에는 여러 가지가 있는데 그중 많이 쓰는 것이 카멜케이스(카멜표기법)와 파스칼케이스(파스칼표기법)입니다. 파스칼케이스는 단어를 대문자로 시작하고 붙여 씁니다. 예> PascalCase 카멜케이스는 파스칼케이스에 첫 대문자만 소문자로 표시합니다. 예> camelCase 2. C#에서는.... 그런데 C#의 네이밍 규칙의 기본은 파스칼케이스입니다. 그런데 API에서 모델을 결과로 전달하면 카멜케이스로 넘어옵니다. 3. 파스칼케이스로 바꾸기 필요한 부분만 바꾸는 방법과 전체를 기본 정..
가상디렉토리에 프로젝트를 만들어서 올렸더니 HTTP Error 500.0 - ANCM In-Process Handler Load Failure 1. 오류 상황이게 무조건 발생하는 것은 아니고 닷넷 코어 2.2이상을 사용 시 가상디랙토리 사용 시 특정 상황에서 발생합니다. 'InProcess'는 IIS 응용프로그램 풀에서 동작합니다.(참고 : Rick Strahl님 블로그 - ASP.NET Core In Process Hosting on IIS with ASP.NET Core )'InProcess'를 사용하고 있을때 'dotnet.exe'에서 사용하려고 하면 발생한다고 합니다. 일반적인 상황에서는 'InProcess'를 권장한다고 합니다. 2. 해결 방법간한 하게 'web.config'에서 'hosting..
깃을 사용하다 보면 종종 보는 오류입니다.어떤 오류이고 어떻게 해결하는지 알아보도록 하죠. 1. 오류 내용프로젝트를 생성하고 첫 푸시를 했는데 아래와 같은 에러가 났습니다. Git failed with a fatal error.Unable to process path OAuth2Sample/.vs/OAuth2Sample/v16/Server/sqlite3/db.lockCannot save the untracked files 2. 원인'.vs'폴더를 깃에 추가하면 발생하는 오류입니다.(그 외에 이 에러를 내는 폴더나 파일이 있는지는 모르겟습니다.) 3. 해결 방법'.vs'폴더를 제외 폴더에 추가합시다.(참고 : [Visual Studio Git] 깃(Git)에 올리지 말아야 할 파일 제외 하는 방법 - gi..
소스관리 시스템을 사용하면서 꼭 필요한 기능이 필요 없는 파일은 동기화시키지 안는 겁니다. C#의 경우 'bin'폴더와 'obj'폴더는 올리면 안 되죠. 비주얼 스튜디오의 깃 기능에서 파일을 동기화 제외할 파일을 설정해 봅시다. 연관글 영역 1. '.gitignore'파일 생성 팀 탐색기 > 제목 줄 클릭 > 설정 > 리포지토리 설정 > 무시 파일 > 편집 을 누르면 '.gitignore'파일이 생성됩니다. 여기에 .vs/ .bin/ .obj/ 를 추가해 줍니다. 이외에도 제외해야 할 파일이 있으면 제외해 줍니다. '.gitignore'용 템플릿 사용자들이 미리 만들어둔 '.gitignore'를 받아서 수정하는 것도 방법입니다. toptal.com에서 자신의 IDE나 프로젝트에 맞게 검색하여 파일을 생성..
깃(Git)은 기본적으론 명령프 롬프트를 이용하여 명령어를 날려 사용합니다. GUI툴도 있긴 있습니다. 하지만 친MS인 저는 비주얼 스튜디오(Visual Studio)를 이용합니다! 비주얼 스튜디오로 깃을 사용하는 간단한 방법을 알아봅시다. 연관글 영역 * Visual Studio 2019 기준입니다. * 1. 주의 사항 깃은 기존의 소스관리 시스템과 구조가 좀 다릅니다. 보통 소스 관리 시스템이라고 하면 서버 클라이언트 구조로 그때그때 서버에 접속해서 소스를 동기화시키고 수정한 소스를 업로드 하는 방식으로 관리를 하게 되죠. 깃은 커밋을 하면 로컬저장소에 올라가고 이것을 서버에 푸시하여 동기화시키는 방식을 사용합니다. 이렇게 되면 오프라인에서도 자유롭게 소스관리 시스템을 이용할 수 있고 서버에 부하도 ..
깃허브(GitHub)나 깃랩(GitLab)에 연동하는 방법은 똑같습니다. 뭐.....다른 서비스나 직접 구축한 깃서버도 결국 같은 방법으로 연동하면 됩니다. 연관글 영역 * Visual Studio 2019 기준입니다. * 1. 저장소 생성 먼저 원하는 이름으로 저장소를 생성해야 합니다. 이 포스팅은 각 서비스를 설명하는 것이 아니므로 대충 넘어갑니다. ㅎㅎㅎ 1-1. 깃허브 저장소 생성 깃허브 저장소를 생성합니다. 1-2. 깃랩 저장소 생성 깃랩에 저장소를 생성합니다. 2. 저장소 주소 복사 각 서비스에는 깃 저장소 클론(Clone)기능이 있습니다. 깃랩은 클론 버튼을 눌러 'Clone With HTTPS' 주소를 복사한다. 3. 프로젝트 생성 및 연결 이미 프로젝트가 생성되어 있으면 또 만들 필요는 ..