분류 전체보기
-
[Spring] 페이징처리를 위해 써먹는 Paging 객체 만들기 및 활용웹 개발/Spring Framework 2019. 5. 18. 18:12
회사 내에서 페이징 객체를 만들어야겠다고 생각한 계기는 특정 고객사에서 특정 메뉴를 주로 사용하는데 이 메뉴가 페이징 처리가 안되어있어 너무 느리다는 불만사항을 자주 들었다. 그 이외 UI 라이브러리 문제도 있었어서(고객사는 이 문제에 대한 불만이 더 많았다.) 새로 회사에서 사용하는 라이브러리로 바꿀 겸 이 메뉴에 대한 페이징 처리를 하기로 마음 먹었다. 기존에는 페이징 처리를 메서드마다 페이지 인덱스와 페이지 사이즈를 계산하고 Map에 담아 return 방식으로 페이징 처리를 하고 있었는데, 이 부분 때문에.. 페이징 객체를 만들자!!! 먼저 내가 구성한 건, 페이징 처리를 위한 변수 정하기. 내가 생각한 리스트는 아래와 같다. pageIndex : 현재 이 페이지가 몇번째 페이지냐 pageSize ..
-
[Spring] war에 test class가 포함된다?(war에서 test class 빼는 법)웹 개발/Spring Framework 2019. 5. 8. 23:14
war를 묶을 때(packaging) test class가 포함되어 컴파일 된다면? 다른 신입분의 war를 받아서 풀어볼 일이 있었는데 컴파일된 테스트 클래스가 포함되어 있었다. 어 왜? 테스트 클래스가 어떻게 포함되어 있지? 난 이제까지 war를 묶으면 자동으로 테스트 클래스가 빠지는 줄 알았다. 실 운영 서버에는 컴파일된 테스트 클래스는 필요없으니까 말이다. war를 묶을 때 테스트 클래스를 포함할 수도, 제외할 수 있다는 걸 이번에 처음 알았다.(그외에도 멀티 프로젝트 또는 다른 디렉토리를 포함하는) 이렇게 어쩌다보니 하나 배웠다. 컴파일된 테스트 클래스가 war에 포함되더라도 그 테스트 클래스를 읽을 일이 없으니 괜찮을 수도 있지만 왠지 모를 찝찝함 + 굳이 필요없는 파일 이 들어감 때문에 해결방..
-
[HackerRank] Sherlock and Anagrams 풀이(java)알고리즘/알고리즘 문제 2019. 4. 22. 21:20
내가 알고리즘을 정말 못푸는 건가싶다. 이 문제 푸는데 3시간 걸렸다. 몇달 뒤에 다시 풀어도 이정도 걸릴 것 같아서 기록해두기. 이 문제는 anagram을 찾는 문제인데, anagram이란 철자 바꾸기 놀이를 뜻하는데, 철자를 재배열해서 다른 문자로 만드는 것이다. 즉, 어떻게 배열되어있든 두 단어를 비교했을 때 알파벳만 맞으면 된다.(순서가 뒤죽박죽이라도) 위의 예시 중 하나를 들자면, ifailuhkqq는 ifa 와 fai는 순서는 다르지만 동일한 알파벳을 가지고 있다. 단일 알파벳이라도 i와 i는 순서를 바꿔도(의미가 없지만) 같다. 내 풀이의 시간복잡도는 O(n^4) 이다. 아주 비효율적인 시간복잡도 같지만, 다 풀고 나서 다른 풀이들도 봤는데 O(n^4)의 시간복잡도를 가지고 있었다. 예시 하..
-
티스토리 에디터 마크다운에 코드 하이라이트 적용하기웹 개발/웹&프로그래밍 2019. 4. 6. 17:44
이번 티스토리 에디터 업데이트로 티스토리에서 바로 마크다운을 작성하게 됐는데, 코드가 진한 초록색으로만 나와서.. 이유를 찾아보니 유저의 자유로운 선택 을 위해 따로 적용하진 않았다고 한다. 출처 : 티스토리 공식 사이트 그래서 코드 하이라이트를 어떻게 적용하느냐. 이 포스팅에서 사람들이 많이 사용하는 Highlight.js로 코드 하이라이트 적용하는 법을 소개하려한다. 이 곳을 들어가면 Hightligt.js를 어떻게 적용하는지 안내가 되어있는데 티스토리 마크다운에 코드 블럭만 어떻게 적용하는지만 소개해보겠다. 아래의 코드를 html에 붙이라고 하는데, 스킨 에 계속 적용해서 쓰기 위해 cdn방식으로 적용해보겠다. 먼저 관리자 창으로 들어가서 스킨편집 창에서 아래처럼 html의 사이에 코드를 붙여준다...
-
이해하기 쉽고 재밌게 읽었던 '객체지향의 사실과 오해' - 조영호IT, 기술 도서 2019. 3. 31. 23:32
개발책을 이렇게 재미있고 쉽게 읽은 건 처음이다. 이제까지 읽은 책들(클린코드, 리팩토링, 테스트 주도 개발 등)은 내게 개념적으로 이해하기 어렵고 코드를 봐도 머릿속으로 바로 들어오지 않았는데 이 책은 책 내용 중 실제 코드는 나오지 않고, 객체 지향에 대한 원론적인 내용을 설명한다. 그렇다고 딱딱하게 설명하는게 아니라 '이상한 나라의 앨리스' , '카페에서 커피를 주문할 때' 와 같은 은유, 예시를 들어서 설명한다. 객체의 개념 에 대해서는 카페에서 커피를 주문할 때 의 예시가 가장 이해가 쉬웠다. 손님, 메뉴판, 주문받는 직원, 바리스타 가 있는데 이들은 각각의 객체이고 각자 자율적인 행동과 의지를 가졌다고 말한다. '메뉴판' 같은 경우는 현실 세계에서는 수동적이고 정적인 하나의 물체일 뿐이지만, ..
-
티스토리 에디터 변했네. 마크다운도 지원?!개발 일기장/개발 일상 2019. 3. 31. 21:12
티스토리 에디터가 변했다. 마크다운 방식으로 포스팅하고 있었는데, 비주얼 스튜디오 코드로 작성하고, 마크다운을 html로 변환해주는 사이트를 사용해 html로 바꾸는게 귀찮았는데 이제는 마크다운 방식도 지원해주고 있다. public static void Main(String[] args) { System.out.println("hello world"); } 그냥 코드 작성 코드 작성 되고, 강조해보기 강조도 되고, 기울기 도 된다. 밑줄도 되고 이제 티스토리 에디터로 곧바로 작성하면 되겠다!! ㅎㅎ
-
주니어 개발자가 읽은 '리팩토링' 후기 - 마틴 파울러IT, 기술 도서 2019. 3. 31. 19:42
회사 아침 일찍 와서 틈틈이 읽던 '리팩토링' 을 다 읽었다. 리팩토링 이란 외부동작을 바꾸지 않으면서 내부 구조를 개선하는 방법으로, 소프트웨어를 보다 쉽게 이해하고, 수정하기 쉽도록 만드는 것, 겉으로 보이는 소프트웨어의 기능을 변경하지 않는 것 을 일컫는다. 읽으면서 실무 코드에 적용해보기 위해 이래저래 시도하면서 유용한 것도 많았고 실질적으로 코드를 깔끔하게 만들었을 때 뿌듯하기도 했다. 유용하게 사용했던 부분은 조건문 간결화 파트 부분이었다. 조건문이 길어지면 메서드로 빼거나, 충분히 줄일 수 있는 늘어진 if,else 문을 줄이는 리팩토링법 등이 좋았다. 파트별로 나누어볼 수 있어서 사무실 책상 위에 올려두고 까먹을 때마다 꺼내서 적용할 수 있다. 거대한 하나의 클래스를 조각조각 클래스로 나누..