이미 git이 추적 중인 파일을 '.gitignore'에 추가하여 제외하면 제외가 되지 않을걸 볼 수 있습니다. 이것은 이미 git이 캐쉬를 하고 있기 때문에 그렇습니다. 연관글 영역 1. 추적에서 제외하기 이 추적을 막고 파일을 지우기 위한 명령은 git rm [파일 경로] 입니다. (참고 : git Reference - git rm ) 로컬 저장소와 깃에 파일을 지우고 추적을 막습니다. 로컬의 파일은 남기고 싶다면 '--cached' 옵션을 추가합니다. git rm --cached [파일 경로] 폴더 단위로 제외하기 폴더 단위로 제외하고 싶다면 git rm -r [폴더 경로] 로컬의 파일은 남기고 싶다면 '--cached' 옵션을 추가합니다. git rm -r --cached [파일 경로] 2. 비주..
리액트의 훅(hook)은 클래스 컴포넌트(Class Component)에서 지원하지 않습니다. 그래서 클래스에서 사용할 수 있는 다른 기능들을 제공하는데..... 제공 안되는 기능들이 있습니다. 이럴 때 사용하는 방법이 고차 컴포넌트(HOC, Higher Order Component)입니다. (참고 : React Docs - 고차 컴포넌트 ) 1. 원리 원리는 1) 함수형 컴포넌트(Function Component)를 만들고 2) 필요한 훅을 'props'에 넣도록 구성하고 3) 클래스형 컴포넌트를 감싸서(랩퍼 구현, Wrapped) 4) 'props'를 전달받습니다. 이렇게 구현하면 클래스 컴포넌트에서 사용할 수 없었던 'useNavigate'나 'useLocation'같은 훅들도 사용할 수 있습니다...
오류 내용만 보면 "뭔 소린가?" 싶겠지만 정확하게 오류 원인을 설명하고 있습니다. Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body. '창'에서 '가져오기' 실행 실패: GET/HEAD 메서드를 사용한 요청은 본문을 가질 수 없습니다. 1. 원인 'fetch'를 'GET'이나 'HEAD'로 호출했을 때 바디(body)이 있다면 발생하는 에러입니다. 이 두 메소드는 본문을 가질 수 없고 대신 URL 쿼리로 데이터를 전달합니다. 그래서 바디가 있다면 에러가 나게 됩니다. 2. 해결 방법 인터넷을 뒤져보면 'POST'로 바꾸라는 소리도 나오는데..... 그건 'REST(Representational Stat..
비주얼 스튜디오에서 'json' 형식에 맞지 않으면 경고가 나옵니다. 문제는 JSON의 특징상 규격이 안 맞을 수 있다는 것이죠. 1. 옵션 끄기 비주얼 스튜디오에서 JSON경고를 끄려면 다음 옵션을 꺼줍니다. (Visual Studio json warning off) 도구 > 옵션 > JSON > 고급 > 유효성 검사 사용 이 옵션을 'false'로 설정합니다. (참고 : stackoverflow - How to suppress a warning from Newtonsoft.Json in Visual Studio when no CheckId is provided? 의 Jeff님 답변 ) 2. 스키마 선택 정석적인 방법은 알맞은 JSON 스키마를 선택하는 것입니다. 이미 정해진 스키마가 있는 JSON이라..
'ASP.NET' 에서 라우팅이라고 하면 엔드포인트 라우팅을 말합니다. 엔드포인트 라우팅은 끝점이 컨트롤러로 끝나는 것을 의미하죠. (참고 : MS Learn - ASP.NET Core에서 라우팅 : 엔드포인트) 그런데 'ASP.NET MVC'를 안 쓴다면 프론트 엔드(View-Controller)의 라우팅을 제어할 필요성이 생깁니다. 이럴 때는 엔드 포인트를 이용할 수 없기때문입니다. 이 문제를 해결하려면 URL 재작성(URL Rewrite)이 필요합니다. 연관글 영역 0. 테스트 환경 구성 'wwwroot' 폴더를 다음과 같이 구성합니다. (루트 폴더) index.html Admin1 └ index.html Home1 └ index.html Log1 └ index.html 스크린 샷은 리액트 라우터(..
해시 라우터를 사용할 때는 발생하지 않는 문제지만 브라우저 라우터를 사용하면 발생하는 문제입니다. 연관글 영역 1. 문제의 발견 SPA(Single Page Application)에서 라우팅을 할 때 1) 새로고침을 하거나 2) SPA의 'APP'가 있는 URL에 진입하지 않고 다른 주소부터 진입하려고 하면 404 에러가 나게 됩니다. 해시(#) 라우팅을 쓸 때야 결국 지정된 파일을 읽은 후 해시 라우터를 사용하므로 문제가 되지 않지만 브라우저 라우터를 쓸 때는 진입 파일이 없으니 어쩔 수가 없죠. 2. 해결 방법 이 문제를 해결하려면 해석할 수 없는 주소가 왔을 때 폴백(Fallback)하도록 구성해야 합니다. (참고 : Rick Strahl's Weblog - Handling SPA Fallback ..
티스토리에서는 '연관글' 혹은 '시리즈' 등을 구현하는 방법은 수동으로 작성하는 방법뿐입니다. 저도 수작업으로 연관글을 작성하고 있는데요.... 서너 개만 되도 모든 포스트에 들어가서 수정하는 게 큰일이 돼버립니다. 일반적인 사이트에서는 별도의 파일을 생성하거나 연관글을 관리할 수 있는 인터페이스가 재공되지만, 티스토리는 그런 게 없습니다. 그래서 저는 별도의 파일을 불러오도록 작업을 하고 'images'에 업로드하여 구현하여 사용하고 있었습니다. 그런데 이 방법은 스킨을 백업할 때 같이 백업된다는 문제와 내용을 수정하려면 'HTML'파일을 다운받아서 다시 업로드해야 하는 불편함이 있습니다. 1. 아이디어 티스토리 안에서 뭔가 할 수 없나 해서 이것저것 해봤지만..... 안 됩니다. 대신 쓸만한 기능이 ..
컨트롤러에서 다른 컨트롤러 호출 시 리퀘스트(Request)나 리스폰스(Response) 처리 안 되는 문제가 있습니다. (리퀘스트는 이런 문제가 적은데 리스폰스는 무조건 발생합니다.) 이런 문제 때문에 인증도 되지 않습니다. 1. 문제의 발견 이것은 당연한 것이 외부에서 웹서버를 통해 API(컨트롤러)를 호출할 때는 1) 헤더에 이것저것 정보들이 들어가고 2) 웹서버는 정보를 처리하고 하는 과정에서 'HttpContext'정보가 입력됩니다. 하지만 컨트롤러를 직접 생성하면 'HttpContext'가 null이 됩니다. 그러니 A컨트롤러에서 B컨트롤러를 호출하게 되면 'HttpContext'가 null되는 것이죠. 아래 코드를 따라 해 봅시다. 요청을 받는 쪽 컨트롤러(B 컨트롤러)에서 이렇게 하고 [H..
전 비주얼 스튜디오(Visual Studio)를 주로 쓰다 보니 'VS Code(Visual Studio Code)'는 잘 안 쓰게 됩니다. 그러다 보니 설치할 때마다 까먹어..... 1. 확장 찾기 VS코드는 언어 팩도 '확장'으로 처리하게 돼있네요. 확장에서 'Korean Language Pack for Visual Studio Code'찾아 설치합니다. 참고 : 비주얼 스튜디오 코드 마켓 플레이스 - Korean Language Pack for Visual Studio Code 비주얼 스튜디오 코드를 재실행합니다. 2. 다시 영어로 바꾸기 언어 변경 설정을 찾으려면 명령 팔레트를 열어야 합니다. 보기 > 명령 팔레트 나 단축키인 'Ctrl + Shift + P' 를 눌러줍니다. 명령 팔레트에서 '표..
다른 포스팅에서 한번 다룬 내용이지만 그 포스팅은 종합적인 내용이라 검색하기 좋게 분리한 내용입니다. 연관글 영역 1. 증상 콘솔 애플리케이션(console application)에서 'F11'을 누르면 전체화면으로 전환됩니다. 이렇게 되면 키 이벤트로 'F11'을 받을 수 없게 됩니다. 2. 해결 'WinAPI'를 이용하여 '시스템 입력'을 꺼주면 됩니다. '시스템 입력'을 끄게 되면 'Ctrl + C' 같은 시스템 단축키도 동작하지 않습니다. 'WinAPI'를 사용하려면 1) 애플리케이션의 핸들을 가지고 와서 2) 콘솔 모드를 읽은 후 3) 읽은 모드를 변경하고 4) 변경된 콘솔 모드를 적용 하면 됩니다. 2-1. 사용할 함수 마샬링 필요한 함수는 GetStdHandle : 애플리케이션의 핸들을 가지..