본문 바로가기

전체 글

(30)
[React / Github Pages] BrowserRouter basename 오류 동기 Github Pages를 통해 React 프로젝트를 배포하려다가 아주 힘든 시련을 겪었기에, 이건 나만 겪지 않을 것이라는 예상 + 이건 나만 겪어도 되는 시련이라는 생각으로 해결책을 남긴다. 사실 특이한 케이스라서 한국어 포스팅은 물론이고, Stack of Flow에도 없어서 남겨본다. 상황 Github Pages React: 18.2.0 react-bootstrap: 2.5.0 (이 친구까지 왜 썼는지 싶을지도 모른다. 하하..) react-router-dom: 6.4.3 해결 방법 스토리 1. BrowserRouter에 basename 추가 ref. https://bloodstrawberry.tistory.com/1082 다들 아시다시피, BrowserRouter를 사용하는 와중에 최상위 경..
[JavaScript 정규식] 태그, 태그 안 내용까지 지우기 특정 태그를 지우는 정규식은 많이 포스팅되는데, 특정 태그 안의 내용까지 지우는 정규식은 보이지 않아 작업한 겸 포스팅해본다. (나의 경우에는 이미지 캡션의 내용을 지워야한다는 요구사항을 받아 작업하게 되었다. 여러분은 어떤 이유로 요기 들어오게 되었는지요..?) 정규식에 대해 이해가 부족하다면 ? 아주 잘 정리해놓으신 분이 있으니 참고하길..! 😁 https://inpa.tistory.com/entry/JS-%F0%9F%93%9A-%EC%A0%95%EA%B7%9C%EC%8B%9D-RegExp-%EB%88%84%EA%B5%AC%EB%82%98-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC 📚 JavaScript 정규 ..
서버 이관 - 서버 이관 처음할 때 필요했던 것들 입사한 지 얼마 되지 않은 시절, 회사에는 Window Server 2008 / MsSQL / 파스칼로 이루어진 노후된 프로젝트가 있었다. 또한, 서버는 원격 접속이 되지 않고 직접 가서 배포 및 관리해야 했다. 또 또한, 회사에서 만든 프로젝트도 아니고 회사 내에서 파스칼을 할 수 있는 사람이 없었다(??? 이제 생각해 보니 어이가 없군..). 그런데 내가 그 프로젝트의 서버 이관을 맡게 되었다..! 갑자기 생각나기도 했고 또 언제 서버 이관을 할지도 모르니 아주 늦었지만, 기억을 더듬어보며 정리해놓으려고 한다. 용어 설명 migration : 이관을 뜻한다. AS-IS : 현재 환경 (이관 전 환경) TO-BE : 구현해야할 환경 (이관 후 환경) 1. AS-IS 파악 일단 이 프로젝트는 내가 개발 ..
객체지향프로그래밍 (OOP) - 다형성 다형성(Polymorphism) - "이름은 하나인데~ 별명은 여러 개~" 정의 내 동생 곱슬머리 개구쟁이 내 동생이라는 동요를 알고 있는가? 더보기 내동생 곱슬머리 개구장이 내동생 이름은 하나인데 별명은 서너개 엄마가 부를때는 꿀돼지 아빠가 부를때는 두꺼비 누나가 부를때는 왕자님 어떤게 진짜인지 몰라몰라 몰라 내동생 곱슬머리 개구장이 내동생 이름은 하나인데 별명은 서너개 잘먹고 건강하게 꿀돼지 착하고 복스럽게 두꺼비 용감하고 슬기롭게 왕자님 어떤게 진짜인지 몰라몰라몰라 가사를 보면, 동생이라는 존재는 하나인데 그를 부르는 이름, 즉 그가 정의되는 방식은 여러 개임을 볼 수 있다. 다형성은 이와 같이 이름은 하나인데~ 별명은 서너 개~로, 하나의 객체를 여러 개의 타입으로 선언할 수 있는 개념을 말한다...
Express 라우팅 - 라우트 파라미터 정규식 1. 라우트 경로 https://expressjs.com/ko/guide/routing.html express에서 요청을 등록할 때는 세가지 요소가 필요하다. 메서드 종류 (GET, POST, PUT, DELETE 등) URL 경로 해당 요청을 처리할 미들웨어 함수 오늘은 그 중에서도 2번인 URL 경로에 대해 알아보도록 하겠다. URL 경로는 어디에 들어가는가? 바로 요청 등록 함수의 첫 번째 매개변수로 들어간다. 값은 문자열과 정규식을 지원한다. 그 중 문자열 형태를 살펴보자. '/test'로 등록하면 /test로 요청할 때 인식하고 '/te?st'로 등록하면 /test 혹은 /tst일 때 인식하고 => 0글자 혹은 1글자 '/te+st'로 등록하면 /test, /teest, /teeest ...일 ..
객체지향프로그래밍 (OOP) - 구성 구성(Composition) - "바구니 안에 담기" 정의 구성이란 객체들의 관계를 구축하는 방법으로, 한 객체가 다른 객체들을 멤버변수로 갖고 있는 것(HAS-A 관계)이다. 마치 메인보드, 식판, 배틀그라운드의 장비창과 같이 하나의 판이 된 객체들의 바구니의 이름을 짓은 것이 구성이라고 할 수 있다. (구성, 합성, 조합 등 다양한 말로 불린다.) 특히 메인보드의 경우는 구성을 잘 설명할 수 있을 것 같다. 자세한 (콤퓨타는 하나도 몰라서 틀려도 무시해주길..) 일단, 각자의 자리가 정해져있다. CPU 자리면 CPU가, SSD 자리면 SSD가, 파워 자리면 파워가 꽂힌다. 또한, 무조건 한 모델의 SSD만 들어갈 수 있는 것이 아니라 메인보드가 지원하는 소켓에 맞는 SSD라면 만든 회사에 상관없이 들..
script 태그의 위치는 어디가 가장 좋을까? script 태그의 위치는 어디가 가장 좋을까? 이 질문은 Inside look at modern web browser (part 3) 글을 보는 도중에 떠오른 질문이다. 위 글에 의하면, 태그가 파싱될 때에는 HTML의 구문 분석을 중지하고 javascript 코드를 실행한다고 한다. 만약 복잡한 애니메이션이나 실행 시간이 오래 걸리는 API 통신 코드가 담긴 script 태그가 head 태그 안에 있다면, HTML이 화면에 그려지는 것은 굉장히 지연될지도 모른다. 반면에 body 태그 최하단에 있다면, HTML이 이미 화면에 그려진 상태이기 때문에 사용자 측에서는 이상 없이 보일 것이다. 따라서, script 태그가 위치하기에 가장 좋은 자리는 body 태그 최하단이다. DOM 트리 생성 중 끊길 일..
[Spring][MySql] Unknown system variable 'query_cache_size’ mysql-connector-java 종속성의 버전 차이 때문에 발생하는 오류이다. 예를 들면, DB의 mysql 버전은 8.x.x버전인 반면에 mysql-connector-java의 버전이 5.x.x라면 위와 같은 오류가 발생할 수 있다. 1. pom.xml에서 mysql-connector-java의 버전을 올려주고 2. maven clean 3. maven install을 하여 종속성을 업데이트하여 해결했다.