본문 바로가기

전체 글

(156)
[Java] HashMap 사용법과 정렬 HashMap이란?HashMap이란 Map인터페이스의 한 종류로써 Key와 Value 값으로 데이터를 저장하는 형태를 가지고 있다.쉽게 말해 Key, Value 값으로 저장하는 List 형태의 조상이라고 생각하시면 됩니다. Map에 종류에는 Hashtable, HashMap, LinkedHashMap, SortedMap, TreeMap 등이 있다.이들 객체 또한 Key, Value로 데이터를 저장하게 된다. HashMap 또한 Map인터페이스를 구현한 것이기 때문에 Map의 속성을 모두 가지고 있고, 저장 방식 또한동일하다. 그리고 해싱(Hashing)이란 검색 방법을 사용하기 때문에 많은 양의 데이터를 검색하는데있어서 뛰어난 성능을 보여준다. HashMap에서 한가지 주의 하실 점이 Map에 데이터를 ..
[Java] 문자열 거꾸로 뒤집기 문자열에서 문자들의 순서를 반대로 바꾸는 방법은 char[] 로 형변환해서역순으로 바꿔주는 등 다양한 방법이 있겠지만 그 중, 가장 간단한 방법은StringBuffer 클래스의 reverse() 함수를 이용하는 방법이다. 예제public class StrReverse { public static void main(String[] args) { String inputStr = "ABCDEF"; System.out.println(reverseString(inputStr)); // 출력결과 : FEDCBA } public static String reverseString(String s){ return (new StringBuffer(s)).reverse().toString(); } } ※ 출처 : http:..
[Java] Comparable, Comparator 자바에서 데이터를 정렬하고자 할때 보통 Arrays.sort() 를 사용한다. 이것이 가능한 이유는 원시형(primitive) 타입이나 Wrapper 클래스들은 모두 compareTo() 메소드를오버라이드하고 있기 때문이다. compareTo() 메소드가 구현되어 있는 객체는 Arrays.sort() 메소드를 통해 정렬이 가능하다. 하지만 사용자가 만든 객체를 비교하기 위해서는 어떻게 해야할까?사용자가 만든 객체를 정렬하기 위해서는 객체 안에서 비교할 기준을 정하고, Comparable 인터페이스를구현해야한다. Comparable 인터페이스 사용하는 방법구현하는 방법은 비교하려는 객체에 Comparable인터페이스를 implements하고,int compareTo(T) 메소드를 재정의 하면된다. Comp..
(펌) DECODE와 CASE 함수 DECODE와 CASE 함수는 SQL 문장에서 조건에 해당하는 값을 추출하고자 할 때 주로 사용한다DECODE- DECODE 함수는 조건에 따라 데이터를 다른 값이나 컬럼값으로 추출 할 수 있다.- DECODE(VALUE, IF1, THEN1, IF2, THEN2...) 형태로 사용 할 수 있다.- VALUE 값이 IF1일 경우에 THEN1 값을 반환하고, VALUE 값이 IF2일 경우에는 THEN2 값을 반환한다.- DECODE 함수 안에 DECODE함수를 중첩으로 사용 할 수 있다. 아래는 DECODE 함수의 일반적인 예제이다. ?12345678910111213-- 부서번호가 10이면 ACCOUNTING, 20이면 RESEARCH, 30이면 SALES-- 나머지는 OPERATIONS를 출력하는 예제S..
합병 정렬 (Merge Sort) 합병정렬(Merge Sort)이란? 합병정렬은 여러 개의 정렬된 자료의 집합을 결합하여 한 개의 정렬된 집합으로 만드는 방법이다. 합병정렬을 쉽게 말하면 배열을 나눌 수 있는 데까지 나누고 합치면서 정렬하는 방식이다.시간복잡도는 모든 케이스에 대해 O(n logn)이다. 합병정렬(Merge Sort) 구현 (Java)https://github.com/jobcing/Algorithm/blob/master/src/imple/MergeSort.java
(펌) MySQL 쓰면서 하지 말아야 할 것 *MySQL 쓰면서 하지 말아야 할 것 17가지*권장사항이다. 이것을 이해하면 당신의 어플리케이션이 더 나은 성능을 발휘할 것이다.다만 이것이 사람의 실력을 판단하는 척도로 사용되서는 안 될 것이다. 작게 생각하기- 조만간 규모가 커질거라면 MySQL ecosystem을 봐야된다. - 그리고 캐싱 빡시게 안 하는 메이저 웹사이트는 없다. - develooper.com의 Hansen PT랑 Ilia 튜토리얼 볼 것 - 처음부터 확장 가능하게 아키텍처 잘 쪼개놔야된다. - 복제랑 파티셔닝 어떻게 할지 미리 계획 세워놔라. - 파일 기반 세션 좀 쓰지마 -_- - 그렇다고 너무 쓸데없이 크게 생각하지도 말 것 - 특히 성능하고 확장성 구분 못 하면 난감함 EXPLAIN 안 써보기- SELECT 앞에 EXPLA..
[GitHub] 히스토리 삭제 / 원격저장소 이동 깃헙을 사용하다보면 커밋이 지저분해서 새롭게 원격 저장소를 생성하고 싶거나다른 원격저장소에 있는 데이터를 내 원격 저장소로 옮기고 싶을 때가 있다. 하지만 git remote set-url origin [URL] 의 명령어로 원격저장소 URL를 변경해준다 해도히스토리 충돌로 commit이 안될 것이다. 그럴 때 저장소의 히스토리를 초기화하고 URL를 변경해주면 된다.그저 히스토리를 지우고 싶다면 git remote set-url origin [URL] 명령어는 무시해도 된다. 1) 기존의 모든 히스토리 삭제rm -rf .git 2) 현재 소스들로 git repository 다시 생성하기git initgit add .git commit -m "Initial commit" 3) 깃허브에 push하기git r..
TDD (Test Driven Development) 오늘날 소프트웨어는 비행기, 철도, 자동차등 인명피해로 이어질만큼 다양한 곳에서 쓰이며 그만큼오류가 적은 고품질의 소프트웨어를 만들어내야 한다. 현재 좋은 소프트웨어를 개발하기 위한 개발방법들은 많이 존재하지만, 오늘은 그 중에서테스트와 개발을 같이 진행하여 개발 초기의 오류를 발견하고, 수정하는 개발론을 알아보고자한다. TDDTDD란 Test Driven Development의 줄임말로 테스트 주도 개발이라 한다.TDD는 또한 매우 짧은 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. TDD는 먼저 테스트 케이스를 작성하고 실제코드를 개발하여 리팩토링하므로 Test First Development라고도 한다. TDD의 장점작업과 동시에 테스트를 진행함으로써 실시간으로 오류상황을 파악하여 시스템..