목록자바 (65)
개발자는 기록이 답이다
Primitive 타입과 Reference 타입의 차이점? Primitive 타입과 Reference 타입은 Java에서 변수의 성격과 저장 방식에 차이가 있는 두 가지 기본적인 데이터 타입이다. 구분 Primitive 타입 Reference 타입 메모리 할당 및 저장 방식 스택 메모리에 직접 값을 저장 참조 주소를 변수에 할당하고, 해당 주소를 따라가서 메모리에 저장된 객체의 값에 접근. 객체는 힙 메모리에 저장됨 (String은 예외로 String Pool에 저장됨) 데이터 크기 고정된 크기를 가짐 4바이트 또는 8바이트의 고정 크기를 가지며, 실제 기본 타입 목록 byte, short, int, long, float, double, char, boolean 클래스, 인터페이스, 배열 등 값의 초기화..
오버로딩과 오버라이딩은 Java에서 다형성을 구현하는 두 가지 주요 메커니즘이다. 위치 시그니처 반환 타입 오버라이딩 상속 관계에서 부모 클래스의 메소드를 자식 클래스에서 재정의 메소드 이름과 매개변수의 타입 및 개수가 일치해야 함 반환 타입까지 동일해야 함 오버로딩 같은 클래스 내에서 발생 메소드 이름이 같고, 매개변수의 타입 또는 개수가 달라야 함 반환 타입이 달라도 됨 오버라이딩 : 상속 관계에서 부모클래스에서 선언된 메소드를 하위클래스에서 가져와 구현할때 사용 class Animal { void makeSound() { System.out.println("동물 소리"); } } class Dog extends Animal { @Override void makeSound() { System.out...
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bshAIx/btsCq9STVUK/J7oL8HZECfxh3uxtKmNx11/img.png)
Effective Java를 공부하다보면 아래와 같은 파트가 있다. equals와 hashCode에 대해 디테일하게 알아보는 시간을 갖고자한다. 'equals는 일반 규약을 지켜 재정의하라' 'equals를 재정의하려거든 hashCode()도 재정의하라' equals와 hashcode 메소드에 대해 알아보자 equals와 hashCode는 모든 Java 객체의 부모 객체인 Object 클래스에 정의되어 있다. 그렇기 때문에 Java의 모든 객체는 Object 클래스에 정의된 equals와 hashCode 함수를 상속받고 있다. 따라서, 클래스에서 이 메소드들을 사용하거나 오버라이드하여 재정의할 수 있다. 🚩 equals란 ? 2개의 객체가 동일한지 검사하기 위해 사용된다. 2개의 객체가 가리키는 곳이 동..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/wSTS8/btsB17vYUnZ/uKnMp55XKBO3pGQIXrXbg1/img.png)
"백발의 개발자를 꿈꾸며 👨🦳" 강의를 통해 코드리뷰, 레거시 리팩토링, TDD에 대한 더 깊은 이해와 실전 적용 능력을 키우는 것이 목표였습니다. 특히, 레거시 코드 개선과 TDD의 실제 활용법을 집중적으로 배우고 싶었습니다. 신규 프로젝트가 아니라면 유지보수하는 회사에 들어가게 될텐데, 기존의 레거시한 코드를 개선한다면 성과를 낼 수 있을 것이라고 판단했기 때문입니다. 🚩 레거시 코드란? 오래되었지만 여전히 사용되는 것 테스트가 없는 코드 모든 코드가 레거시 (극단적) 레거시 코드를 다루려면 해당 코드를 만든 개발자의 의도를 이해하고, 기능을 분석하는 데 많은 노력이 필요합니다. 레거시 코드는 종종 스파게티처럼 얽혀있고, 강한 의존성 때문에 개선을 시도할 때 사이드 이팩트가 발생할 우려가 있기 때문..