목록분류 전체보기 (165)
IT 일기장
테이블에 공통적으로 들어가는 아이피 주소를 ipv4 버전 데이터로 넣으려다가ipv6 버전 데이터도 고려해 VARCHAR(15) 에서 VARCHAR(45)로 변경하고 싶다. 그럴려면 컬럼을 변경해야되는데.. 테이블도 많고 하니 일괄로 변경하고 싶다.그래서 프로시저를 사용했다. 우선 조건에 맞는 컬럼들을 검색하는 CURSOR를 정의해준다.나 같은 경우에는 컬럼명이 모두 Ip로 끝나고 데이터 타입이 VARCHAR, 그리고 길이가 15인 컬럼만 조회하는 쿼리를 짰다. 그 다음 조회한 결과의 테이블명과 컬럼명을 FETCH 한 뒤에 컬럼 변경 쿼리를 LOOP로 돌렸다. CREATE PROCEDURE UpdateDateType()BEGIN DECLARE done INT DEFAULT FALSE; DECLA..
날짜 데이터 저장 방식은 회사의 사용 목적과 시스템의 요구 사항에 따라 다르다.날짜를 저장하는 내가 아는 방법은 2가지가 있었는데 1. DATETIME 타입으로 사용 (년/월/일 시:분:초 통째로 저장)2. CHAR 또는 INT 타입으로 사용 (년,월,일 시,분,초 각각 따로 저장) 어떤 방법이 개발에 유리할까?일반적으로는 DATETIME 타입으로 사용하는 것이 더 유리하다. 그 이유는 아래에서 두 가지 방식의 장단점을 비교해본다. DATETIME의 장점 하나의 필드로 날짜와 시간을 모두 저장하기 때문에 구조가 간단하고 관리가 편리날짜와 시간의 형식이 DB에서 자동으로 관리되므로 입력 및 처리에서 실수 방지날짜와 시간을 기준으로 쉽게 정렬하거나 비교할 수 있음-- 날짜와 시간을 기준으로 비교SE..
사무용 로지텍 키보드를 잘 사용하다가 키보드가 멈추면서 잘 안써지는 경우 때문에 화가난 적이 있다.그 이유를 구글링 해보니 다음과 같이 해결했다. 지금은 문제 없이 잘 사용하는 중이다.제어판 - 전원 옵션 검색 전원 관리 옵션 설정 편집 클릭 - 고급 전원 관리 옵션 설정 변경 클릭 USB 설정 - USB 선택적 절전 모드 설정 - 사용 안 함 클릭 - 적용 후 확인
이 오류는 MySQL에서 발생하는 전형적인 외래 키 제약 조건 위반이다. 보통 외래 키 제약 조건을 가진 테이블에서 부모 테이블의 데이터를 삭제하거나 수정하려고 할 때 자식(참조하는) 테이블에 여전히 연결된 데이터가 있을 경우 이 오류가 발생한다. 이 오류를 해결할 수 있는 가장 빠른 방법은 자식 테이블에서 어떤 데이터가 부모 데이터를 참조하고 있는지 조회하는 것이다. MySQL의 INFORMATION_SCHEMA를 활용해 외래 키 관계를 확인할 수 있다. SELECT TABLE_NAME AS child_table, COLUMN_NAME AS child_column, CONSTRAINT_NAME AS constraint_name, REFERENCED_TABLE_NAME AS pare..
jsp에서 tld와 java 태그 클래스를 활용해서 동적인 html을 만들어봤다..원래는 jsp 안에 로 java 코드를 넣는 방식으로 처리하려고 했었는데,코드가 점점 지저분해질 것 같아서 태그 클래스를 만들어 보기로 했다.tld를 설정하고, 매개변수를 처리하고, html을 생성하는 과정을 다 만들어야해서 조금 귀찮긴 하지만.. 일단 시행 tld 파일 생성 tld는 예전에 써본 적이 있었지만, 이번엔 매개변수를 여러 개 받는 태그를 만들어야 해서 새로 설계해야 했다.selectBox, radio, checkbox 같은 동적인 html 요소를 태그로 작성하고 싶었다. WEB-INF/tld 경로에 custom.tld 파일을 만들었다. 태그 이름과 사용할 속성을 정의해주는 게 핵심이다. 1.0 cu..
프로젝트 진행 중에 이사님이 만드신 탭 UI가 있다.그 탭 마다 닫기(X) 버튼이 존재하고, 누르면 탭이 닫히고 컨텐츠가 사라지는 형식이다.보자마자 딱 떠오른게 "모두 닫기", "현재 탭 제외하고 닫기" 가 떠올랐는데 모두 닫기부터 구현해봤다. 모두 닫기 화면을 보여주는 형식2가지 정도 생각해볼 수 있었는데.. 하나는 탭에서 오른쪽 클릭을 눌렀을 때, 다른 하나는 버튼 형식으로 화면에 보여주는 형태다.개인적으로 나는 오른쪽 클릭을 많이 쓰기 때문에 오른쪽 클릭을 눌렀을 때로 구현했다. ( 다른 사람들의 의견은 후자의 방법을 선택 ) 나만 편하면 되는 것이 아닌 UI를 이용하는 사람들의 의견이 더 중요하기에 고려할 필요가 있다. 간단한 탭 예제를 만들어 기록용으로 남겨놔야지.. See the Pen..
SI 프로젝트 중간에 투입하면서 가장 곤란한 부분이 파일명과 Java 함수에 대한 명칭 등..제대로 된 명명 규칙이 안 정해져 있을 때이다. 참고할 만한 용어정의서나 문서 같은 것들도 없다면만들던가 아니면 번역기 돌려서 새로 만들던가.. 사소한데 쌓이면 시간을 여간 잡아먹는게 아니다. 어떤 프로젝트를 투입하든 바로바로 쓸 수 있는건.. 그 프로젝트들마다 규칙이 다르기 때문에 욕심이고적어도 현재 프로젝트에서는 사용할 수 있도록 구현.. 이 프로젝트는 Impl를 사용하지 않았다. /*포탈 DB 테이블명과 컬럼명들을 쉼표로 구분해서 입력하면 Controller, Service, Mapper, xml 파일 생성## 입력 예시테이블명을 입력하세요 : bpp_por_test컬럼명을 쉼표(,)로 구분하여 입력하세..
이 글은 input type이 text였을 때가 아닌 number인 상황이었을 때 maxlength가 작동하지 않는 점에 대해 작성했다.text였다면 저 maxlength가 제대로 먹혔을 텐데..아래 GIF 이미지와 같이 number로 설정했을 때 우측에 생기는 화살표로는 max와 min 속성이 제대로 작동하지만사용자가 직접 입력했을 때는 먹히지 않는다.maxlength도 마찬가지였다. 따라서 javascript나 jquery를 이용해서 사용자가 입력했을 때 maxLength 속성을 가져와내가 입력한 길이와 비교해서 입력한 길이가 더 길면 maxLength까지 자르는 방식으로 처리한다. var $fileCountInput = $('input[name="${pageId}ppbFileCount"]'..