기본 콘텐츠로 건너뛰기

HTML + CSS로 헤더 고정 테이블 만들기 | position: sticky 활용법

HTML + CSS로 헤더 고정 테이블 만들기 | position: sticky 활용법 AI 생성 이미지: HTML + CSS로 헤더 고정 테이블 만들기 | position: sticky 활용법 스크롤 시 헤더가 고정되는 테이블 만들기 (Sticky Table Header) 많은 데이터를 한 화면에 보여줄 때 열 제목이 사라지면 사용성에 큰 불편이 생깁니다. 이 문서에서는 CSS의 position: sticky; 를 활용해 헤더를 항상 보이게 하는 방법을 단계별로 설명합니다. 실제 예제와 함께 따라하면 금방 적용할 수 있으며, 특히 "HTML + CSS로 헤더 고정 테이블 만들기 | position: sticky 활용법"을 적용하면 표 탐색이 훨씬 수월해집니다. 💡 기본 원리 핵심은 <thead> 의 셀에 position: sticky; 와 top: 0; 을 적용하고, 헤더를 감싸는 부모 컨테이너에는 스크롤이 가능하도록 overflow-y: auto; 를 설정하는 것입니다. 한 문장으로 정리하면: 헤더는 sticky로 고정하고, 스크롤 컨테이너가 있어야 정상 동작합니다. 다만 부모 요소에 overflow: hidden; 이나 일부 레이아웃 상황에서는 sticky가 무시될 수 있으니 주의하세요. 이 방식은 "HTML + CSS로 헤더 고정 테이블 만들기 | position: sticky 활용법"을 이해하는 데 핵심 개념입니다. 🧩 CSS 코드 .tableFixHead { overflow-y: auto; /* 세로 스크롤 가능 */ height: 400px; /* 테이블 높이 설정 */ } .tableFixHead thead th { position: sticky; /* 고정 위치 */ top: 0; /* 상단 기준으로 고정 */ background-color: #f8f8f8; /* 헤더 배경색 (가독성 향상) */ ...

table border-radius

table border-radius AI 생성 이미지: table border-radius 둥근 테두리와 선을 가진 테이블을 만드는 방법 (HTML + CSS) 이 글에서는 table border-radius와 관련된 핵심 기법을 실무적으로 설명합니다. CSS 의 border-radius 속성과 테이블 셀 선택자를 조합해, 모서리가 부드러운 테이블을 만드는 단계별 방법을 다룹니다. 목적은 단순한 시각 개선이 아니라, 코드가 읽기 쉽고 유지보수 가능한 결과를 얻는 것입니다. 1️⃣ CSS 스타일 정의 우선 <style> 안에 스타일을 선언합니다. 아래 예제는 라운딩 박스를 만들고, 각 셀에 경계를 적용한 뒤 중복된 외곽선을 제거하는 방식입니다. <style> .roundingDiv { border: 1px solid #D0D0D0; border-radius: 10px 10px 0 0; overflow: hidden; border-collapse: collapse; } .borderedTable { border-collapse: collapse; width: 100%; } .borderedTable th, .borderedTable td { border: 1px solid #D0D0D0; padding: 10px; text-align: center; } .borderedTable tr:first-child th { border-top: 0; } .borderedTable tr:last-child td { border-bottom: 0; } .borderedTable tr th:first-child, .borderedTable tr td:first-child { border-left: 0; } .borderedTable tr th:last-child, .borderedTable tr td:last-child { border-right...

jQuery prev_week / next_week 유틸 함수로 YYYY-MM-DD 날짜 이동하기

jQuery로 일주일 전·후 날짜 구하기 – prev_week, next_week 함수 구현 웹 화면에서 지난 주 / 다음 주로 이동하는 달력이나 통계 화면 을 만들다 보면 “일주일 전 날짜”, “일주일 후 날짜”를 쉽게 구하는 함수가 있으면 편합니다. jQuery 자체에는 날짜 계산 기능이 없기 때문에 prev_week , next_week 같은 함수는 직접 구현해야 합니다. 이 글에서는 JavaScript의 Date 객체를 활용해 YYYY-MM-DD 형식 으로 일주일 전/후 날짜를 계산하는 방법을 정리합니다. 1. prev_week / next_week 기본 구현 코드 아래 예제는 문자열 날짜(YYYY-MM-DD) 를 받아서 일주일 전/후 날짜를 반환하는 함수입니다. function prev_week(date) { // date를 JavaScript Date 객체로 변환합니다. var newDate = new Date(date); // 7일 전의 날짜를 계산합니다. newDate.setDate(newDate.getDate() - 7); // YYYY-MM-DD 형식으로 반환합니다. return newDate.toISOString().substring(0, 10); } function next_week(date) { // date를 JavaScript Date 객체로 변환합니다. var newDate = new Date(date); // 7일 후의 날짜를 계산합니다. newDate.setDate(newDate.getDate() + 7); // YYYY-MM-DD 형식으로 반환합니다. return newDate.toISOString().substring(0, 10); } 위 함수는 각각 7일 전 / 7일 후 의 날짜를 구한 뒤, toISOString() 으로 문자열로 바꾸고...

PostgreSQL PL/pgSQL 함수 작성 완벽 가이드 — 기본 구조부터 동적 SQL까지 (dynamic table select with function)

PostgreSQL PL/pgSQL 함수 작성 완벽 가이드 — 기본 구조부터 동적 SQL까지 (dynamic table select with function) AI 생성 이미지: PostgreSQL PL/pgSQL 함수 작성 완벽 가이드 — 기본 구조부터 동적 SQL까지 (dynamic table select with function) 핵심 개념과 실무 중심 사용법 PostgreSQL 에서 함수를 만드는 방식은 크게 두 가지입니다. 간단한 연산이나 조회는 순수 SQL 함수로 처리할 수 있고, 복잡한 제어 흐름이나 반복, 예외 처리 등이 필요하면 PL/pgSQL 을 사용합니다. PL/pgSQL은 절차형 언어로서 조건문, 반복문, 지역 변수 같은 프로그래밍 요소를 제공해 복잡한 비즈니스 로직을 데이터베이스 안에서 직접 구현할 수 있습니다. 성능과 유지보수 측면에서 서버 측 로직을 적절히 분리하면 이점이 큽니다. 📘 1. 기본 함수 구조 PostgreSQL 함수는 CREATE FUNCTION 문을 통해 선언합니다. 기본 형태는 다음과 같고, 실제 구현은 반환 타입과 필요한 권한에 따라 달라집니다. CREATE OR REPLACE FUNCTION 함수이름(매개변수) RETURNS 반환타입 LANGUAGE plpgsql AS $function$ BEGIN -- 함수 내용 작성 END; $function$; OR REPLACE : 기존 함수를 안전하게 덮어씀 RETURNS : 스칼라 타입, 레코드, 테이블 형태 등 반환 타입 지정 LANGUAGE plpgsql : PL/pgSQL로 작성되었음을 명시 🔍 2. 예제 함수 - 기간 내 월별 테이블 조회 아래 예제는 두 개의 날짜 입력( p_searchstartdate , p_searchenddate )을 받아 해당 기간에 해당하는 월별 테이블 이름을 조회합니다. 실무에서는 월 단위로 파티...

PL/pgSQL RETURN QUERY EXECUTE 완전 정리 – RETURNS TABLE과 동적 쿼리 활용

PL/pgSQL RETURN QUERY EXECUTE 완전 정리 – RETURNS TABLE과 동적 쿼리 활용 AI 생성 이미지: PL/pgSQL RETURN QUERY EXECUTE 완전 정리 – RETURNS TABLE과 동적 쿼리 활용 PL/pgSQL로 함수를 만들다 보면 테이블 이름이나 조건을 런타임에 결정해야 할 때가 자주 있습니다. 이런 상황에서 동적으로 작성한 SQL을 실행해 결과를 함수 반환값으로 바로 돌려주는 문법이 RETURN QUERY EXECUTE 입니다. 이 글은 RETURN QUERY EXECUTE 의 개념과 기본 문법, 사용 예제, 안전한 파라미터 바인딩 방법, 그리고 실무에서 주의해야 할 점까지 핵심만 골라 정리합니다. 1. RETURN QUERY EXECUTE란 무엇인가? RETURN QUERY EXECUTE 는 함수 내부에서 문자열로 조립한 SQL 문을 실행하고, 그 실행 결과를 현재 함수의 결과 집합(Result Set)에 추가하는 구문입니다. 보통 RETURNS TABLE 이나 SETOF 형태의 함수에서 주로 사용합니다. 기본 형식 RETURN QUERY EXECUTE ' -- 여기에 동적 SQL 작성 SELECT ... '; 위 구조는 함수가 미리 정의한 컬럼 구조에 맞춰 행을 쌓아 반환합니다. 정적 쿼리를 쓸 때의 RETURN QUERY 와 달리 실행할 SQL을 런타임에 조합할 수 있다는 점이 핵심입니다. 2. 가장 기본적인 예제: 테이블 이름을 파라미터로 받기 다음 예제는 함수 인자로 전달된 table_name 을 이용해 해당 테이블의 id 와 name ...

Java JCodec으로 동영상 썸네일(Thumbnail) 추출하기

Java JCodec으로 동영상 썸네일(Thumbnail) 추출하기 AI 생성 이미지: Java JCodec으로 동영상 썸네일(Thumbnail) 추출하기 순수 Java로 작동하는 경량 코덱 라이브러리 JCodec을 이용해 .mp4, .mov 같은 동영상 파일에서 특정 프레임을 이미지로 뽑아내는 실무용 코드를 정리합니다. Java JCodec으로 동영상 썸네일(Thumbnail) 추출하기는 파일 목록 서비스나 업로드 파이프라인에서 썸네일 생성 자동화에 특히 유용합니다. 아래 예제는 서버 부하를 줄이도록 조건부로 동작하며, 실제 운영 환경에 바로 적용할 수 있게 구성했습니다. 1. 💡 JCodec 소개 및 Maven 설정 썸네일 생성은 JCodec의 코덱 처리 모듈과 AWT 기반 이미지 처리를 제공하는 javase 모듈을 조합해 구현합니다. 안정적인 의존성 버전을 사용하면 호환성 문제를 줄일 수 있습니다. Maven pom.xml 의존성 <dependencies> <!-- JCodec Core Library (코덱 처리) --> <dependency> <groupId>org.jcodec</groupId> <artifactId>jcodec</artifactId> <version>0.2.5</version> <!-- 최신 안정화 버전 사용 권장 --> </dependency> <!-- JCodec JavaSE (AWT 유틸리티 및 이미지 처리) --> <dependency> <groupId>org.jcodec</groupId> <artifactI...

Spring MVC: 동적 요청 경로 추출하기 (PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE)

Spring MVC: 동적 요청 경로 추출하기 (PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE) AI 생성 이미지: Spring MVC: 동적 요청 경로 추출하기 (PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE) 대규모 애플리케이션에서 요청 흐름을 명확히 관리하려면 예외 처리와 요청 전후 가로채기가 필수입니다. 이 글에서는 글로벌 예외 처리와 인터셉터를 실무 관점에서 정리하며, Spring MVC: 동적 요청 경로 추출하기 (PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE) 같은 핵심 개념을 함께 설명합니다. 1. 🚨 글로벌 예외 처리: `@ControllerAdvice` 컨트롤러별로 흩어진 예외 처리는 유지보수를 어렵게 만듭니다. `@ControllerAdvice`는 애플리케이션 전역에서 발생하는 예외를 한곳에서 관리해 일관된 에러 응답 형식을 만들고, 비즈니스 로직을 깔끔하게 분리합니다. 또한 Spring MVC: 동적 요청 경로 추출하기 (PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE)와 같은 요청 관련 정보를 활용해 더 세밀한 예외 로깅을 구현할 수 있습니다. `try-catch`를 각 핸들러에 반복하는 대신, `@ExceptionHandler`와 함께 사용하면 공통 응답 규격, 상태 코드 매핑, 그리고 로깅 전략을 중앙에서 통제할 수 있습니다. Java GlobalExceptionHandler.java import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ControllerAdvice; import ...