깃을 사용하다 보면 종종 보는 오류입니다.어떤 오류이고 어떻게 해결하는지 알아보도록 하죠. 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. 프로젝트 생성 및 연결 이미 프로젝트가 생성되어 있으면 또 만들 필요는 ..
코드를 먼저 작성하고 이것을 기반으로 DB를 수정하는 것이 코드 퍼스트(Code First)입니다. 코드 퍼스트가 왜 필요하고 어떻게 사용하는지 알아봅시다. 프로젝트는 'ASP.NET Core 2'로 구성되어 있습니다. 연관글 영역 1. 왜 코드 퍼스트가 필요한가? 전통적인 프로젝트-DB 관계는 DBA가 DB를 만들고 거기에 맞춰 프로그램을 만드는 형태였습니다. 그런데 장비의 가격은 낮아지고 사양은 높아지면서 점점 DB의 성능 이슈를 돈으로 때워도 큰 부담이 안 되는 시대가오게 됩니다! 그러니 프로그래머들이 임시로 DBA를 겸해서 작업하다가 성능 이슈가 발생하는 부분만(혹은 프로젝트가 시작 할 때나 끝날 때쯤) DBA가 붙어서 최적화시키는 프로세스가 정착되었습니다. DB에 맞춰 프로그램을 만들게 되면 문..
이전 포스팅까지는 'OAuth2'인증을 위해 별도의 서버를 이용하였습니다. 이렇게 되면 클라이언트에서 인증서버의 주소를 알기 때문에 인증서버를 공격을 할 수 있는 문제가 있습니다. 그리고 인증할 때 추가적인 데이터를 보내기가 힘들다는 문제도 있죠. 그래서 이번 포스팅에서는 API를 서버를 통해 인증을 관리하도록 하겠습니다. 연관글 영역 연관글 영역 API결과 처리를 쉽게 하기 위해 'API 공통 처리'용 모델을 사용합니다. 이 모델에 대한 자세한 내용은 아래 링크를 참고해 주세요. 참고 : [ASP.NET Core] .NET Core로 구현한 SPA(Sigle Page Applications)(3) - API 결과 공통 처리 1. 백엔드(back-end)에서 인증 백엔드(back-end)에서 인증하는 방..
직접 라이브러리를 만들어서 수동으로 넣었는데..... "[라이브러리].h"를 위한 복수개의 라이브러리가 발견되었습니다. 1. 생성자가 잘못된 경우직접 만든 라이브러리에서 문제가 생겼다면 거의 이 문제입니다. 생성자는 클래스 이름과 같아야 하는데 실수로 잘못 넣은 경우죠. 예를 들면 이런 경우입니다. 클래스 이름은 'StepperMulti5'인데 생성자 이름이 'Stepper'로 잘못 들어가 있습니다.이 오류는 수정해주시면 됩니다. 2. 실제로 중복된 경우실제로 라이브러리가 여러 군데 있는 경우가 있습니다. 확인해봐야 할 경로는 1) 아두이노가 설치된 폴더의 'libraries'폴더2) 'C:\Users\[사용자 계정]\AppData\Roaming\Arduino\libraries' 폴더3) 내 문서에 'A..
* 공개프로젝트로 전환된 포스팅입니다. * 참고 : [Arduino] StepperAsync5 - 비동기 스탭 모터 라이브러리 저번에 "한 번에 2개 이상의 스테핑 모터를 제어하기"를 했었는데....... 'Stepper'라이브러리가 업데이트 많이 됐군요. ㅎㅎㅎ 버전에 맞춰 업데이트해보았습니다. 연관글 영역 이전 글에서 'Stepper.h'는 '.step()'이 동작하는 동안 다른 동작을 할 수 없다고 이야기했습니다. (참고 : [Arduino] 'Stepper.h'는 두개의 모터를 제어할 수 없다. ) 그래서 'Stepper.h'를 수정한 라이브러를 작성하고 사용하는 방법에 대한 포스팅입니다. 기존 'Stepper'를 수정하는 방법은 이전 글에서 다뤘으므로 이 포스팅은 수정된 코드만 나열합니다. 1...
사용에 집중한 포스팅입니다. 프론트 엔드(Front-End) 입장에서 토큰을 어떻게 발급받고 사용하는지 구현해 봅시다. 연관글 영역 연관글 영역 예제는 자바스크립트에 제이쿼리(jquery)를 사용합니다. 아래와 같이 전역 변수를 선언해줍니다. 1 2 3 4 5 6 7 8 9 var sUrl = "https://localhost:44305"; var sApi = "/api/values"; var access_token = ""; var refresh_token = ""; var client_id = "resourceownerclient"; var client_secret = "dataEventRecordsSecret"; var scope = "dataEventRecords offline_access"; c..
이 시리즈의 종합편??? 이라고 하기에는 좀 그렇고 합본 정도입니다. 지금까지 샘플은 인증서버와 API 서버가 따로 있는 것을 가정하여 만들어져 있었습니다. 이것은 인증서버를 하나만 두고 여러 API서버를 연동해서 사용할 수 있기 때문입니다. 하지만! 인증서버 하나에 API서버가 하나라면 굳이 따로 만들 필요가 없죠. 이번에는 인증서버와 API서버를 합치도록 하겠습니다. 연관글 영역 연관글 영역 이전 포스팅에서 여러 번 다뤘던 내용이므로 이번 포스팅은 대부분 링크로 대체합니다. 1. 프로젝트 세팅 새 프로젝트를 만듭니다. 프로젝트는 생성 옵션은 닷넷 코어 2.2 웹 응용프로그램 빈 프로젝트 입니다. 1-1. 'IdentityServer4' 설치 누겟에서 'IdentityServer4'를 찾아 설치합니다...