Develop 162

[PostgreSQL] SELECT 데이터를 INSERT하는 방법

PostgreSQL에서는 INSERT INTO ... SELECT 구문을 사용하여 기존 테이블에서 데이터를 조회(SELECT)하고 이를 새로운 테이블에 바로 삽입할 수 있습니다. 이 방법은 데이터 마이그레이션이나 백업, 데이터 가공 후 저장 등의 작업에 유용합니다. 아래에 예제와 함께 자세히 설명하겠습니다.1. 기본 구문INSERT INTO target_table (column1, column2, column3, ...)SELECT column1, column2, column3, ...FROM source_tableWHERE 조건; target_table: 데이터를 삽입할 테이블source_table: 데이터를 조회할 테이블column1, column2, ...: 삽입하거나 조회할 컬럼들WHERE 조건:..

Develop 2025.01.22

데이터베이스의 개행문자를 HTML에서 줄바꿈으로 표시하는 3가지 방법

웹 개발을 하다 보면 데이터베이스에 저장된 텍스트 데이터를 웹 페이지에 표시해야 할 때가 많습니다. 특히 데이터가 여러 줄로 나뉘어 저장된 경우, 줄바꿈이 웹 브라우저에 제대로 표시되지 않으면 가독성이 떨어질 수 있습니다. HTML에서는 줄바꿈을 위해  태그를 사용해야 하지만, 개행 문자(\n, \r\n)는 HTML에서 무시됩니다.이번 글에서는 HTML 태그와 CSS 스타일을 활용한 방법, 그리고 서버와 클라이언트에서 데이터를 처리하는 방법을 예제와 함께 소개합니다.1. 문제 상황예시 데이터데이터베이스에 아래와 같은 텍스트가 저장되어 있다고 가정합니다.안녕하세요.저는 데이터베이스에서 온 텍스트입니다.개행 처리가 필요합니다. 이 데이터를 HTML에 출력하면 다음과 같이 표시됩니다.안녕하세요. 저는 데이터베..

Develop 2025.01.21

[JavaScript] 문자열을 구분자로 배열로 나누는 방법 - Split()

JavaScript에서 문자열을 특정 구분자를 기준으로 나누어 배열로 변환하는 가장 기본적인 방법은 split() 메서드를 사용하는 것입니다. 이번 글에서는 split() 메서드의 사용법과 함께 다양한 예제를 통해 이를 이해해보겠습니다.기본 사용법split() 메서드는 문자열을 지정된 구분자로 나누어 배열로 반환합니다.const text = "apple,banana,grape";const result = text.split(",");console.log(result); // 출력: ["apple", "banana", "grape"] 위 예제에서 문자열 text는 쉼표(,)를 기준으로 나뉘어 세 개의 요소를 가진 배열로 변환됩니다.공백을 기준으로 나누기공백 문자를 기준으로 문자열을 나눌 수도 있습니다.co..

Develop 2025.01.20

CI와 DI의 개념 및 용도

본인인증 값인 CI와 DI의 개념 및 용도온라인 서비스나 금융 거래 등에서 본인 인증은 필수적인 절차입니다. 이 과정에서 사용되는 값 중 CI(Connecting Information)와 DI(Duplicated Information)는 사용자의 정보를 식별하고 보호하는 중요한 역할을 합니다. 이 글에서는 CI와 DI의 개념, 용도, 그리고 활용 사례에 대해 자세히 알아보겠습니다.1. CI(Connecting Information)란?CI는 사용자의 본인 인증 과정에서 생성되는 고유 식별값입니다. 이 값은 사용자를 특정 서비스에서 유일하게 식별할 수 있도록 설계되었습니다.CI는 보통 암호화된 형태로 생성되며, 인증기관이 사용자의 정보를 암호화 처리하여 생성한 값으로, 사용자가 동일한 인증기관을 통해 본인..

Develop 2025.01.20

[jQuery] forEach 와 each 사용법과 다양한 예제

forEach는 자바스크립트에서 배열을 반복 처리할 때 많이 사용되는 메서드입니다. 하지만 jQuery에서도 비슷한 방식으로 배열이나 객체를 반복 처리할 수 있는 기능이 제공됩니다. 이번 글에서는 jQuery의 반복 처리를 돕는 .each() 메서드를 중심으로 다양한 예제를 살펴보겠습니다.jQuery에서 forEach와 .each()의 차이점기본적으로, forEach는 자바스크립트 배열의 메서드입니다. 반면, jQuery의 .each() 메서드는 배열뿐만 아니라 객체나 DOM 요소에도 사용할 수 있어 보다 유연합니다.기본 문법JavaScript의 forEachlet arr = [1, 2, 3];arr.forEach(function(value, index) { console.log(`인덱스: ${in..

Develop 2025.01.13

[MAC] 'Docker.app'은(는) 사용자의 컴퓨터를 손상시킵니다. 해당 항목을 휴지통으로 이동해야 합니다. - 해결방법

이 문제가 발생하면 다음 절차를 시도해 보세요( root사용자 액세스 필요):Docker Desktop을 종료하고 활동 모니터를 사용하여 실행 중인 나머지 Docker 프로세스가 없는지 확인합니다.다음 명령을 실행하세요.#!/bin/bash# Stop the docker servicesecho "Stopping Docker..."sudo pkill '[dD]ocker'# Stop the vmnetd serviceecho "Stopping com.docker.vmnetd service..."sudo launchctl bootout system /Library/LaunchDaemons/com.docker.vmnetd.plist# Stop the socket serviceecho "Stopping com.do..

Develop/MAC 2025.01.10

[Java] REST API 호출 및 JSON 데이터를 DTO로 파싱하는 방법

REST API를 호출하여 리턴받은 JSON 데이터를 Java DTO로 파싱하는 방법을 알아보겠습니다. 이번 예제는 JSON 데이터가 2-Depth 구조를 가지며, DTO 내부에 또 다른 DTO를 포함하는 구조를 가정합니다.1. 준비 사항REST API 호출과 JSON 파싱을 위해 다음 라이브러리를 사용합니다:HttpClient (Java 11+ 기본 제공)Jackson 라이브러리 (com.fasterxml.jackson) com.fasterxml.jackson.core jackson-databind 2.15.2 2. JSON 데이터 예시아래와 같은 JSON 데이터를 REST API로부터 받는다고 가정합니다.{ "id": 1, "name": "John Doe", "address": ..

Develop/JAVA 2025.01.08

[MyBatis] foreach 사용 방법 - list dto map 예제

MyBatis의 foreach는 SQL 문에서 반복적으로 조건을 구성하거나 값을 설정할 때 유용하게 사용됩니다. 이 글에서는 parameterType이 list, DTO 내의 list 객체, 그리고 map인 경우로 나눠 예제를 제공하며, DTO 내의 리스트가 DTO 객체의 리스트인 경우와 map에서 키를 갖는 경우를 함께 설명합니다.1. parameterType이 list인 경우parameterType이 list일 때, MyBatis는 전달된 리스트를 반복하여 SQL을 생성합니다.XML Mapper 예제 SELECT * FROM users WHERE id IN #{id}  Java 코드 예제List userIds = Arrays.asList(1, 2, 3, 4)..

Develop 2025.01.08

[PostgreSQL] 함수(function)나 프로시저(procedure) 내용을 검색하거나 조회하는 방법 : 한방쿼리

PostgreSQL에서 함수(function)나 프로시저(procedure)의 소스 내용에 특정 텍스트를 검색하려면, 함수 본문을 저장하는 시스템 카탈로그인 **pg_proc**의 prosrc 컬럼을 활용하면 됩니다. 아래에 이를 수행하는 구체적인 방법을 정리하였습니다.1. pg_proc에서 소스 내용 검색pg_proc.prosrc 컬럼은 함수 또는 프로시저의 본문(소스 코드)을 포함합니다. 특정 키워드를 검색하려면 다음과 같은 SQL 쿼리를 사용할 수 있습니다.특정 키워드 검색SELECT nspname AS schema_name, proname AS function_name, prosrc AS function_bodyFROM pg_procJOIN pg_namespace ON pg_..

Develop 2025.01.07

[MyBatis] selectKey를 사용하여 생성된 키값을 Java에서 리턴받는 방법

실무에서는 데이터베이스에 새 레코드를 삽입하면서 생성된 키값(예: AUTO_INCREMENT 값)을 객체에 매핑하고, 이를 서비스나 다른 로직에서 활용하는 일이 흔합니다. 이번 글에서는 실무에서 자주 사용하는 패턴을 중심으로 selectKey를 이용해 키값을 가져오는 방법을 설명합니다.selectKey 실무 활용 시 주의점데이터베이스의 자동 키 생성 방식 파악MySQL, PostgreSQL, Oracle 등 데이터베이스마다 키 생성 방식이 다릅니다.예:MySQL: AUTO_INCREMENT + LAST_INSERT_ID()PostgreSQL: SERIAL 또는 RETURNING idOracle: SEQUENCE키값 매핑 확인MyBatis에서 keyProperty가 올바른 필드에 매핑되는지 검증합니다. 필..

Develop 2024.12.31