서버 장애 대응 및 복구 과정 기록
9월 24일 오전 9시 30분 경, 회사 서버에 접속이 불가능한 현상 발생. 데이터센터 측에 재시작 요청했으나 반응 없으며, 최종적으로는 네트워크 카드 상태등이 꺼져 있음을 확인. 이로 인해 메일 서버, SVN 서버, 테스트 환경 등 여러 시스템이 동시에 중단되며 업무에 큰 차질이 발생.
오전 10시부터 본격적인 복구 작업 시작. 주요 과제는 다른 서버에서 메일 시스템을 ...
8월 1일 10:57에 게시됨
Ansible를 활용한 MySQL 및 Apache 자동 배포와 HTTP 응답 코드 분석
Ansible Playbook을 통한 MySQL 이진 방식 설치
다음은 Ansible을 사용하여 리눅스 환경에 MySQL 5.7.33을 이진 파일로 배포하는 실습 예제이다. 이 작업은 제어 노드에서 실행되며, 대상 호스트에 대해 일관된 방식으로 데이터베이스 서버를 설치하고 초기화한다.
[root@control ansible]# tree
.
├── ansible.cfg
├── files
│ ├── my.cnf
│ └── mysql-5.7.33-linux- ...
8월 1일 07:19에 게시됨
Java Swing과 MySQL을 활용한 학생 출석 관리 시스템
시스템 기능 설명
Java Swing과 MySQL 기반 학생 출석 관리 시스템은 학생, 교사, 시스템 관리자 세 가지 역할로 구성됩니다.
학생 기능
시스템 로그인
비밀번호 변경 및 시스템 종료
학생 목록 조회
수강 과목 선택
출석 체크
교사 기능
학생 등록 및 관리
학급 생성 및 관리
교사 목록 조회
강의 등록 및 관리
수강 신청 관리
출석 기록 관리 ...
7월 31일 21:25에 게시됨
MySQL 환경 구축 및 기초 활용
데이터베이스 개요데이터베이스는 체계적으로 저장된 데이터 합체이자 관리 체계입니다. 엑셀 등의 스프레드시트로는 대용량 데이터 관리, 동시 접근 처리, 잡한 집계와 조인 연산 등의 한계가 있어 전문 DBMS가 필요하게 되었습니다.DBMS 유형 비교관계형(RDBMS)스키마 기반의 엄격한 구조, 테이블 간 관계 정의영구 저장을 위한 디스크 기반 저장소 활용대표 제품: Postg ...
7월 31일 14:52에 게시됨
MySQL 쿼리 캐시 이해와 활용
데이터베이스 시스템에서 반복적인 쿼리 실행은 성능 병목 현상을 유발할 수 있습니다. MySQL의 쿼리 캐시는 이러한 반복적인 쿼리의 결과를 메모리에 저장하여, 동일한 쿼리가 다시 실행될 때 데이터베이스 서버의 부하를 줄이고 응답 시간을 단축하는 데 기여합니다.
쿼리 캐시 동작 방식
클라이언트가 MySQL 서버로 SQL 쿼리를 전송하면, 서버는 다음 단계를 거칩니다: ...
7월 31일 12:08에 게시됨
JSP 웹사이트 개발: 페이지네이션 구현
이번 문서에서는 JSP를 사용한 웹사이트 개발에서 자주 사용되는 페이지네이션 기능을 구현하는 방법에 대해 설명합니다. 특히 데이터가 많은 경우 유용한 '바이두 스타일'의 페이지네이션을 예제로 다룹니다.
데이터 개수 조회 메소드:
public int getTotalCount() {
int count = 0;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet ...
7월 29일 06:57에 게시됨
자바 리플렉션을 이용한 동적 데이터베이스 스키마 생성 도구 개발
자바의 객체 지향 프로그래밍 아키텍처에서 클래스와 데이터베이스 테이블은 일대일 대응 관계를 갖는 경우가 많습니다. 수많은 클래스에 대해 매번 수동으로 테이블 생성 스크립트를 작성하는 것은 비효율적인 반복 작업입니다. 자바의 강력한 기능인 리플렉션(Reflection)과 어노테이션(Annotation)을 활용하면 클래스 구조를 런타임에 분석하여 MySQL 테이블 생성 쿼리( ...
7월 27일 16:04에 게시됨
MySQL 성능 극대화를 위한 고급 SQL 최적화 기법
1. 대량의 데이터 삽입 최적화
대량의 데이터를 데이터베이스에 적재할 때는 일반적인 INSERT 문보다 효율적인 방법을 선택해야 합니다.
LOAD DATA 명령 활용
텍스트 파일 등에 저장된 대량의 데이터를 가져올 때는 LOAD DATA 구문이 가장 빠릅니다.
LOAD DATA LOCAL INFILE '/data/user_logs.csv'
INTO TABLE member_data
FIELDS TERMINATED BY ','
LINES TERMINATED ...
7월 27일 08:50에 게시됨
MySQL SQL 쿼리 처리 메커니즘
MySQL은 크게 서버 계층과 스토리지 엔진 계층, 두 가지 주요 부분으로 나눌 수 있습니다.
서버 계층은 커넥터(Connector), 쿼리 캐시(Query Cache), 분석기(Parser), 최적화기(Optimizer), 실행기(Executor) 등을 포함하며, MySQL의 대부분의 핵심 서비스 기능과 모든 내장 함수(날짜, 시간, 수학, 암호화 함수 등)를 담당합니다. 스토어드 프로시저, 트리거, 뷰와 같이 ...
7월 27일 08:45에 게시됨
MySQL DEFINER 및 SQL 보안 속성 이해하기
MySQL 데이터베이스에서 뷰(View), 저장 함수(Function), 저장 프로시저(Stored Procedure), 트리거(Trigger), 이벤트(Event)와 같은 객체를 생성할 때, DEFINER 옵션과 SQL SECURITY 속성은 중요한 역할을 합니다. 이들은 객체의 실행 권한 및 보안에 직접적인 영향을 미치므로, 이를 정확히 이해하는 것이 안정적인 데이터베이스 운영에 필수적입니다.
DEFINER 옵션과 S ...
7월 27일 02:09에 게시됨