Develop 111

Java의 객체 지향 프로그래밍 원칙 (OOP Principles in Java)

Java의 객체 지향 프로그래밍(OOP) 원칙은 소프트웨어 설계의 기본 개념으로, Java뿐 아니라 다양한 프로그래밍 언어에서도 중요한 개념입니다. 객체 지향 원칙을 잘 이해하고 활용하면 더 유지보수성 있고 확장성이 뛰어난 코드를 작성할 수 있습니다. Java의 OOP 원칙에는 추상화, 캡슐화, 상속, 다형성이 있으며, 이를 잘 활용한 예제를 통해 자세히 설명해 보겠습니다.Java의 객체 지향 프로그래밍 원칙 (OOP Principles in Java)1. 추상화 (Abstraction)추상화는 객체의 핵심적인 속성과 기능을 나타내고 불필요한 세부 사항을 감추는 개념입니다. 예를 들어, 자동차 클래스는 운전과 관련된 기능(가속, 감속 등)은 포함하되, 엔진 내부의 복잡한 작동 원리와 같은 것은 숨깁니다...

Develop 2024.11.10

[jQuery] script 실행 순서 ready, load 및 기타 실행 순서 제어 방법

웹 페이지의 스크립트 실행 순서는 사용자 경험과 페이지의 기능성에 큰 영향을 미칩니다. 특히 jQuery에서는 $(document).ready()와 $(window).load()를 통해 스크립트가 실행되는 타이밍을 제어할 수 있습니다. 이 글에서는 두 가지 메서드의 차이점과 그 외 스크립트 실행 순서에 영향을 줄 수 있는 방법들을 설명하고, 실제 예제 코드를 통해 이해를 돕겠습니다.1. $(document).ready()$(document).ready()는 문서의 DOM이 완전히 로드된 후 실행됩니다. HTML 요소들이 준비된 상태에서 스크립트를 실행하고자 할 때 유용하며, 이미지, 스타일시트, 기타 리소스의 로딩은 기다리지 않습니다.$(document).ready(function() { conso..

Develop 2024.11.07

[Visual Studio Code] VS Code 정규식(RegEx) 검색 사용하기

1. 기본 검색 기능VS Code에서는 단어 검색을 기본으로 제공합니다. 키보드 단축키 Ctrl + F(Mac: Cmd + F)를 사용하면 현재 파일 내에서 검색 창을 열 수 있습니다. 또한 Ctrl + Shift + F(Mac: Cmd + Shift + F)를 사용하면 전체 워크스페이스 내 검색이 가능합니다.기본 검색 예제특정 단어 검색: **Ctrl + F**를 누르고 example을 입력하면 현재 파일에서 example이라는 단어를 모두 찾아줍니다.워크스페이스 검색: **Ctrl + Shift + F**를 사용해 검색 창에 example을 입력하면, 프로젝트 전체에서 해당 단어가 포함된 모든 파일을 찾아줍니다.2. 정규식(RegEx) 검색정규식을 사용하면 특정 패턴을 가진 문자열을 찾을 수 있습니다..

Develop/Settings.. 2024.11.06

[jQuery] click 이벤트와 touchend 이벤트의 차이점 및 예제

jQuery에서 click과 touchend 이벤트를 함께 사용해야 하는 경우와 따로 사용해야 하는 경우를 이해하는 것은 모바일과 데스크톱 간 사용자 경험을 최적화하는 데 중요합니다. 두 이벤트의 차이점과 함께 언제 어떤 상황에서 적합한지, 예제 코드를 통해 설명하겠습니다.click 이벤트와 touchend 이벤트의 차이점click 이벤트대상: 마우스 클릭 (주로 데스크톱 환경)특징: 기본적으로 클릭을 감지하며, 모바일 환경에서도 작동하지만, 일부 환경에서는 딜레이가 있을 수 있습니다.딜레이 문제: 모바일 기기에서는 약 300ms 정도의 딜레이가 발생할 수 있습니다. 이는 이중 클릭 방지와 같은 사용자 경험을 위해 설계된 것입니다.touchend 이벤트대상: 터치 스크린에서 손을 떼는 동작 (주로 모바일..

Develop 2024.11.05

[jQuery] document ready 와 window load의 차이와 사용법

jQuery에서는 페이지가 로드되었을 때 실행할 코드를 작성할 수 있는 여러 기본 함수가 있습니다. 그중에서도 자주 사용되는 $(document).ready()와 $(window).load()의 차이점을 알고 상황에 맞게 사용하는 것이 중요합니다. 각 함수가 어떤 기능을 수행하며 언제 사용하는지 예제와 함께 살펴보겠습니다.1. $(document).ready()란?$(document).ready() 함수는 DOM(Document Object Model)이 준비되었을 때 실행됩니다. 즉, 페이지의 HTML 요소가 모두 로드되고 구조가 준비되면 실행됩니다. 이미지나 외부 리소스가 모두 로드될 때까지 기다릴 필요 없이 DOM만 준비되면 실행되기 때문에 빠르게 실행됩니다.사용 예시버튼을 클릭했을 때 이벤트를 적..

Develop 2024.11.04

[PostgreSQL] WITH 문법 상황별 사용 예제

PostgreSQL에서 WITH 문법은 **공통 테이블 표현식(CTE, Common Table Expression)**을 정의할 때 유용하게 사용됩니다. CTE를 사용하면 복잡한 쿼리를 가독성 있게 작성할 수 있으며, 중복된 서브쿼리를 줄여 성능을 개선할 수 있습니다. 이번 글에서는 WITH 문법을 상황별로 어떻게 활용할 수 있는지 다양한 예제를 통해 설명하겠습니다.1. 기본 사용법: 단순한 CTE 사용WITH 구문은 서브쿼리를 메인 쿼리 전에 미리 정의하고, 그 결과를 메인 쿼리에서 참조할 수 있게 합니다. 이를 통해 복잡한 쿼리를 분리하고, 코드 가독성을 높일 수 있습니다.예제: 특정 사용자의 최근 주문을 조회하는 쿼리WITH recent_orders AS ( SELECT order_id, us..

Develop 2024.11.04

[jQuery] 요소의 data 속성 선택자 사용법과 다양한 예제들

1. 기본 선택자  1.  아이디 선택자: 특정 아이디를 가진 요소를 선택합니다.$('#myId');    2. 클래스 선택자: 특정 클래스를 가진 요소들을 선택합니다.$('.myClass');   3.  태그 선택자: 특정 태그 이름을 가진 요소들을 선택합니다.$('div');   4.  전체 선택자: 모든 요소를 선택합니다.$('*');2. 복합 선택자  1.  그룹 선택자: 여러 선택자를 동시에 사용하여 일치하는 모든 요소를 선택합니다.$('h1, .myClass, #myId');   2.  자식 선택자: 특정 요소의 직계 자식 요소를 선택합니다.$('ul > li');   3.  하위 선택자: 특정 요소의 모든 하위 요소를 선택합니다.3. 속성 선택자  1.  특정 속성을 가진 요소 선택:$('i..

Develop 2024.11.01

[PostgreSQL] insert 혹은 update upsert - ON CONFLICT 사용 방법

ON CONFLICT 구문은 PostgreSQL의 INSERT 문에서 중복 충돌을 관리하는 옵션입니다. ON CONFLICT는 일반적으로 데이터를 삽입할 때 기본 키나 고유 제약 조건이 위반되는 경우의 처리를 제어하는 데 유용하며, 데이터베이스에 존재하는 레코드와 삽입할 레코드 간의 중복이 발생할 때 다양한 행동을 지정할 수 있습니다.ON CONFLICT의 주요 구문기본 구문은 다음과 같습니다:INSERT INTO 테이블명 (열1, 열2, ...)VALUES (값1, 값2, ...)ON CONFLICT (열)DO UPDATE SET 열1 = 값, 열2 = 값 이 구문에서:ON CONFLICT (열)은 충돌을 감지할 열을 지정합니다.DO UPDATE SET은 중복된 값이 있을 때 업데이트할 열과 새 값을 ..

Develop 2024.10.31

[JavaScript] Array 배열에서 특정 값 삭제하기 다양한방법

1. splice() 메서드 사용하기splice() 메서드는 배열의 원본을 직접 수정하여 특정 인덱스의 요소를 삭제할 수 있습니다. 이때 요소가 위치한 인덱스를 알아야 합니다.let arr = [1, 2, 3, 4, 5];const index = arr.indexOf(3); // 3의 인덱스를 찾음if (index > -1) { // 인덱스가 존재할 경우 arr.splice(index, 1); // 해당 인덱스의 요소 삭제}console.log(arr); // [1, 2, 4, 5] 위 코드에서는 indexOf()를 사용해 3이 위치한 인덱스를 찾고, 그 인덱스에서 splice()를 통해 값을 삭제했습니다.2. filter() 메서드 사용하기filter() 메서드는 특정 조건에 맞지 않는 요소들만으..

Develop 2024.10.31

[Java] 크로스 사이트 스크립트 (XSS) 취약점 조치방법

크로스 사이트 스크립트 (XSS)란 무엇인가?**크로스 사이트 스크립트(XSS)**는 공격자가 악성 스크립트를 웹 사이트에 삽입하여 사용자 브라우저에서 실행되게 하는 공격 방식입니다. 이로 인해 사용자의 세션, 쿠키, 로컬 스토리지 정보 등을 탈취할 수 있으며, 피싱, 키로깅 등의 악성 행위가 가능해집니다.왜 XSS 취약점을 조치해야 하는가?XSS 공격을 방치할 경우 사용자 데이터 유출, 계정 탈취, 악성 스크립트 실행 등의 보안 위험이 발생할 수 있습니다. 따라서 웹 애플리케이션에서는 XSS 취약점을 미리 방지하는 조치가 필요합니다.XSS 방지 방법Java에서는 다음과 같은 방법으로 XSS를 방지할 수 있습니다.입력 값 검증: 사용자 입력을 검증하고 불필요한 특수 문자를 제거하여 안전하게 처리합니다.출..

Develop/JAVA 2024.10.30