전체 글 99

Safari에서 JSP에서 엑셀파일 저장시 한글깨짐

JSP에서 한글 파일명을 가진 엑셀파일 생성시 크롬에서는 정상적으로 출력되는 한글이 Safari에서는 깨지는 현상은 아래와 같이 인코딩과 Content-Disposition을 설정하면 해결 할 수 있다.  String fileName = "한글파일명.xls";// 인코드된 파일명의 공백(+)을 %20으로 변환String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replace("+", "%20");// HTTP 헤더 설정response.setContentType("application/vnd.ms-excel;charset=utf-8");// 인코딩된 파일명을 지정하고 Safari와 다른 브라우저에서도 제대로 동작되도록 처리한다. response.se..

Java 2024.07.29

CMD에서 바로가기 링크 만들기

특정 디렉토리를 연결하기 위해선 디렉토리와 디렉토리를 연결하는 링크를 생성해야한다. 마우스 우클릭을 통해 바로가기를 생성하였을 경우에는 확장자가 .lnk 로 생성되어진다. MKLINK로 생성했을 경우엔 SYMLINK가 기본으로 생성되어진다. MKLINK [[/D] | [/H] | [/J]] 링크 대상 /D 디렉터리 바로 가기 링크를 만듭니다. 기본값은 파일 바로 가기 링크입니다. /H 바로 가기 링크 대신 하드 링크를 만듭니다. /J 디렉터리 교차점을 만듭니다. 링크 새 바로 가기 링크 이름을 지정합니다. 대상 새 링크로 참조되는 절대 경로 또는 상대 경로를 지정합니다. 아래의 명령어로 해당 링크가 심볼릭링크인지 일반 링크인지 확인이 가능하다. dir 경로 /A

ETC 2021.09.14

핸드폰 번호 가리기

https://programmers.co.kr/learn/courses/30/lessons/12948?language=java 코딩테스트 연습 - 핸드폰 번호 가리기 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자 programmers.co.kr 1. 처음엔 replace 와 정규식을 이용해 변환해볼까 생각했었다. 하지만 정규식엔 자신이 없으므로 다음 대안으로.. 2. StringBuilder와 substring을 사용하여 해볼까도 했음. 끝 4자리를 제외한 자릿수만큼 StringBuilder에 아스타(*)를 추가할까 싶었는데.. 생각보다 느렸다. * (별..

Code/Programmers 2021.09.02

[프로그래머스] 키패드누르기

** 알고리즘은 초보입니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4-1. 만약 두 엄지손가락의 거리가 같다면, 오른손잡..

Code/Programmers 2021.09.02

Subversion 이관하기

Synology NAS DS415+에 운영하던 Subversion(이하 svn)을 CentOS로 이관해야할 일이 생겼습니다. 1. CentOS에 svn 설치 2. NAS의 svn Repository dump 3. CentOS의 svn에 dump 파일 load 1. CentOS에 svn 설치 난 CentOS에 svn 설치한 경험이 없다. 하지만 걱정하지 않는다. 우선 구글링을 합니다. 유능하신분들의 가르침을 받아 (꾸벅꾸벅) 설치방법을 확인 후 진행합니다. qjadud22.tistory.com/13 CentOS(리눅스) SVN 설치 및 SVN 환경구축 + Eclipse 연동 1장 1. SVN 설치 svn 설치 가능한지 확인 yum list subversion svn 설치 yum install subvers..

ETC 2021.03.25

Table - td index 설정

간혹 html table에서 특정 열을 선택하고 싶을때가 있다. 보통은 nth-child(n) 선택자를 쓴다거나 tr을 for문, filter를 사용하여 td의 index() 값이 일치하는 항목을 선택하는 방식으로 기능을 구현할 수 있다. 하지만 이는 colspan, rowspan이 적용된 cell에 대해선 원하는 index가 선택되지 않게 된다. HTMLTableCellElement의 cellIndex 값은 cell을 감싸고있는 tr 내에서의 index값을 지정하기 때문이다. 0 => cellIndex : 0, 원하는 index값 : 0 1 => cellIndex : 1, 원하는 index값 : 1 3 => cellIndex : 2, 원하는 index값 : 3 4 => cellIndex : 3, 원하는..

Javascript 2020.09.22

Image Lazy Loading

다수의 이미지가 존재하는 화면의 경우엔 이미지가 한꺼번에 로딩이되며 랜더링 속도가 저하된다. 그리고 사용자가 모든 이미지를 다 보지 않을 경우엔 불필요한 이미지가 로딩되어 데이터가 낭비된다. 랜더링 성능 향상 및 불필요한 데이터 낭비를 줄이기 위해 화면에 보여지는 항목만 이미지만 로딩될 수 있도록 조치가 필요한다. 1. img 태그에 src 지정하지 않기. 2. 이미지 로딩 1) 스크롤 이벤트를 이용 2) 화면에 보여질 Y축 포지션 값(bottomPos)을 설정 3) 화면에 보여질 img 항목들을 필터링 4) img의 top 포지션값이 bottomPos보다 작을 경우 src값을 설정 5) opacity값을 변경하여 화면에 표시 (opacity : 0 -> 1)로 변경 // Simple Image Lazy..

Javascript 2019.10.04

Array.sort

array.sort([compareFunction]) array.sort(function(nextIndexValue, currentIndexValue){ .. compare nextIndexValue to currentIndexValue.. return 0 or 1 or -1 }) 1. array.sort() - compareFuntion이 지정되어 있지 않으면 각 요소들을 문자열로 변환 후 유니코드 포인트 순서로 문자열을 정렬한다. - 기본 오름차순 ※ 문자열로 변환 후 값을 비교하게 되므로 9, 80은 "9", "80"으로 변경되어 "80", "9" 순으로 정렬되어진다. 2. array.sort(compareFuntion) - paremeter로 2개의 배열의 값을 가져오게된다. - 첫번째 인자는 현..

Javascript 2019.05.08

Eclipse - Emmet (Zen Coding) Plugin 추가

이클립스에서는 Zencoding자체를 지원하지 않기 때문에 Plugin을 설치해야한다. 1. 이클립스 > Help > Install New Software… 클릭 2. Work With에 http://emmet.io/eclipse/updates를 입력 후 Enter!!! 3. 잠시 관련 정보를 조회한 후 Emmet항목이 조회되면 체크박스 선택 후 [Next] 버튼을 클릭한다. 4. 설치되는 항목의 상세정보를 보여주는데 특별한 내용이 없으므로 [Next] 버튼을 클릭한다. 5. Licenses 관련 내용을 읽고 'I accept the terms of the license agreement'를 선택 한 후 [Finish]버튼을 클릭하면 설치가 진행된다. 6. 설치 중간쯤 보안경고 관련창이 뜨는데 [Inst..

Javascript 2018.07.23

[TortoiseSVN] 자동 업데이트하기.

매번 업데이트하기 귀찮고 그래서 그냥 bat 파일을 만들어서 매 시간마다 자동으로 소스가 업데이트 되도록 하고 싶었다. TortoiseProc.exe /command:abcd /path:"some\path" /closeonend:parameter TortoiseProc.exe - TortoiseSVN GUI를 호출하기 위한 명령어. /command:abcd - 실행 명령어 ex) :update , :checkout, :commit 등등 /path:"some\path" - 명령어를 실행대상이 되는 경로 /closeonend:parameter - 명령어 실행 후 자동 종료 여부, parameter의 값에 따라 자동으로 닫지 않을 수도, 특정조건이 아닐 경우에만 닫게끔 할 수 있다. 위 명령어를 조합해서 하나..

ETC 2017.08.09

[Jquery] click 이벤트 활성화, 비활성화

$(selector).on('click', function(){ //TODO 클릭시 로직 수행 }); $(selector).off('click'); jQuery의 .on 메서드를 통해 이벤트핸들러를 등록 .off 메서드를 통해 이벤트 핸들러를 해제한다. 참고로 이렇게도 사용이 가능하다. $(selector).off('click').on('click', function(){ //TODO 클릭시 로직 수행 }); selector에 등록된 이전 click 이벤트 핸들러를 해제하고 다시 click 이벤트를 등록한다. 가끔 특정 함수 내부에 click 이벤트를 등록하는 로직이 실행되도록 해야하는 경우가 있다. 함수가 여러번 호출된다면 click 이벤트 등록이 매번 실행이 되어 난 클릭을 한번했는데 클릭 이벤트가 ..

Javascript 2015.03.05

[Android] scrollbarStyle

[상황] GridView 에 padding을 주었더니 scrollbar가 padding 안쪽에 생겨 보기가 몹시 거북했다. [노력] 1. padding을 우선 제거. Top,Bottom,Left만 지정하고 Right는 item에서 지정하도록.. 실패.. 2. horizontalSpacing 등등 이런 저런 잡다한 시도를 해보았지만.. 딱히 맘에 들지 않아 실패.. [해결] GridView에 android:scrollbarStyle="outsideInset" 으로 설정 android:scrollbarStyle Controls the scrollbar style and position. The scrollbars can be overlaid or inset. When inset, they add to the..

ETC 2015.02.04
반응형