본문 바로가기

Programming

[Spring] In-Memory DB에 해당되는 H2 DB 사용방법 H2 DB의 3가지 모드 H2DB는 자바 기반 오픈소스 RDBMS(관계형 데이터 베이스 관리 시스템)이다. H2DB Cheat Sheet를 살펴보면 세 가지 용도를 찾을 수 있다. 1. Embedded Mode 2. In-Memory Mode 3. Server Mode Server Mode Server Mode는 공식 사이트에서 H2를 Plafform-Independent 버전을 다운로드하고 h2/bin/h2.sh를 터미널로 실행하면 h2가 TCP 통신을 할 수 있는 서버 버전으로 실행된다고 볼 수 있다. 따라서 외부에서 h2 서버가 실행되어야 스프링에서 application.properties에 h2서버 주소를 입력해 접속할 수 있다. 김영한님의 스프링 입문 강의 섹션 6 : H2 데이터베이스(무료강.. 더보기
[Java] K번째 수 구하기 (선택정렬 활용) 문제 K번째수 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100 .. 더보기
[Java] x,y 좌표 정렬 하기 설명 N개의 평면상의 좌표(x, y)가 주어지면 모든 좌표를 오름차순으로 정렬하는 프로그램을 작성하세요. 정렬기준은 먼저 x값의 의해서 정렬하고, x값이 같을 경우 y값에 의해 정렬합니다. 입력 첫째 줄에 좌표의 개수인 N(3 더보기
[AWS] Route 53 도메인 연결시 0.5달러 나오는 이유 AWS Free Tier 라서 돈 나갈 일이 없을 줄 알았는데, 문자로 돈이 나갔다는 걸 보고 깜짝 놀랐다 ! 😱 천원 조금 넘는 금액이었지만 혹시 뭔가 잘못 되었을까봐, 앞으로 더 큰 돈이 나갈까봐 무서웠다ㅠ😫😭 AWS 사이트에 가서 보니 Route 53에서 1달러가 나갔다고 써있었다. 세부 보기를 하니 아래와 같았다. (다행히 Elastic Compute Cloud는 프리 티어라서 0.00 달러.. ❤) Route 53 HostedZone! 하나에 0.5 달러인데, 나는 두 개라서 1달러라고.. 세금 0.1 달러라고.. Route 53이 무엇인지, 내가 왜 이 서비스를 이용했는지 이야기하겠다. Route 53은 클라우드 도메인 이름 시스템(DNS) 서비스이다. 이게 없으면 사이트에 'www.naver.. 더보기
[AWS] Route 53 도메인 연결 0. 호스팅 영역 클릭 1. 호스팅 영역 생성 클릭 2. 구매한 도메인 입력 (주의!!!! http등을 붙이지 않은 순수 도메인) ex) example.com 3. url 을 클릭하여 상세로 들어가기 4. 레코드 생성 값(Value)에 EC2 퍼블릭 IPv4 주소 적어주고 레코드 생성 퍼블릭 IPv4 주소 보기 더보기 더보기 5. 본인이 도메인을 구매한곳에 rounte53에서 만든 레코드에서 유형이 NS(NameServer 네임서버)인 것의 값 4개를 등록해준다. 도메인 구매 사이트마다 조금씩 다르지만 거의 동일하다. ex) godaddy dns관리 > 네임서버 등록 더보기
[React] react, next.js 사용시 쿼리스트링을 감춰야하는 경우 URL 에서 쿼리스트링을 감출 필요가 있을 경우, 아래와 같이 Next.js Router 의 push 함수의 두번째 파라미터 as (maskes url for the browser) 를 사용해서 쿼리스트링을 감출 수 있습니다. import { useRouter } from 'next/router' ... const router = useRouter() router.push( { pathname: '/sample', query: { testQuery: '12345' } }, '/sample' // 브라우저에 표시됨 ) 더보기
[react] typescript input 박스 의 텍스트가수정안되는경우 문제의 원인은 input 및 textarea 엘리먼트의 value 속성에 reviewModel?.title 및 reviewModel?.content를 사용하는데, reviewModel이 null 또는 undefined인 경우 이 값들이 초기값으로 설정되어 있기 때문입니다. 이로 인해 이러한 입력 필드를 수정하거나 지울 수 없습니다. 문제를 해결하려면 input 및 textarea 엘리먼트의 value 속성을 title 및 content 상태 변수에 연결해야 합니다. 즉, value 속성에 직접 title 및 content 변수를 할당해야 합니다. 아래는 수정된 코드입니다: jsxCopy code setTitle(e.target.value)} /> setContent(e.target.value)} rows.. 더보기
[react]번외 react router-pathname 대한 개념 이해 컴포넌트를 다른 페이지에 포함할 때, router.pathname이 어떻게 작동하는지에 대한 이해가 필요합니다. router.pathname은 현재 페이지의 경로를 나타내는 속성입니다. 컴포넌트 내에서 이 값을 확인할 때, 컴포넌트가 렌더링된 현재 페이지의 경로를 나타냅니다. 그러나 이 컴포넌트가 어떤 부모 컴포넌트에 의해 렌더링되었는지에는 영향을 주지 않습니다. 따라서 컴포넌트를 다른 페이지에 포함했을 때, 컴포넌트 내부의 router.pathname은 해당 컴포넌트가 렌더링된 현재 페이지의 경로를 나타냅니다. 즉, 부모 페이지의 경로가 아닌 현재 페이지의 경로입니다. 이는 React 컴포넌트의 특성으로, 컴포넌트는 그 자체로 독립적인 상태와 렌더링을 가지며, 부모 컴포넌트의 상태나 경로와는 무관하게 .. 더보기
[Nextjs, Typescript] 프로젝트에 Prettier + ESlint 설정하기 Prettier + ESlint 설정 팀 프로젝트는 Prettier 포맷터 설정과 ESlint 린터 설정이 필수인 것 같다. 따움표 스타일 정도는 맞출 수 있을지 모르지만, 띄어쓰기나 들여쓰기, 개행 등 불필요한 diff가 발생할 수 있어 생산성이 떨어질 수 있다. 또한 인터프리터 언어인 자바스크립트인 경우엔 컴파일 과정이 없으니, 사전에 에러를 잡아 줄 수 있는 린터의 역할이 크다. Prettier 다양한 포맷터를 사용해보지 않았는데, 그도 그럴 것이 개발을 시작할 때부터 formatter === Prettier 줄 알았다. 항상 vscode의 확장으로 쓰다가 팀 프로젝트를 위해 local 환경에서 설치하면서 Prettier 라이브러리에 대해 더 알아보았다. prettierrc는 json과 yaml, .. 더보기
refresh token도 결국 JWT인데 왜 "Bearer"을 안쓰는걸까? https://velog.io/@cada/%ED%86%A0%EA%B7%BC-%EA%B8%B0%EB%B0%98-%EC%9D%B8%EC%A6%9D%EC%97%90%EC%84%9C-bearer%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C 토근 기반 인증에서 bearer는 무엇일까? 본 글은 MDN - HTTP 인증, Veloport님의 게시글을 참고하여 작성되었습니다. 자세하게 알고싶으신 분은 해당 링크를 참고해주세요.토큰 기반 인증인증 타입마치며토큰 기반 인증은 쿠키나 세션을 이 velog.io 참고 ✅ 상황 로그인 요청을 날리고, AccessToken과 RefreshToken이 정상적으로 돌아오는 것을 확인했다. ✅ 의문 JWT 토큰 인증을 구별하기 위해 Bearer을.. 더보기