| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- jquery
- rpa
- Scanner
- html
- string
- 배열
- 문자열
- javascript
- Board
- Controller
- Thymeleaf
- Eclipse
- SpringBoot
- JDBC
- mysql
- Array
- 자료구조
- Uipath
- React
- spring
- db
- API
- Java
- Database
- 조건문
- PostgreSQL
- jsp
- MVC
- Oracle
- 이클립스
- Today
- Total
목록전체 글 (160)
유정잉
인덱스는 단순히 “추가하면 빨라지는 기능”이 아니라 데이터 특성에 맞게 선택해야 하는 구조 설계 요소다.PostgreSQL에서 자주 쓰이는 인덱스들을 간단하게 정리해본다.[ B-Tree 인덱스 (PostgreSQL 기본 인덱스) ]PostgreSQL에서 인덱스를 생성할 때 별도의 타입을 지정하지 않으면 기본적으로 B-Tree 인덱스가 생성된다.이게 바로 가장 많이 사용되는 인덱스다.CREATE INDEX idx_name ON table_name (column_name); ✔ 구조 생김새 [50] / \ [10 | 20 | 30] [60 | 70 | 80] ↔ ↔ 위쪽은 경로 안내용 노드아래쪽 리프 노드에 실제 값 저장리..
웹 화면에서 URL의 마지막 ID만 보여주고, 클릭하면 실제 관리자 페이지로 이동하도록 링크를 동적으로 생성하는 기능을 구현하던 중 이상한 현상을 경험했다.[ 증상 ] 태그를 jQuery로 동적 생성target="_blank"로 새 창 열기화면에는 ID만 표시마우스 오버 시 title에는 전체 URL 표시그런데…처음 클릭하면 about:blank가 열리고 두 번째 클릭하거나 잠시 후 다시 클릭하면 정상 URL로 이동 [ 원인 ]렌더링 시점 문제였다. 동적으로 링크를 생성하는 함수가:Ajax 응답이 완전히 정리되기 전에 실행되거나DOM이 아직 안정적으로 렌더링되지 않은 시점에서 호출되면서브라우저가 첫 클릭 시 href를 정상적으로 인식하지 못하는 상황이 발생했다.그 결과 브라우저는 기본값인 about:bl..
자바스크립트 이벤트를 다루다 보면 마주치는 코드가 있다.event.preventDefault();event.stopPropagation(); 두 줄 다 “이벤트를 막는 것처럼” 보이지만, 막는 대상과 목적은 완전히 다르다.1️⃣ event.preventDefault()란?브라우저가 기본적으로 수행하려던 동작을 막는다.즉, 이벤트는 발생했지만 브라우저의 기본 행동만 취소하는 것이다.✔ 대표적인 기본 동작 예시 요소 기본 동작 링크 이동submit체크 상태 변경 + Enter줄바꿈 삽입드래그선택 / 이동✔ 예제 1: 링크 이동 막기이동document.getElementById('link').addEventListener('click', function (e) { e.preventDefault();}..
모바일 웹(또는 WebView) 환경에서 채팅 화면에서 파일 업로드를 할 때 간헐적으로 오류가 발생하는 문제를 겪었다.파일 선택 후 전송되지 않음ERR_CONNECTION_ABORTEDInvalidStateError: The connection has not been established yetWebSocket(SockJS + STOMP) 재연결이 반복됨PC 환경에서는 거의 발생하지 않았고, 모바일에서만 재현되는 문제였다.[ 문제 상황 정리 ]파일 업로드 흐름은 단순해 보였다.파일 선택 → 전송 하지만 모바일 환경에서는 이 과정에서 숨겨진 일이 하나 더 발생한다.[ 모바일에서 실제로 일어나는 일 ]1. 파일 선택 버튼 클릭 2. OS 파일 선택기 열림 → 웹앱이 background 상태로 전환됨 3. ..
참고 문서 : https://github.com/CodeSeven/toastr GitHub - CodeSeven/toastr: Simple javascript toast notificationsSimple javascript toast notifications. Contribute to CodeSeven/toastr development by creating an account on GitHub.github.com 테스트 사이트 : https://codeseven.github.io/toastr/demo.html toastr examples codeseven.github.io 1) alert(); 말고 Toastr 써보자Servlet/JSP, Spring 프로젝트를 하다 보면 알림 메시지를 띄울 때 가장 ..
※ 깃(Git)에서 프로젝트를 클론한 뒤 인텔리제이(IntelliJ)로 열면 가끔 모듈 및 라이브러리를 제대로 인식하지 못하는 문제가 발생 [ 모듈 해결 방법 ]1. 파일 > 프로젝트 구조 2. 모듈 > + 클릭 > 모듈 가져오기 3. 해당 프로젝트가 있는 파일 경로 선택 > 폴더 선택 4. 기존 소스에서 모듈 생성 > 다음 5. 다음 6. 다음 7. 다음 8. 생성 9. 모듈 생성 된 것 확인 후 필요한 모듈 셋팅 [ 라이브러리 해결 방법 ]1. 프로젝트 > 프로젝트 구조 2. 라이브러리 > + 클릭 > Java 클릭 3. 해당 프로젝트에 라이브러리가 있는 경로의 폴더 선택 4. 확인
문제 발생 1. API를 통해 고객사 DB에 저장된 전화번호를 프로시저로 받아와 우리 시스템 DB에 insert하는 API를 만들고2. 이후 화면단에서 input을 통해 검색 기능을 구현하고3. XML 쿼리에서 검색 조건을 걸었는데 전화번호가 조회되지 않는 문제가 발생문제 원인DB에서 직접 select 해보니 전화번호 오른쪽 끝에 이상한 기호가 붙어 있었음 -> pilcrow(단락 기호 ¶)이 기호는 보통 데이터 전송이나 저장 과정에서 개행문자·제어문자가 잘못 들어오면서 발생할 수 있음 해결 방법검색 조건에서 REGEXP_REPLACE를 사용해 불필요한 문자들을 제거한 뒤 비교하도록 수정 (postgres 사용) 기존 코드 AND tel = #{TEL} 수정된 코드 AND REGEXP_REPLA..
💻 Gemini CLI란?명령어 한 줄로 설치 가능한 오픈소스 도구로, 터미널에서 바로 Gemini AI 모델에 접근 가능⚙️ 설치 방법 1. Node.js v20 이상 다운로드 → https://nodejs.org/ko/download → 터미널(윈도우: PowerShell, 맥: 터미널)에서 node -v로 설치 및 버전 확인 가능 2. 터미널(윈도우: PowerShell, 맥: 터미널)에 명령어 입력 → npm install -g @google/gemini-cli → gemini 명령 실행 3. 처음 실행 시 테마 선택, Google 계정 로그인(개인 계정) 권장 4. Gemini 2.5 Pro 모델을 기반으로 작동. 하..
[ JS 파일 전역변수가 인식되지 않는 오류와 캐시 문제 해결 ] 문제 상황REQ.js에 전역 변수를 선언하고 이 전역변수를 다른 스크립트(REV.js) 혹은 JSP파일에서 사용해야 헀는데 로컬에서는 문제가 없었으나 배포 후 운영 환경에서는 아래와 같은 오류가 발생 ! -> name이 정의되지 않았습니다. 분명히 전역 변수 정의를 했는데도 파일이 최신으로 반영되지 않아 변수 자체를 못 찾는 상황 ! var name = ""; 원인운영 서버에서 JS 파일이 갱신되지 않는 이유는 브라우저 캐시 때문 ! 크롬이나 IE(익스플로러)에서는 Ctrl + F5로 강력 새로고침을 해도 특정 상황에서는 스크립트 파일을 계속 이전 버전으로 로딩하는 문제가 발생.특히 script 태그로 파일을 import해서 사용 중인 ..
참고 문서 : https://docs.kakaoi.ai/kakao_work/ [ 봇(Bot) 설정 ]1. test 용 워크스페이스 생성 -> 카카오워크 홈페이지 관리자로 로그인 2. 알림 메세지 보낼 봇(Bot) 관리할 개발자 등록 봇(Bot) 관리 -> 봇(Bot) 개발자 관리 -> 개발자 추가 등록 -> 권한 부여할 멤버 이름 검색 후 추가 3. 알림 메세지 보낼 봇(Bot) 생성 봇(Bot) 관리 -> 봇(Bot) 개발 -> 봇(Bot) 생성하기 -> 이름 & 한 줄 설명 & 문의 설정 후 생성 생성한 봇 관리에 왼쪽 연필 아이콘 클릭(봇 수정가능) -> App Key 확인 이때, App Key를 하드코딩 하여 토큰이 외부에 노출되면 누구나 내 워크스페이스 사용자에게 메시지를 ..