전체 글 175

Oracle (10) - WITH 절 사용방법

SQL을 작성하다 보면 복잡한 서브쿼리를 여러 번 사용해야 하는 경우가 있습니다. 이 경우 가독성이 떨어지고, 쿼리에 불필요한 연산이 많아져 쿼리 성능도 저하될 수 있습니다. 이를 개선할 수 있는 하나가 WITH 절입니다.오라클에서는 9i 버전부터 지원하며 12c 버전부터는 프로시저에서도 사용할 수 있게 되었습니다. WITH 사용법해당 예제는 학생들의 점수를 합산하여 조회하는 예시입니다.WITH SCORE_ALL_TB AS( SELECT STUDENT_NO AS STUDENT_NO , SUM(SCORE) AS SCORE_ALL FROM STUDENT_SCORE GROUP BY STUDENT_NO)SELECT A.STUDENT_NO , B.NAME , A.SCORE_AL..

컴퓨터/Oracle 2025.09.13

보안 - SQL 인젝션 원리와 예방방법, DB를 지키는 방법

최근 지인의 서버에 해킹 시도가 있었다는 이야기를 들었습니다. 해당 서버의 로그를 살펴보니 일반 쿼리가 아닌 신기한 쿼리를 보았습니다. 조사 결과 해당 공격은 SQL 인젝션이었습니다. 이번에는 SQL 인젝션과 이를 예방하는 방법에 대하여 알아보겠습니다.주의 : 본 게시글은 교육용으로 작성한 게시글입니다. 실제 서버에 공격 기법을 사용하면 불법이며, 민형사상의 책임을 질 수 있습니다. SQL 인젝션(SQL Injection)SQL 인젝션은 WAS에서 사용자 입력의 입력값을 제대로 검증하지 않고 SQL 쿼리에 삽입하는 경우 발생하는 보안 취약점입니다. 공격자가 검색창, 로그인 화면 등 입력창에 악의적인 SQL 코드를 주입하면, 원래 의도한 쿼리와 다른 동작을 하게 만들어 데이터베이스를 무단으로 조정할 수 있..

일렉기타 이야기 (5) - 험노이즈를 줄이는 DI 박스

페달보드 만들 때 처음에는 문제가 없었으나 어느 순간 노이즈가 심한 것을 느꼈습니다. 최근에 해당 이슈를 해결하기 위해 이것저것 테스트를 한 결과 접지가 되지 않아 그라운드 루프 상태가 되면서 노이즈가 발생한 것을 알았습니다. 왜 노이즈가 발생했을까?현재 사용하는 기타는 싱글픽업 텔레캐스터입니다.싱글픽업 같은 경우에는 구조상 전자기파 간섭을 그대로 받아들이는 특성이 있습니다. 이에 따라 생기는 잡음을 험 노이즈(Hum noise)라고 합니다. 험노이즈를 줄이는 방법으로 다양한 방법이 있습니다.픽업 교체(험버커 픽업) : 두 개의 코일을 역위상으로 배치하여 서로의 힘을 상쇄합니다. (노이즈 감소 톤이 두꺼워집니다)쉴딩 : 픽업 및 컨트롤 플레이트 내 전도성 물질(구리, 알루미늄)을 덮어서 전자기파를 차단합..

Oracle (9) - 오라클에서 스케줄러를 만들어보자 (Scheluler)

회사 내 업무를 줄이기 위해 자동화 작업을 다수 진행하고 있습니다. 이 중에서 동기화 및 일간 백업 등 스케줄러가 필요한 작업이 있습니다. 예를 들어 매일 반복되는 백업, 로그 정리, 동기화 작업등 이런 작업을 수동으로 한다면 많은 시간이 소요됩니다. 과거에는 가로등을 일일이 켜야 했지만, 전기 시스템의 발전으로 자동화되었습니다. 이를 DB 작업도 오라클 스케줄러를 통해 자동화할 수 있습니다. 스케줄러(scheluler)는 무엇인가?스케줄러(Scheduler)는 사전적인 의미로 일정 관리 및 작업을 계획하는데 조정되고 사용되는 시스템이나 도구를 뜻합니다. 스케줄러는 주로 특정 시간이나 조건에 따라 작업을 자동으로 실행하도록 설정할 수 있으며, 이러한 작업 관리의 자동화를 통하여 작업의 효율성을 향상합니..

컴퓨터/Oracle 2025.07.26

일렉기타 이야기 (4) - 오버드라이브 하나면 충분한줄 알았던 이야기

기타 이펙터를 처음 살 때 오버드라이브 하나면 대부분의 소리는 보완할 수 있다고 생각했습니다. 초반에는 해당 부분에 대한 불편함을 느끼지 못하였으나 다양한 톤을 시도하면서 부족함이 느껴졌고, 그 과적을 적어보려고 합니다. 오버드라이브와 디스토션처음에는 두 이펙터가 단지 소리를 '왜곡시키는 역할'로 생각하였습니다. 그래서 어느 정도 대체가 될 것으로 생각하였으나 실제로는 느낌도, 쓰임새도 다르다는 것을 알게 되었습니다.구분오버드라이브(Overdrive)디스토션(Distortion)소리따뜻하고 미들이 강조됨거칠고 꽉 찬 느낌클리핑 방식대부분 소프트 클리핑대부분 하드 클리핑음악장르블루스, 펑크 등메탈, 하드락 등톤 컨트롤원래 톤을 자연스럽게 밀어줌원래 톤을 찌그러뜨려 새 색을 입힘 클리핑 방식파형으로 볼때 클..

Windows - 관리자 모드로 실행하는 작업스케줄러 만들기

서론서버랙 구조로 컴퓨터를 운영하다 보니 팬 소음에 대한 고민이 많았습니다. 녹투아를 쓰는 방법이 가장 좋으나 비용 부담이 커서 소프트웨어로 팬 소음을 줄이는 방법을 연구하였습니다. 그래서 Fancontrol을 사용하게 되었으나 프로그램을 직접 실행해야 하는 단점이 있습니다. 해당 게시글에는 윈도우 작업 스케줄러를 이용해 Fancontrol을 컴퓨터 로그인 시 관리자 권한으로 실행하겠습니다. 관리자 모드로 실행하는 시작프로그램 만들기우선 시작프로그램을 실행하는 방법은 크게 작업 스케줄러, 시작프로그램 파일 추가, 레지스트리 추가의 방법을 가지고 있으나 가장 단순하게 할 수 있으면서 강력한 작업스케줄러를 이용한 방법을 소개하려고 합니다. 먼저 작업 스케줄러(Task Schedular)를 들어갑니다. 실행 ..

컴퓨터/Windows 2025.06.08

일렉기타 이야기 (3) - 멀티이펙터 구성 변경 (M-VAVE Blackbox 리뷰)

기존에는 Sonicake Matribox1을 메인 멀티 이펙터로 사용하고 있었습니다. 다양한 기능을 갖춘 좋은 제품이지만, 실제로는 멀꾹이 보드에 없는 모듈레이션이나 디스토션 이외 기능은 거의 사용하지 않았습니다. 그러다 보니 자연스럽게 생각이 들었습니다. 기능이 많은 것보다 특장점이 있는 제품이 필요하지 않을까? 해당 고민을 가진 끝에 M-VAVE 블랙박스를 구매하게 되었습니다. M-VAVE 블랙박스그렇게 산 제품이 블랙박스라는 제품입니다. 아담한 사이즈를 가졌으며 이펙터보단 전자제품 느낌이 가까웠던 제품이었습니다. 앰프시뮬 / IR 기능해당 이펙터의 특장점은 앰프시뮬과 IR 기능을 외부에서 가져올 수 있다는 점입니다. 아래 링크에서 프로그램을 설치하도록 합니다.https://www.cuvave.co..

LLM (2) - 텍스트 파일을 바탕으로 RAG 검색을 해보자

인공지능 모델을 구성하는 경우 프롬프트 엔지니어링과 파인튜닝입니다. 해당 방식은 특정 주제나 도메인에 대한 LLM의 성능을 향상시키는데 효과적입니다. 하지만 실시간으로 바뀌는 정보에는 한계가 있습니다. LLM에 데이터를 주기 위해서는 조금 다른 방법이 필요합니다. 여기서 등장하는 기술이 RAG입니다. RAG(Retrieval-Augmented Generation)RAG는 말 그대로 검색(Retrieval)과 생성(Generation)을 결합한 방식입니다. LLM이 대답을 생성하기 전, 외부 데이터에서 관련 정보를 찾아온 후, 이를 바탕으로 더 신뢰도 높은 답변을 생성하는 방식입니다. RAG는 다음과 같은 방식으로 작동합니다.질문 입력외부 문서나 DB에서 관련 데이터 검색검색된 데이터 기반 답변 생성기존 ..

컴퓨터/LLM 2025.05.27

디자인패턴 - 디자인패턴(Design Pattern)에 대하여 알아보자

정보처리기사를 공부할 때 디자인패턴이라는 개념을 접하게 되었습니다. 소프트웨어를 만들 때 여러 개발자가 협업하고 코드를 효율적으로 관리하기 위한 하나의 방법입니다. 디자인 패턴이 왜 중요하고 GoF(Gang of Four)의 23가지 디자인 패턴을 간단한 설명과 함께 알아보려고 합니다. 왜 디자인패턴이 필요할까?여러 사람이 함께 하나의 소프트웨어를 개발할 때 큰 어려움 중 하나는 다른 사람의 코드를 이해하는 것입니다. 다른 사람이 작성한 코드를 파악하고 수정하거나 기능을 추가하는 과정은 자칫하면 예상치 못한 버그를 발생시키거나 성능을 저하할 수도 있습니다. 디자인 패턴은 소프트웨어 설계 문제에 대한 검증된 해결 방법 모음이자 개발자 간의 효율적인 의사소통 방법입니다. 특정 패턴을 적용했다는 것만으로도 코..

Python (28) - 오버로딩(Overloading)과 오버라이딩(Overriding)

객체지향 프로그래밍(OOP)에서 자주 등장하는 개념 중 하나가 오버로딩과 오버라이딩입니다.이 둘의 이름은 비슷하지만, 개념과 사용 방식은 전혀 다릅니다.보통 Java나 C++로 설명하지만 파이썬을 기준으로 두 개념을 설명하려 합니다. 오버로딩 (Overloading) 오버로딩은 같은 함수 이름을 사용하지만, 매개변수의 타입이나 개수에 따라 다르게 동작하도록 하는 기법입니다. Java나 C++ 같은 언어는 함수 오버로딩을 기본적으로 지원하지만, 파이썬에서는 오버로딩을 지원하지 않으며 multipledispatch 패키지를 사용하여 구현할 수 있습니다. 패키지 설치pip install multipledispatch 사용예시from multipledispatch import dispatch@dispatch(i..

컴퓨터/Python 2025.05.04