본문 바로가기

전체 글

(185)
[Effective JAVA] 모든 객체의 공통 메서드 (1) Equals 메소드의 재정의 서론 Object 객체는 만들 수 있는 구체 클래스이나, 기본적으로 상속해 사용하도록 설계됨 Object에서 final이 아닌 메서드(equals, hashCode, toString, clone, finalize)는 모두 재정의(overriding)을 염두하고 설계됨 즉, 재정의를 위해 지켜야하는 일반 규약이 명확함 모든 클래스는 일반 규약에 맞게 재정의해야 함 만약 메서드 구현을 잘못 할 경우, HashMap, HashSet 등 이 규약을 준수한다고 가정하는 클래스에서 오동작이 발동함 고로 이번 장에서는 Object 메서드들을 언제 어떻게 재정의해야 하는지 다룸 Item 10. equals는 일반 규약을 지켜 재정의 해야 함 equals는 기본적으로 본인과 객체가 동일한지 여부를 판단해 true OR ..
Java의 Enum 활용 Enum이란? 관련있는 상수들의 집합 Enum의 등장: 아래 사항들을 보완하고자 나타남 기존 클래스 내에 상수를 선언해 관리하였으나 네이밍이 겹치고, 불필요하게 상수가 많아지는 경우가 존재했음 IDE의 지원을 적극적으로 받을 수 없음 타입의 안정성이 떨어짐 1. 데이터간 연간관계 표현 각 테이블에서 [ 1, True, Y ], [ 0, False, N ]이 같은 의미라 했을 때 이를 구분할 필요가 있음 Enum을 적용하지 않는다면 해당 값을 인자로 받아 적절한 값을 return하는 형식의 메소드 구현이 가능함 장점 같은 의미의 값을 처리할 수 있음 단점 불필요한 코드량이 많음 Y와 N이 아닌 다른 문자가 추가될 경우 이를 추가로 구현해야함 동일 타입이 추가되는 데에 비해 같은 코드가 반복돼 생산성이 감소..
[Effective JAVA 3S/E] 객체 생성과 파괴 - item2 : 빌더(Builder) 서론 정적 팩터리와 생성자는 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 제약을 가짐 이를 해결하기 위한 개발자의 접근 1. 점층적 생성자 패턴(Telescoping Constructor Pattern) 말 그대로 점층적인 생성자 패턴 필수 매개변수부터 모든 경우의 수의 선택 매개변수를 받는 생성자까지 늘려가는 방식 하늘쓰 식으로 말을 표현하자면 "오버라이딩의 끝판왕"으로 생성자를 늘려감 인스턴스 생성시 원하는 매개변수를 포함한 생성자 중 가장 짧은 것을 고르면 됨 확장이 어렵다는 한계를 가짐 매개변수의 수가 많아질 경우 클라이언트 코드를 작성하거나 읽기가 어려움 Intellij의 경우 매개변수가 무엇인지 표기되어 비교적 Human Error 발생 가능성이 낮지만, 매개변수 값을 잘못 입력하는 일..
[Effective JAVA 3S/E] 객체 생성과 파괴 - item1 개요 객체를 만들어야 할 때와 만들지 말아야 할 때 구분 올바른 객체 생성 방법과 불필요한 생성 피하기 제때 파괴됨을 보장하며, 파괴 전 수행할 정리 작업 관리 요령 [1] 생성자 대신 정적 팩터리 메서드 고려하기 클래스의 인스턴스 생성 방법 public 생성자를 통한 생성 정적 팩터리 메서드(static factory method) - 클래스의 인스턴스를 반환하는 단순한 정적 메서드 임 - 디자인 패턴과 일치하는 패턴은 없음 정적 팩토리 메소드 — 소중한 나의 개발일기 (tistory.com) 정적 팩토리 메소드 이펙티브 자바 3판 아이템 1. 생성자 대신 정적 팩토리 메소드를 고려하라 인스턴스 생성법 보통 클래스의 인스턴스를 생성하기 위해서는 public 생성자를 이용합니다. 이 생성자를 이용하여 인..
인텔리제이 Git Branch 추가 intellij에서 Git branch 변경 방법 :: record of programmer (tistory.com) intellij에서 Git branch 변경 방법 intellij에 우측 하단을 주목하면 Git:master라고 표시된 곳을 확인할 수 있는데 이곳을 클릭하면 만들어 둔 branch를 선택하여 작업을 할 수 있고, branch를 새로 만들어 작업하거나 merge 등 Git명령어로 r-o-p.tistory.com
인텔리제이 자바 main 메소드 실행 설정 기존 위와 같이 깔끔하지 않게 출력되는 문제 발생 IntelliJ 2019.2 에서 Gradle로 run과 test가 실행될때 (tistory.com) IntelliJ 2019.2 에서 Gradle로 run과 test가 실행될때 인프런 강의를 올린 뒤 최근에 받은 질문이 있습니다. 즉, IntelliJ로 메인 메소드를 실행했는데 그레이들로 실행한것처럼 로그가 출력된다는 것인데요. 실제로 IntelliJ 2019.2로 버전 업데이트 이후 jojoldu.tistory.com settings에서 설정 후 해결 완료 Build and run using: Gradle => intelliJ IDEA Run tests using: Gradle => intelliJ IDEA
인텔리제이 윈도우 한글 깨짐 [IntelliJ] 한글 깨짐 현상 수정 (tistory.com) [IntelliJ] 한글 깨짐 현상 수정 IntelliJ IDEA 2020.1.1 (Community Edition) Build #IC-201.7223.91, built on April 30, 2020 Runtime version: 11.0.6+8-b765.40 amd64 기준으로 해결한 사항을 기록합니다. 1. File > Setting(Ct.. oysu.tistory.com
윈도우 인텔리제이 형상 관리(Git) 인텔리제이 활용11 - 버전관리 (git) (tistory.com) 인텔리제이 활용11 - 버전관리 (git) 인텔리제이 활용11 - 버전관리 (git) 깃(git)은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다. 소프트웨어 개발 hitomis.tistory.com