스마트웹앱콘텐츠전문가/JAVA 59

for-each문

List values = Arrays.asList("a", "b", "c"); int index= 0; for(String value : values){ System.out.println("index : " + index++); System.out.println("value : " + value); } - JDK 5.0 이상 - 인덱스를 별도로 명시하지 않아도, 리스트 사이즈 만큼 반복되어 수행 -> 리스트 순회용도로 적합. - 코드 상 간결하지만, 인덱스를 사용할 수 없어서, 별도로 만들어 주어야 함. - List 타입의 객체를 대상으로만 사용 가능( get(int index) 메소드를 가지는) - 상위 타입인 Collection 또는 Set 타입의 객체를 사용 불가. cf) Iterator와 비교 e..

암호화(md5, sha256, aes256)

해시 알고리즘의 종류에는 md5, sha1, sha2(sha256, sha384, sha512) 등이 있음. md5(128bit)는 매우 취약하고, sha1(160bit)은 사용하지 않는 것을 권고. - 자바에서는 java.security 라이브러리를 상용해서 md5, sha256 해시 및 aes256 암호화 복호화 가능. - md5, sha256은 단방향 암호화로 비밀번호를 암호화하거나 데이터 전송등에서 무결성을 체크하는 데 사용(md5는 사용하기를 비권장(128bit, 빠르게 해시 가능)) - aes256은 양방향,대칭형 암호화로 암호화, 복호화 가능.

싱글톤 패턴

※ 애플리케이션이 시작될 때, 싱글톤으로 설계된 클래스가 최초 한번만 메모리를 할당(stack)하고, 그 메모리에 객체를 만들어 사용하는 디자인 패턴. - 생성자와 getInstance() 메서드를 포함한 구조. - 생성자를 만들 때, private로 선언(객체 생성 시, new 연산자에 제약을 주어서 반환 요구할 때, 항상 동일한 객체를 반환시켜 주기 위함.) -> 싱글톤 패턴을 사용하여 만든 객체는 언제나 서로 같다는 것을 보증. -> 사용하는 이유 : 단 한번 new 연산자로 객체를 얻어 오기 때문에, 고정된 메모리 영역을 사용하여 메모리의 낭비를 줄일 수 있음. 전역변수 선언 및 전역 메서드 호출로 다른 클래스에서 사용이 용이. 공통된 객체를 사용해야 하는 경우, 매번 객체를 생성하지 않고 같은 ..

[문자열 부분 일치 및 일치 여부]

String abc = "미나토자키사나"; String result = ""; if(abc.contains("사나")){ result = "있음"; }else{ result = "없음"; } if(abc.indexOf("사나") > -1){ result = "있음"; }else{ result = "없음"; } if(abc.matches(".*사나.*")){ result = "있음"; }else{ result = "없음"; } ○ contatins : boolean, 대상 문자열에서 찾고자 하는 문자열이 있는지 확인 - 결과 : true(있음), false(없음) ○ indexOf : int, 대상 문자열에서 찾고자 하는 문자의 위치를 반환(리턴값) - 결과 : 위치 값(있음), -1(없음) ○ match..