본문 바로가기

☕️ JAVA25

지역 변수의 범위를 줄여 쉬운 코드 작성하기 (feat. while 보다는 for) 이 글은 책 이펙티브 자바 3판 Item57을 참고했습니다. 잘못된 내용이 있다면 편하게 말씀해주세요 🙏🏻 주제 일반 프로그래밍 원칙 결론 지역 변수가 많거나 범위가 넓으면 오류 발생이 크다. 지역 변수의 유효 범위를 최소로 줄이면 가독성과 유지보수성이 높아지고 오류 가능성은 낮아진다. 지역 변수의 범위와 오류를 줄이는 방법 5가지를 알아보자 ✅ 1. 가장 처음 쓰일 때 선언하기 C언어 개발자들은 지역 변수를 코드 블록 첫머리에 선언하는 경우가 많았다. 하지만 코드가 길어지면 정작 사용할 때 이해가 어렵다. 자바에서는 어디서든 선언 가능하니 사용하기 직전에 선언하자 public class Car { public static void main(String[] args) { String name = "BMW.. 2022. 1. 18.
모든 구현 클래스에서 Object의 toString 재정의를 고려하자 🗣 이 글은 책 '이펙티브 자바 3판 Item 12'와 하단 Reference 참고했습니다. 잘못된 내용이 있다면 편하게 말씀해주세요 🙏🏻 주제 공통 메서드 : 자바의 클래스들은 최상위 클래스 “Object”를 모두 상속받고 있다. Object에서 final 메서드가 아닌 메서드 (equals, hashCode, toString, clone, finlized)가 있다. 왜 최상위 클래스에서 final 메서드를 제외한 메서드를 하위 클래스에 상속시킬까? 바로 클래스를 만드는 프로그래머, 사용자가 재정의하여 사용하라고 설계했기 때문이다. 하지만 규칙 없이 사용자 마음대로 사용하면 치명적일 수 있기 때문에 Object API 명세에 일반 규약이 명확히 정의되어 있다. 그중 toString() 메서드를 어떻게 오버.. 2022. 1. 15.
객체 생성할 때 '생성자' 대신 '정적 팩터리 메서드'를 써볼까? 🏭 *이 글은 책 '이펙티브 자바 3판 Item 1'과 하단 Reference 참고했습니다. 잘못된 내용이 있다면 편하게 말씀해주세요 🙏🏻 주제 객체 생성 : 인스턴스 생성 방법은 두 가지가 있다 하나는 전통적인 public 생성자 방법과 또 다른 하나는 정적 팩터리 메서드(static factory method) 방법이다. 예제 // 두 가지 인스턴스 생성 방법 public class Book { private String title; private String author; // 1. public 생성자 public Book(String title) { this.title = title; } // 2. 정적 팩터리 메서드 public static Book createBookWithTitle(String .. 2022. 1. 15.
자바 객체의 메모리 크기는 얼마일까? (OOPs, Java Object Header, JOL 사용하기) 🤖 문득 이런 생각이 들었다. 내가 구현한 클래스의 메모리 총크기는 얼마일까? 흠......? * 이 글은 책 소프트웨어의 품격 2장과 하단 reference를 참고했습니다. 잘못된 내용이 있다면 편하게 말씀해주세요 🙏🏻 목차 0. 들어가며 1. 참조의 기본 크기 2. 객체 헤더 3. 패딩 4. 예제 계산해보기 5. JOL(Java Object Layout)를 인텔리 제이에서 편하게 (플러그인 소개) 0. 들어가며 자바의 자료형(type)은 크게 두 가지 PrimitiveType(기본타입)과 ReferenceType(레퍼런스 타입)이 있다. 보통 기본 타입의 크기는 고정되어 있어 메모리 크기 계산이 비교적 쉽지만, 레퍼런스 타입, 객체에 대한 메모리 크기 계산은 쉽지 않다. 그 이유는 객체의 정확한 크기를 .. 2022. 1. 14.
📕 소프트웨어의 품질과 그 특성들 * 이 글은 책 소프트웨어의 품격 1장을 참고하여 작성되었습니다. 잘못된 내용이 있다면 편하게 말씀해주세요 🙏🏻 소프트웨어 품질이란 무엇인가 내적(internal) vs 외적(external) 소프트웨어 품질 기능적(functional) vs 비기능적(nonfunctional) 소프트웨어 품질 소프트웨어 품질 특성에 대한 설명 소프트웨어 품질 기준 사이 상호작용, trade-off 소프트웨어 품질이란 무엇인가 책에서 말한 소프트웨어 품질(quality)이란 소프트웨어에 대한 전반적인 가치가 아니라 소프트웨어가 지녀야 할 특성을 말한다. 여기서 특성은 특정 프로그래밍 언어, 효율성 등 많이 있지만 품질에서 이야기하는 특성은 이론상 측정 가능한 특성을 말한다.(특정 언어는 측정 가능 X) 소프트웨어 품질, .. 2022. 1. 8.