시작하기 앞서 드디어 리팩터링, 테스팅, 디버깅 파트다. 우테코 프리코스를 진행하면서 가장 답답했던 부분을 해소할 수 있을까? 프리코스를 진행하는 동안 계속 이렇게 코딩을 하는게 맞나? 하는 생각이 들었다. 이제 책들을 읽으며 잘못된 코드들을 뜯어 고쳐봐야겠다. 이 책에서는 람다 표현식으로 strategy, template method, observer, chain of responsibility, factory 등의 객체 지향 디자인 패턴을 간소화하는 방법도 살펴본다고 한다. 더불어 람다와 스트림 코드를 테스트하고 디버깅 하는 방법도 알려준다고 한다. 기대가 된다. 시작해보자! 코드 가족성 개선 람다, 메소드 참조, 스트림을 활용해서 코드 가독성을 개선할 수 있는 간단한 세가지 리팩터링 방법이 있다. ..
자바 검색 결과
시작할까말까 모던 자바 인 액션을 읽는데 자바 병렬처리에 대한 내용이 나왔다. 책을 읽을 때 아직은 내가 취할 지식이 아니라는 생각이 들었다. 병렬 처리는 컴퓨팅 자원을 소모해 연산 수행 시간을 줄이는 기법이다. 책에서는 모든 경우에 병렬처리가 더 빠른것은 아니라고 말한다. 병렬 처리를 사용하기 위해서는 JVM의 오버헤드 등과 같이 고려해야 할 부분들이 많고 자료형도 많이 신경을 써야 한다. 그리고 결정적으로 소규모 연산에는 병렬 처리가 전혀 효율적이지 않다고 한다. 아직까지는 대규모 데이터를 처리해본 적이 없다. 그리고 잠깐 생각해봤을 때 대규모 데이터를 처리할 기회가 많지는 않을 것 같다. 그래서 한번 읽어보는 것으로 보류한다. 그래도 흥미로운 주제였다. 언젠가는 병렬 처리가 필요해서 책을 다시 들춰..
시작하기 앞서 스트림을 이미 사용해본적이 있으나 책을 읽으며 깊게 공부해본적은 없었다. 이번 기회에 동작하는 방식과 다양한 메소드들을 사용해보고 마찬가지로 기존의 코드를 리팩토링해보자. 스트림이란? 자바 8에 추가된 API이다. 스트림을 사용함으로써 질의형 코드를 작성할 수 있다. 우테코에서 받은 피드백처럼 메세지를 보내는 형식으로 말이다. 이 형식의 장점은 임시 구현 코드들을 제거할 수 있다. 또한 데이터를 쉽게 병렬로 처리할 수 있다. 스트림 vs 컬렉션 컬렉션은 계산하고자 하는 자료구조가 포함하는 모든 값을 메모리에 저장한다. 반면에 스트림은 이론적으로 요청할 때만 요소를 계산하는 고정된 자료구조이다. 스트림의 이런 특성을 게으르다고 표현한다. 스트림은 한번만 탐색할 수 있다. 한번 사용한 스트림을..
시작하기 앞서 람다라는 녀석을 써본적은 있다. 그러나 공부해 본 적은 없다. 그냥 구글에 굴러다니는 코드를 복사 붙여넣기하고 대충 변수명만 바꿔서 사용했다. JS 진영의 Arrow Function도 그렇게 사용은 많이 했다. 그러나 공부해 본 적은 없다. 이번 기회에 모던 자바 인 액션을 읽고 제대로 파헤쳐보자 바로 코드를 보자 우테코 프리코스 3주차에 작성한 코드이다. 이 코드를 함께 살펴보자. private boolean isContainAce(User user) { boolean isContain = false; for (Card card : user.getCards()) { isContain = card.getSymbolByString().equals(ACE_TYPE); } return isCon..
시작하기 앞서 이번 방학에 자바 공부의 필요성을 느끼고 유명한 서적들을 참고하여 자바를 공부하려고 마음을 먹었다. 토비의 스프링, 이펙티브 자바, 리팩토링 등등 너무 많은 책을 추천 받았지만 그 중에서 첫번째로 읽을 책은 으로 정했다. 아직 첫번째 주제에 대해서 읽고 있는데도 좋은 책이라는 것이 느껴진다. 어찌됐든 배운것을 토대로 우테코 프리코스 코드를 리팩토링 하며 진행해볼 생각이다. 화이팅! 동작 파라미터화란? 말 그대로 동작을 파라미터(메소드의 매개변수)로 넘겨주는 것이다. 이 기법을 통해서 얻는 이점은 반복을 제거할 수 있는 것이다. 먼저 이 책에 소개되는 반복 코드를 살펴보고 내가 우테코 프리코스에 응시할 때 작성했던 반복코드를 살펴볼 것이다. 그리고 가차없이 제거할 것이다. 다시 한번 화이팅!..
최근댓글