본문 바로가기

리팩토링4

TDD 잘알못을 위한 돌직구 세미나 참석 후기 OKKY 최단시간 마감 세미나! TDD 잘알못을 위한 돌직구 세미나에 다녀왔습니다. 세미나 링크 발표순서는 변경되어서 박재성님이 먼저 진행하셨습니다. 가장 빨리 마감된만큼 참석을 원했지만 아쉽게 안되신 분들도 많을거라 생각합니다. 모든 내용을 다 담진 못했지만, 최대한 미참석자분들에게 공유될 수 있도록 작성했습니다. 이걸로 조금이나마 아쉬움을 달래셨으면 합니다. 그럼 발표 내용 시작하겠습니다! 1. 박재성 Naver -> 아키에이지 -> NHN Next 에서 활동 NEXT 종료 후 뭘할지 고민하다가 교육으로 가게 됨 NextStep으로 1인 교육 사업 자바지기 -> SLIPP 커뮤니티 운영 이 발표에서는 TDD와 리팩토링을 왜 해야하는지 알고 있다는 가정하에 진행 개발 현장을 떠난지 6년이 되어가고 있음.. 2018. 6. 22.
악취나는 코드 개선하기 시리즈 - 값의 가변성 (Mutation) IntelliJ 블로그에 올라온 시리즈물을 번역 & 재정리 하였습니다. 4. Code Smells: 값의 가변성 (변경가능한 값) 심하게 중첩된 코드글에서 저는 getMappedField 메소드의 리턴 타입을 Optional로 변경하고 싶었습니다. 변경자체는 굉장히 사소한 일이지만, 그 메소드를 호출하는 코드들의 변경은… 음 또다른 문제였습니다. QueryValidator클래스의 validateQuery메소드는 여러 호출자 중에서 예상했던 것보다 훨씬 더 복잡한 메소드였습니다. getMappedField를 Optional로 변경하려고 할때, 놀라울 정도로 많은 Null 체크 코드를 isPresent로 변경했습니다. 이게 전부가 아닙니다. 이 메소드는 거의 100라인이라 1개의 캡쳐화면에 전부 담을수가 없.. 2017. 9. 18.
악취나는 코드 개선하기 시리즈 - 심하게 중첩된 코드 IntelliJ 블로그에 올라온 시리즈물을 번역 & 재정리 하였습니다. 2. Code Smells: 심하게 중첩된 코드 악취나는 코드 개선하기 시리즈를 계속 진행하며, 이번 포스트에서는 명백한 리펙토링을 거부하는 천진난만한 코드를 살펴 보려고 합니다. 코드 예제 자체는 매우 사소한 것이지만 실제로는 이 특정 프로젝트에서 반복적으로 발견되는 문제의 증상입니다. 즉, 코드의 중첩입니다. 이것은 loop문, if 문, 심지어 람다 표현식 또는 내부 클래스, 또는 위의 모든 것의 조합 일 수 있습니다. The Smell: Deeply Nested Code 먼저 발견한 문제있는 코드는 내부 if 문이있는 double for 루프입니다. (MappedClass의 메소드) 이 코드의 문제점은 무엇입니까? 단일 문자 .. 2017. 9. 3.
악취나는 코드 개선하기 시리즈 - NULL IntelliJ 블로그에 올라온 시리즈물을 번역 & 재정리 하였습니다. 1. Code Smells: Null 리팩토링에 대한 연구 중에 저는 여러가지 패턴(냄새나는 패턴)이 계속해서 반복되는 것을 보았습니다. 이런 패턴들은 특별히 새로운 것이 하나도 없으며, 많은 책들(리팩토링, 패턴을 활용한 리팩토링)과 블로그 및 동영상 에서 이런 냄새나는 패턴들을 어떻게 다루는지 알려주고 있습니다. 하지만 저는 IntelliJ IDEA가 어떻게 당신을 도울 수 있는지 (아닐 수도 있지만) 몇 가지 구체적이고 사소한 예로 설명하고 싶었습니다. 내가 반대하려는 첫 번째 문제는 null을 사용하는 것입니다. 특히 null-check 코드가 주위에 흩어져있을 때 더욱 그렇습니다. Java 8의 Optional은 이러한 많은.. 2017. 9. 2.