비주얼 스튜디오(Visual Studio)에 훌륭한 아두이노 확장이 있긴한데.... 유료입니다. 그래서 그냥 'Arduino IDE'를 쓰고 있었습니다. 그런데 이번에 좀 덩치 큰 코드를 짜야 하는데 'Arduino IDE'는 너무 불편해서 'VS Code'에 세팅해서 써야 한다고 마음먹고 정리합니다. 이 포스팅에서는 가능하면 명령어가 아닌 UI로 작업합니다. 1. 확장 설치 VS Code의 확장에서 'Arduino'로 검색합니다. 'Microsoft'에서 만든 'Arduino'확장을 설치합니다. 설정(사용자) 확장 > Arduino > 확장 설정 을 선택하면 '사용자' 영역 설정이 나옵니다. '사용자'는 글로벌(전체) 설정을 말하는 것이고 '작업 영역'은 이 프로젝트의 영역의 설정을 말합니다. 같은 설..
EF(Entity Framework)에서 FK(foreign key)를 걸면 자동으로 List 타입을 관리해줍니다. FK가 개발 중에는 좋은데 서비스 중에는 좀 단점이 있고(특정 데이터를 수동으로 지우려면 연결된 FK를 순서대로 뒤에서부터 지워야 함.) 자동으로 바인딩 되다 보니 무분별하게 난발하게 돼서 속도를 다 까먹는 문제가 있습니다. (잘 관리하면 좋긴 합니다. ㅎㅎㅎ) EF는 FK로 묶인 데이터에 접근하면 인덱스로 전체 선택(select)해서 처리하기 때문입니다. ㅎㄷㄷ 그래서 저는 가급적 FK를 안 쓰고 수동으로 선택(select)해서 사용하는 방법을 사용합니다. 그러다 보니 EF에서 리스트형 데이터들은 어떻게 처리되는지 궁금해졌습니다. 1. 배열과 리스트 모델을 아래와 같이 선언하고 마이그레이..
자바스크립트(JavaScript)는 엄밀하게 말하면 오버로드(Overload)가 없습니다. 타입스크립트(TypeScript)는 IDE에서나 타입스크립트지 출력되면 자바스크립트입니다. 이런 특성 때문에 오버로드도 자바스크립트의 특성을 따라가게 됩니다. 그렇다면 타입스크립트는 오버로드를 어떻게 구현하고 있을까요? 1. 자바스크립트의 오버로딩(Overloading) 자바스크립트는 오버로드가 없습니다. "앵? 파라미터 다르게 해서 같은 이름으로 받는 거 쓸 수 있는데요?" 라는 말을 할 수 있겠지만 자바스크립트의 오버로드는 엄밀하게 말하면 오버로딩이 아니라 자바스크립트의 특성을 이용한 꼼수입니다. 아래 코드를 봅시다. function Main() { console.log("parameter 1 : " + Ove..
1. 오류 발견 지정된 파일을 찾을 수 없다는 에러가 나는데 수동으로 파일을 읽어도 잘 읽어지고, 'File.ReadAllText'를 써도 잘 읽어집니다. 웃긴 건 이걸 DLL로 만들어 쓰고 있었는데 원본 테스트에서는 아무런 문제가 없고, 에러 나는 타이밍은 파일을 읽을 때가 아니고 경로를 전달할 때입니다??? System.IO.FileNotFoundException: Could not load file or assembly 'Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. 지정된 파일을 찾을 수 없습니다. File name: 'Newtonsoft.Json, Version=13.0.0.0, Cultu..
프로젝트가 크지 않으면 웹팩 컨피그(webpack.config.js)를 분리할 이유가 별로 없습니다. 저도 계속 'if'문으로 분리해서 쓰고 있었는데요..... 프로젝트에 이것저것 설정할 게 많아지니 개발(development) 모드와 프로덕션(production) 모드 간의 차이가 많아져서 변수로 관리하는 것이 힘들어졌습니다. 1. 컨피그(webpack.config.js) 분리하기 이럴 때 필요한 것이 컨피그를 분리하는 것입니다. 구조는 다음과 같습니다. 1) 공통으로 사용할 공통 컨피그(webpack.common.js) 파일을 만들고 공통으로 사용할 설정을 넣어줍니다. 2) 개발 모드에 사용할 컨피그(webpack.dev.js)를 만들고 개발 모드에서만 사용할 설정을 넣어줍니다. 3) 배포 모드에 사..
1. 증상 어느 날 갑자기 빈 솔루션(empty solution) 템플릿이 사라졌습니다. 아무리 검색해도 안 나와서 해당 카테고리를 확인했더니..... 이런 결과가... '빈 솔루션'은 비주얼 스튜디오의 가장 기본 템플릿이라 뭐 설치할 것도 없이 표시가 돼야 정상인데 무슨 일인지 모르겠네요. 2. 해결 방법 '개별 구성 요소'에서 '.NET Framework 프로젝트 및 항목 템플릿'이 꺼져있으면 '빈 솔루션'이 표시되지 않을 수 있다고 합니다. 도구 > 도구 및 기능 가져오기 > 수정 > 개별 구성 요소 에서 '.NET Framework 프로젝트 및 항목 템플릿'을 체크하고 수정해줍니다. 설치가 끝나면 다시 잘 표시됩니다. 마무리 참고 : howtosolutions.net - Visual Studio:..
1. 문제의 발견 잘 세팅해서 쓰고 있는데 어느 날 갑자기 타입스크립트가 경로를 못 찾는 에러를 뿜기 시작했습니다. 비주얼 스튜디오에서 에러만 날뿐 빌드도 잘되고 에러 없이 디버깅도 잘됩니다. 2. 원인 및 해결 방법 어느 게 문제인지 찾지 못하던 중에..... 돌아다니는 타입스크립트 설정파일(tsconfig.json)를 보면 'include'에 'src'들어가 있는 게 많다? 그래서 넣어보니 에러가 제거되었습니다. 마무리 일단은 해결됐지만 언제 또 무슨 일이 터질지는.... 원래는 에러가 나야 하는 건데 안 나던 것인지 다른 사람들 설정 파일에는 'src'가 들어있는 게 많습니다. 기존에는 왜 에러가 안 났으며, 빌드에도 지장 없는 게 왜 에러로 잡히며, 왜 지금은 에러로 잡히는지....... 모든 것..
비주얼 스튜디오에는 주석의 내용을 XML 파일로 출력해주는 기능이 있습니다. 이렇게 생성된 XML은 1) 스웨거 같은 문서 생성 도구나 2) 직접 파싱하여 필요한 곳에 주석으로 붙이기 예> 자동으로 'JSON'으로 출력한 코드에 주석 붙이기 등에 활용할 수 있습니다. 대신 이 기능을 활성화하면 주석이 없는 함수에 경고가 표시됩니다. 1. 문제의 발견 이게 보통 때는 문제가 없지만 'DB 마이그레이션 파일'과 같이 자동으로 생성되는 파일에도 경고가 난다는 것이 문제입니다. 그렇다고 하나하나 수작업할 수도 없는 노릇이고.... 2. 해결 방법 옵션이 따로 있지는 않고 경고 예외를 걸어주면 됩니다. 프로젝트 속성 > 빌드 > 오류 및 경고 '1591' 추가 (참고 : MS Learn - 컴파일러 경고(수준 4..
비주얼 스튜디오(Visual Studio)에서는 창이 많아지면 줄밖으로 나가는 창을 자동으로 숨겨집니다. 이렇게 되면 창이 한눈에 보이질 않아서 불편했는데 이것이 해결되는 기능이 생겼습니다. 1. 다중 행 탭(Tabs in Multiple Rows) 비주얼 스튜디오의 17.3 버전에 '다중 행 탭(Tabs in Multiple Rows)' 기능이 생겼습니다. 창을 여러 개 열면 안 보이는 탭은 옆의 화살표로 숨는데 이때 창을 숨기지 않고 전체를 다 표시해주는 기능입니다. 저처럼 여러 창을 오가며 작업하는 사람한테는 정말 좋은 기능입니다. 2-1. 옵션 활성화 방법 1 옵션 > 환경 > 탭 및 창 > 문서 탭 에서 '여러 행에 탭 표시'를 활성화하면 됩니다. 2. 옵션 활성화 방법 2 탭에서 오른쪽 클릭해..
'ASP.NET Core'의 기능으로 쿠키를 저장하는데.... 로컬에서는 잘되지만, 배포를 하면 저장되지 않는 현상을 겪었습니다. 같은 IIS인데 로컬호스트로 접속하면 되고 외부에서 접속하면 안 되는 현상이죠. 1. 원인 이런 경우 거의 보안 문제 때문에 그렇습니다. 로컬로 접속하면 보안이 느슨해져서 되는 거죠. 그래서 생각해보니 쿠키를 저장할 때 Secure : HTTPS에서 암호화 되었을 때만 쿠키를 전송 HTTPOnly : 자바스크립트에서는 해당 쿠키에 접근 못하게 함 옵션이 켰다는 게 생각났습니다. 'HTTPOnly'옵션은 이 문제와 상관없지만 'Secure'옵션을 넣으면 HTTPS에서만 쿠키에 접근할 수 있습니다. 2. IIS에 임시 SSL 생성하기 개발단계에서 정식 SSL을 발급받는 건 귀찮고..