목록DEV&OPS (253)
삶 가운데 남긴 기록 AACII.TISTORY.COM
본래 뒤로가기는 클라이언트 측의 브라우저의 고유 기능이기 때문에 서버 측에서 막는 것이 사실 불가능 하지만 종종 기능상의 이유로 뒤로가기를 막을 필요가 있습니다. 이용자 뒤로가기를 막는 꼼수는 여러가지 있지만 가장 깔끔한 방법을 소개합니다. 원리는 히스토리 스택에 강제로 현재 페이지의 URL을 박아 넣은 뒤 뒤로가기를 할 경우 현재 페이지를 보여주는 방법입니다. 스크립트 태그 안에 아래와 같이 입력하면 됩니다. history.pushState(null, null, "http://현재페이지URL을 입력하세요."); window.onpopstate = function(event) { history.go(1); };

소개 보통 웹사이트에 접속한 사용자를 식별하려면 쿠키를 사용합니다. Canvas fingerprinting 은 웹사이트에 접속한 브라우저를 95% uniquely 하게 식별하는 기술입니다. 100% 식별이 아니기 때문에 주로 광고 타겟팅에 이용되고 있습니다. University of California, San Diego 의 연구원이 2012년 5월에 쓴 논문 “Pixel Perfect: Fingerprinting Canvas in HTML5” 이 최초입니다. 미국 백악관 사이트 포함 5.5% 이상 이 기술을 사용중인 것으로 알려졌습니다. 원리 html5 canvas로 렌더링 되는 이미지는 GPU나 드라이버의 영향으로 pc 마다 달라서 고유 이미지가 됩니다. 이 canvas 이미지를 base64으로 인코..

CSS에서 레이아웃을 담당하는 컨테이너 같은 블록요소, 등의 가운데 정렬 은 margin을 이용해서 합니다. {margin-left:0 auto; margin-right:0 auto; } 태그나 컨테이너나 부모요소 태그에 width를 설정하더라도 이미지 태그는 텍스트와는 달리 줄바꿈이 일어나지 않으므로 이미지 태그의 이미지의 size를 설정하지 않으면 부모 요소를 벗어나 표시되게됩니다. 이미지의 크기를 브라우저 크기에 자동 조절하려면 max-width 속성을 사용합니다. CSS 예제: img {width: inherit; max-width:100%; height: auto;}
javascript는 replaceAll 함수가 없어서 비슷한 기능을 하도록 구현해봅시다. 1. 정규식을 이용한 방법 var str1 = "2021/04/07"; var str2 = str1.replace(/\//gi,"-"); /를 표기하기 위해서는 이스케이프 문자 \와 같이 사용합니다. 위의 정규식은 /를 모두 - 으로 변경하는 효과가 있습니다. g는 문자열 전역 검색, i는 대소문자 구분안함 이라는 옵션입니다. 2. 함수를 만드는 방법 function replaceAll(originalStr, searchStr, replaceStr){ return originalStr.split(searchStr).join(replaceStr); } replaceAll("2021/04/07", "/", "-")
체크박스는 Y/N, true/false 형 데이터를 다루는데 주로 사용합니다. 체크박스의 name 값은 서버로 submit시 전송되는 parameter 이름이며 value 값은 parameter 값입니다. 체크박스의 id는 element들 중에서 유일하게 하나 식별하기 위한 용도입니다. 체크여부 확인(한개) 동의 체크여부 확인(여러 개) 봄 여름 가을 겨울 체크박스 전체 체크/체크해제 function checkAll(){ if(document.getElementById("checkAll").checked==true){ for(var i=0;i
select box 예제 선택 1 2 option 다루기

기본 예제 $.post("test.jsp"); 데이터를 같이 전달하는 예제 $.post("test.jsp", {name: "john", time: "10:00pm"}); 배열을 parameter로 전달하는 예제 $.post("test.jsp"), {'choices[]':["john", "susan"]}); 폼(form) 데이터를 전달 $.post("test.jsp", $("testform").serialize()); 콜백함수를 통한 리턴 값을 얻어와 알림창 출력 $.post("test.jsp", function(data){ alert(data);}); parameter로 데이터를 전달하고 콜백으로 리턴된 결과를 알림창으로 출력 $.post('test.jsp", {name:"john", time:"10:0..
DecimalFormat 숫자 데이터를 원하는 형식으로 표현하기 위한 클래스 입니다. import java.text.DecimalFormat; public class DeciamlFormatEx { public static void main(String[] args) { double num = 1234567.89; DecimalFormat df = new DecimalFormat("0");//10진수, 빈자리는 0으로 채움 System.out.println(df.format(num)); df = new DecimalFormat("0.0");//소수점 표현 System.out.println(df.format(num)); df = new DecimalFormat("0000000000.00000"); Syst..
Date 클래스 현재 날짜 출력을 위한 클래스입니다. 날짜를 표기하는 포멧을 지정하려면 SimpleDateFormat 클래스를 이용합니다. import java.text.SimpleDateFormat; import java.util.Date; public class DateEx { public static void main(String[] args) { Date now = new Date(); String strNow1 = now.toString(); System.out.println(strNow1); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String strNow2 = sdf.format(now); System.out.p..
Math 클래스 수학 계산용 메서드들을 제공합니다. 대부분 static 이므로 인스턴스 생성 없이 바로 사용가능 합니다. public class MathEx { public static void main(String[] args) { int v1 = Math.abs(-5);//절대값 double v2 = Math.ceil(5.3);//올림 double v3 = Math.floor(-5.3); //내림 int v4 = Math.max(5, 9);//최대값 double v5 = Math.min(5.1, 2.3);//최소값 double v6 = Math.random();//0 이상 1 미만 랜덤 숫자 long v7 = Math.round(5.6);//반올림 System.out.println(v1); Syste..
자바는 기본 데이터 타입을 값으로 갖는 객체를 생성할 수 있습니다. 이러한 객체를 wrapper class 라고 합니다. byte : Byte char : Character short : Short int : Integer long : Long float : Float double : Double boolean : Boolean Boxing/Unboxing boxing: 기본 데이터 타입을 래퍼 클래스로 변환 unboxing: 래퍼클래스를 기본 데이터 타입으로 변환 public class BoxingUnBoxing { public static void main(String[] args) { //boxing Integer obj1 = new Integer(100); Integer obj2 = new Int..
Arrays 클래스에는 배열 관련된 기능들을 제공합니다. 모든 메서드는 static이기 때문에 클래스 이름으로 바로 메서드를 사용할 수 있습니다. binarySearch(배열, 찾는값) : 배열 항목중 찾는 값이 있으면 인덱스 값을 리턴 copyOf(원본배열, 복사할길이) : 배열을 복사할 길이만큼 복사해서 배열로 리턴 copyOfRange(원본배열,시작인덱스,끝인덱스) : 배열을 시작인덱스부터 끝인덱스까지 복사해서 배열로 리턴 deepEquals(배열, 배열) : 두 배열의 중첩된 배열 항목까지 비교해서 boolean 리턴 equals(배열, 배열) : 두 배열을 비교 fill(배열, 값) : 배열의 항목에 동일한 값을 저장 fill(배열, 시작인덱스,끝인덱스,값) : 배열의 항목에 시작인덱스부터 끝인..
정규 표현식 [abc] : a,b,c 중 하나의 문자 [^abc] : a,b,c 이외의 하나의 문자 [a-zA-Z] : 알파벳 중 하나의 문자 \d : 한개의 숫자 \s : 공백 \w : 한개의 알파벳 또는 한개의 숫자 ? : 없음 또는 한 개 * : 없음 또는 한 개 이상 + : 한 개 이상 {n} : n개 {n,} : 최소한 n개 {n, m} : n개에서 m개까지 이메일 정규식 \w+@\w+\.\w+(\.\w+)? 예제 import java.util.regex.Pattern; public class PatternEx { public static void main(String[] args) { String regExp = "(010)-\\d{3,4}-\\d{4}"; String data = "010-1..

바이트 배열을 문자열로 변환 문자열은 본래 바이트(byte/char)의 배열로 되어있습니다. 자바에서는 이를 클래스나 기본 데이터 타입처럼 String 을 다룰 수 있습니다. public class ByteToString { public static void main(String[] args) { byte[] bytes = {72, 101, 108, 108, 111, 32, 74, 97, 118, 97 }; //Hello Java String str1 = new String(bytes); System.out.println(str1); String str2 = new String(bytes, 6, 4);//6번째 인덱스부터 길이가 4만큼 System.out.println(str2); } } 실행 결과 He..