INTP 개발자
close
프로필 배경
프로필 로고

INTP 개발자

  • 분류 전체보기 (399)
    • Java (54)
      • 소개 (2)
      • 기본 문법 및 OOP (9)
      • Java API (0)
      • Java 응용 프로그래밍 (0)
      • Java 8+ (0)
      • Java 외부 라이브러리 (0)
    • Spring (1)
      • Spring Core (0)
      • Spring Web (0)
      • Spring Data (0)
      • Spring Batch (1)
      • Spring Infra (0)
    • Docker (7)
    • Messaging & Event (3)
      • EDA(Event Driven Architectu.. (2)
      • Kafka (1)
    • CS (17)
      • Architecture (1)
      • Newtwork (0)
      • OS(Operating System) (0)
      • Algorithms (0)
      • 면접 준비 (7)
      • 네트워크 (2)
      • HTTP (6)
      • 알고리즘 (1)
    • Web (13)
    • AWS (6)
    • Spring Framework (33)
    • Spring Boot (10)
    • Spring Data (22)
      • JPA (14)
      • Query DSL (7)
      • Redis (1)
    • Spring Security (9)
    • Spring Batch (4)
    • MyBatis (10)
    • Front-End (51)
      • JS (27)
      • Vue.js (17)
      • React (5)
      • JQuery (0)
      • d3.js (2)
    • DBMS (24)
      • SQL, RDBMS (16)
      • MongoDB (5)
      • Redis (3)
    • Kafka (3)
    • 리눅스 (Linux) (4)
    • 디자인 패턴 (3)
    • VCS (8)
    • API (0)
    • TOOL (3)
    • Reading Book (28)
      • 이펙티브 자바 (11)
      • Clean Code (10)
      • 1분 설명력 (4)
      • HOW TO 맥킨지 문제해결의 기술 (3)
    • C# (4)
    • NSIS (6)
    • JSP & Servlet (65)
      • 개념 (42)
      • 실습 (23)
    • ETC (11)
  • 홈
  • 태그
[이펙티브 자바] 생성자에 매개변수가 많다면 빌더를 고려하라

[이펙티브 자바] 생성자에 매개변수가 많다면 빌더를 고려하라

생성자나 정적 팩터리에 선택적 매개변수가 많을 때 대응하기가 어렵다. 매개변수가 많은 경우 어떤 식으로 개발자들은 처리했는지 다음을 봐보자. 1. 점층적 생성자 패턴 프로그래머들은 선택적 매개변수에 대응하는 방법으로 점층적 생성자 패턴을 이용하였다. 필수 매개변수만 받는 생성자 필수 매개변수 + 선택 매개변수 1개를 받는 생성자 필수 매개변수 + 선택 매개변수 2개를 받는 생성자 ... 형태로 선택 매개변수를 전부 다 받는 생성자까지 늘려 만드는 방식이다. 보통 이런 점층적 생성자 패턴 방법을 사용하면 사용자가 설정하길 원치 않는 매개변수까지 포함할 수 있는데, 어쩔 수 없이 그런 매개변수에도 값을 지정해줘야 한다. 때문에 매개변수 개수가 많아지면 클라이언트 코드의 가독성 및 작성이 어려워진다. 2. 자..

  • format_list_bulleted Reading Book/이펙티브 자바
  • · 2022. 12. 11.
  • textsms
[이펙티브 자바] 생성자 대신 정적 팩터리 메소드를 고려하라

[이펙티브 자바] 생성자 대신 정적 팩터리 메소드를 고려하라

정적 팩터리 메소드가 생성자보다 좋은 장점 1. 이름을 가질 수 있다. 한 클래스에 시그니처가 같은 생성자가 여러 개가 되면 생성자만으로는 각각의 차이를 들어내기가 쉽지 않다. 정적 팩터리 메소드를 사용하면 각각의 차이가 잘 드러나게 할 수 있다. 2. 호출될 때마다 인스턴스를 새로 생성하지 않아도 된다. 불변 클래스는 인스턴스를 미리 만들어 놓거나 새로 생성한 인스턴스를 캐싱하여 재활용하는 식으로 불필요한 객체 생성을 피할 수 있다. 생성 비용이 큰 객체가 자주 요청되는 상황이라면 이와 같은 방식이 성능을 올려준다. public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } //객체를 생성하지 않는 예 Boo..

  • format_list_bulleted Reading Book/이펙티브 자바
  • · 2022. 12. 11.
  • textsms

Optional이란?

Optional 나온 이유? Optional 클래스는 Java 8부터 나온 개념으로 NPE를 방지하기 위해 나왔다. 우리가 자바 개발을 할 때 객체가 null값을 주게되는 경우가 있다. 이때 이 객체를 참조하면 null을 참조하는 것이 되기 때문에 NPE[NullPointerException] 예외가 발생하게 된다. 때문에 개발자들은 NPE 발생을 줄이기 위해 null 확인을 하기 위한 조건문을 추가하였다. User user = userService.getUser(id); if(user != null) { String email = user.getEmail(); } 위와 같이 조건문으로 null 확인을 하여 NPE를 방지한다 하더라도 이러한 방식은 코드를 어지럽히기에 가독성을 저하시킨다. Java는 이를..

  • format_list_bulleted Java
  • · 2022. 12. 5.
  • textsms
Java 스트림(Stream) 정리

Java 스트림(Stream) 정리

읽기 전에 스트림에 대해 몇 가지만 상기도록하자!! 💡 스트림은 데이터 소스를 변경하지 않는다! 스트림은 데이터 소스로 부터 데이터를 읽기만 할 뿐, 데이터 소스를 변경하지 않는다. 필요에 따라, 정렬된 결과를 컬렉션이나 배열에 담아서 반환한다. List sortedList = list.stream() .sorted() .collect(Collectors.toList()); 💡 스트림은 일회용이다. 스트림은 Iterator 처럼 한 번만 탐색할 수 있다. 만약 다시 탐색하고 싶다면 새로운 스트림을 만들어야 한다. Stream strStream = list.stream(); strStream.forEach(System.out::println); strStream.forEach(System.out::prin..

  • format_list_bulleted Java
  • · 2022. 12. 5.
  • textsms

[Java] 스트림 생성 (리스트, 배열을 스트림으로, 숫자 범위로부터 스트림, 파일로부터 스트림)

Collection의 Stream 생성 Stream stream = list.stream(); List list = Arrays.asList("kim", "lee", "choo"); 배열의 Stream 생성 Arrays의 stream 메소드 Stream stream = Arrays.stream(strArray); Stream stream = Arrays.stream(new String[] {"kim", "lee", "choo"}); Stream의 of 메소드 Stream stream = Stream.of(new String[] {"kim", "lee", "choo"}); // 가변 인자 Stream stream = Stream.of("kim", "lee", "choo"); 숫자 범위로부터 Stream 생..

  • format_list_bulleted Java
  • · 2022. 12. 5.
  • textsms

[Java] 변수명, 메소드명 작성법

Java 변수명 첫 글자 소문자 + 카멜 표기법을 사용 (lower Camel Case) 특수 문자는 '_'과 '$'만 허용 의도 분명한 구체적인 변수명 짓기 boolean 변수인 경우 접두어는 'is' 접미어는 ok/check/found/success/done/error List, Collection 등의 자료형은 복수형으로 표현한다. ex) memberList X → members Java 메소드명 첫 글자 소문자 + 카멜 표기법을 사용 (lower Camel Case) 의도 분명한 메소드명 짓기 고려사항: 왜 존재하는가 / 어떤 작업을 하는가 / 어떻게 작업하는가 메소드 접두어는 동사로 시작한다. get/set is/has/can init find, check etc.. 다른 타입으로 변환하거나 빌..

  • format_list_bulleted Java
  • · 2022. 10. 29.
  • textsms
  • navigate_before
  • 1
  • ···
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • ···
  • 67
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (399)
    • Java (54)
      • 소개 (2)
      • 기본 문법 및 OOP (9)
      • Java API (0)
      • Java 응용 프로그래밍 (0)
      • Java 8+ (0)
      • Java 외부 라이브러리 (0)
    • Spring (1)
      • Spring Core (0)
      • Spring Web (0)
      • Spring Data (0)
      • Spring Batch (1)
      • Spring Infra (0)
    • Docker (7)
    • Messaging & Event (3)
      • EDA(Event Driven Architectu.. (2)
      • Kafka (1)
    • CS (17)
      • Architecture (1)
      • Newtwork (0)
      • OS(Operating System) (0)
      • Algorithms (0)
      • 면접 준비 (7)
      • 네트워크 (2)
      • HTTP (6)
      • 알고리즘 (1)
    • Web (13)
    • AWS (6)
    • Spring Framework (33)
    • Spring Boot (10)
    • Spring Data (22)
      • JPA (14)
      • Query DSL (7)
      • Redis (1)
    • Spring Security (9)
    • Spring Batch (4)
    • MyBatis (10)
    • Front-End (51)
      • JS (27)
      • Vue.js (17)
      • React (5)
      • JQuery (0)
      • d3.js (2)
    • DBMS (24)
      • SQL, RDBMS (16)
      • MongoDB (5)
      • Redis (3)
    • Kafka (3)
    • 리눅스 (Linux) (4)
    • 디자인 패턴 (3)
    • VCS (8)
    • API (0)
    • TOOL (3)
    • Reading Book (28)
      • 이펙티브 자바 (11)
      • Clean Code (10)
      • 1분 설명력 (4)
      • HOW TO 맥킨지 문제해결의 기술 (3)
    • C# (4)
    • NSIS (6)
    • JSP & Servlet (65)
      • 개념 (42)
      • 실습 (23)
    • ETC (11)
최근 글
인기 글
최근 댓글
태그
  • #querydsl
  • #게시판
  • #Docker
  • #JDBC
  • #Java
  • #servlet
  • #jsp
  • #회원 관리
  • #이펙티브 자바
  • #mybatis
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바