본문 바로가기

전체 글

[Refactoring] 4. 긴 매개변수 목록 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 긴 매개변수 목록 함수에 매개변수가 많을수록 함수의 역할을 이해하기 힘들어진다. 어떤 매개변수를 다른 매개변수를 통해 알아낼 수 있다면, 매개변수를 질의 함수로 바꾸기를 사용할 수 있다. 기존 자료구조에서 세부적인 데이터를 가져와서 여러 매개변수로 넘기는 대신, 객체 통째로 넘기기를 사용할 수 있다. 일부 매개변수들이 대부분 같이 넘겨진다면, 매개변수 객체 만들기.. 더보기
[Refactoring] 3. 긴 함수 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 긴 함수 코드를 읽으면서 이해하기 난해하거나, 구현을 이해한다고 생각되면 긴 함수이다. 과거에는 작은 함수를 사용하는 경우 더 많은 서브 루틴 호출로 인한 오버헤드가 존재했다. 최근 사용하는 프로그래밍 언어는 최적화가 이루어지기 때문에 고려할 만한 오버헤드가 아니다. 단점 코드를 이해하기 어렵다. 방법 99% 함수 추출하기로 해결할 수 있다. 함수로 분리하면서 해.. 더보기
[Reactive Streams] Basic Reactive Programming 외부에서 데이터나 이벤트가 발생하면 그것에 맞게 대응하도록 프로그래밍하는 기법 1. Duality(쌍대성) Iterable Collection -> Iterable public class IterableCustom { public static void main(String[] args) { Iterable iter = () -> new Iterator() { final int MAX = 10; int cursor = 0; @Override public boolean hasNext() { return cursor < MAX; } @Override public Integer next() { return ++cursor; } }; for (Integer integer : .. 더보기
[IntelliJ] 클래스 생성 시 자동 주석 설정 MAC OS 기준 IntelliJ -> cmd + , -> File And Code Templates 검색 Includes 클릭 -> File Header 클릭 주석 작성 클래스 생성 더보기
[Refactoring] 2. 중복 코드 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 중복 코드 단점 비슷한 것인지, 동일한 것인지 주의 깊게 코드를 살펴보아야 한다. 코드 수정 시, 동일한 모든 곳을 수정해야 한다. 미래의 버그 유발 가능성 제공 Ex) A 수정, B 반영 X 방법 함수 추출하기 코드 분리하기 메서드 올리기 Refactoring 1. 함수 추출하기 의도와 구현 분리하기 코드를 함수로 분리한다면, 함수 이름으로 무슨 일을 하는지 표.. 더보기
[Refactoring] 1. 이해하기 힘든 이름 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. "좋은 이름" 클린 코드에 있어 가장 중요한 것 중 하나는 바로 "좋은 이름"이다. 함수, 변수, 클래스, 모듈의 이름 등 모두 어떤 역할을 하는지, 어떻게 쓰이는지 직관적이여야 한다. 사용할 수 있는 리팩토링 기술 함수 선언 변경 변수 이름 변경 필드 이름 변경 Refactoring 1. 함수 선언 변경하기 좋은 이름을 가진 함수는 구현 내용을 보지 않고 함수 .. 더보기
[Java] 함수형 프로그래밍 1. 명령형 프로그래밍 vs 선언형 프로그래밍 명령형 프로그래밍과 선언형 프로그래밍의 차이는 다음 표와 같다. 명령형 프로그래밍 선언형 프로그래밍 OOP 객체 지향 프로그래밍 Functional Programming How to do? What to do? 어떻게 해야 하는가? 무엇을 하여야 하는가? 명령형 프로그래밍과 선언형 프로그래밍의 차이를 예를 통해 알아보면 다음과 같다. 예) 유저 리스트에서 유효한 유저들의 이메일을 리스트로 분리 명령형 프로그래밍(How to do?) 이메일을 담을 리스트 선언 루프 유효한지 확인(If) 유효하다면 이메일 추출 이메일 리스트에 해당 이메일 넣기 List memberList = List.of( new Member(1, "test1", true, "test1@tes.. 더보기