728x90 반응형 전체 글602 [DB/Oracle] 계층형 쿼리로 Q&A 게시판 구현하기 게시판을 만들다 보면 질문(Question)과 답변(Answer) 구조를 처리해야 하는 경우가 많다.특히 Q&A 게시판은 단일 테이블(TB_POST)에 질문과 답변을 함께 저장하면서, 부모-자식 관계를 이용해 계층 구조로 표현한다. 오늘은 CONNECT BY 를 활용해 이를 구현하는 방법을 정리해보자. ❓ Q1. Q&A 게시판에서 질문과 답변을 어떻게 구분하는가?Q&A 구조에서는 보통 다음과 같이 데이터를 관리한다.질문글 → PARENT_POST_ID 가 NULL답변글 → PARENT_POST_ID 에 질문글의 POST_ID 값 저장즉, 부모가 없으면 질문, 부모가 있으면 답변으로 구분할 수 있다.아래 쿼리에서는 CASE WHEN 문으로 질문/답변 구분 컬럼(GUBUN)을 만들어준다.CASE WHEN P.. 2025. 9. 17. [DB/Oracle] 무작위 20자리 문자열 키값 만들기 (년월일시분초 + 랜덤 6자리) 업무에서 테이블의 키값으로 자주 쓰는 컬럼을 만들때, yyyyMMddHH24MISS + 랜덤 6자리 로 20 짜리 키값을 만든다. 다음은 오라클 쿼리이다.SELECT TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS') || ( SELECT LISTAGG( CHR( CASE WHEN rn BETWEEN 1 AND 26 THEN 65 + rn - 1 -- 'A'~'Z' ELSE 48 + (rn - 27) -- '0'~'9' .. 2025. 9. 16. [TroubleShooting/업무]🚨 XSS 대응기: Toast UI Editor vs textarea, 서버 대응 방식 최근 프로젝트에서 꽤 흥미로운 보안 이슈를 경험했습니다.바로 크로스 사이트 스크립트(XSS) 대응이었습니다. 재직 중인 회사의 시스템이 특성상 보안에 민감하다 보니,사용자가 입력한 데이터가 조금이라도 브라우저에서 실행될 여지가 있으면 큰 사고로 이어질 수 있습니다.이번에 제가 다뤘던 케이스는 Toast UI Editor(WYSIWYG 에디터)와기본 textarea 입력을 처리할 때, 서버에서 보안 처리 전략이 달랐던 점이었습니다. 🔎 XSS란 무엇인가?XSS는 사용자가 입력한 악성 스크립트가 브라우저에서 그대로 실행되는 공격입니다.대표적인 예시는 다음과 같습니다:Click me 이런 코드가 그대로 서비스 화면에 뿌려진다면?👉 세션 탈취, 피싱, 화면 변조 등 보안사고로 이어질 수 있습니다. 📝 To.. 2025. 9. 4. [STS] Web > HTML files > Editor > Templates 로 가는 경로가 없을 때 요즘 나오는 STS는 이클립스에서 제공하는 예전 전통적 개발 방식 중 하나인 Dynamic Web Project가 없는 경우가 있다. 그럼에도 HTML 템플릿 사용해야겠다고 한다면, 아래와 같은 방법이 있다. ※ 웹 개발 도구 (WTP) 플러그인 누락된 경우가장 흔한 이유 중 하나는 Eclipse (또는 STS)에 웹 개발 관련 플러그인,즉 Eclipse Web Tools Platform (WTP)이 제대로 설치되어 있지 않기 때문이다.HTML, CSS, JavaScript 등의 웹 관련 에디터나 템플릿 기능은 WTP에서 제공한다. 해결 방법:Eclipse Marketplace를 통한 설치:STS를 연다.Help > Eclipse Marketplace... 로 이동한다.검색창에 Eclipse Enterp.. 2025. 6. 30. [Trouble Shooting/업무] 대외 스위치 장비 교체로 인한 회선 통신 불안정 현상 개선 경험 - traceroute 자정이 넘은 시각, 회사에서 스위치 장비를 교체한다해서 밤에 대기를 하고 있었다. WAS 서버를 다 내리고, 서비스를 하나 하나 재기동하는데, 원래 기존에 통신하던 곳들이 통신이 안되는 곳들이 있었다. (되는 곳 안되는 곳을 일일이 찾기 위해 telnet ip port 엄청 쳤었던 기억이...) 안되는 곳들에 대해서 다시 방화벽 작업을 한 이후에, 대부분 제대로 통신이 원활하게 됐던 것을 확인할 수 있었다.. 하지만, 단 하나의 채널이 대량으로 패킷이나 데이터를 송신하면 중간에서 통신에 대한 소실이 발생했다. 그 채널에 대해서 telnet은 정상적으로 작동하고 있었고, 어느 서비스 로그를 확인해도 그 원인을 찾을 수 없었다. 문제는 어떤 건 되고, 어떤 건 안되고 일관되지 않은 상황이었고, 대외 스.. 2025. 6. 5. [Trouble Shooting/업무] jdk 오라클버전에 따른 ojdbc 버전의 중요성 - Protocol violation 얼마 전, 내가 관리하는 서버에서 Caused by: java.sql.SQLException: Protocol violation: [ 0, ] at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:669) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPrepar.. 2025. 6. 5. 이전 1 2 3 4 5 ··· 101 다음 728x90 반응형