[개발 일기] 2025.02.06 - 초기화하다?
·
개발 일기
💡 개요오늘은 객체를 생성할 때, 가장 처음으로 하는 작업인 초기화가 도대체 뭘 의미하는지에 대해 정리해 볼 것이다.   📕 초기화  초기화의 사전적 의미는 ‘처음 상태로 되돌림’ 이다.  하지만 자바의 초기화 의미는 조금 다르다.  자바의 초기화는 ‘변수에 처음으로 값을 할당한다’라는 의미이다.  이러한 초기화 과정을 통해 변수에 예상치 못한 값이 할당되는 것을 방지할 수 있다.  그런데 자바에서는 변수의 선언 형태에 따라 초기화를 반드시 해야 하는 경우와 그렇지 않은 경우가 있다.   🚀 변수 초기화지역 변수 지역 변수는 메서드 내부에서 선언된 변수를 의미한다.  아래 코드는 VariableInit.main() 메서드 내부에서 선언된 지역 변수를 나타낸 것이다. public class Varia..
[개발 일기] 2025.02.05 - 식별 관계, 비식별 관계
·
개발 일기
🤔 개요오늘은 데이터베이스에서 외래 키 설정에 사용되는 식별 관계와 비식별 관계에 대해 정리해 보자.   💡 식별 관계 식별 관계란, 부모 테이블의 기본 키가 자식 테이블의 기본 키에 포함되는 것을 말한다.  이러한 식별 관계가 성립된 테이블에선 자식 테이블의 레코드는 부모 테이블의 레코드 없이는 존재할 수 없다.  이로 인해 부모 테이블과 자식 테이블 간의 강한 종속 관계가 성립된다.  다음은 제품과 주문의 관계를 식별 관계로 나타낸 예시이다.  보통 쿠팡이나 네이버 쇼핑에서 어떠한 주문을 하기 위해선 반드시 그 제품이 존재해야 한다.  그렇기 때문에 주문 테이블 입장에선 제품 테이블의 레코드가 반드시 존재해야 한다.  이러한 식별 관계를 데이터베이스에 구현하는 경우, 장・단점이 명확하다.   👍..
[개발 일기] 2025.02.04 - 추상 클래스 vs 인터페이스
·
개발 일기
개요 오늘은 자바에서 자주 사용되는 추상 클래스와 인터페이스의 특징과 차이에 대해 정리해 보자.   추상 클래스 자바에서 추상 클래스란 하나 이상의 추상 메서드를 가지고 있는 클래스를 의미한다.  추상 메서드란, 구현부가 작성되지 않은 메서드를 의미한다. 이 메서드를 사용하기 위해선 해당 추상 클래스를 상속받는 하위 클래스에서 반드시 재정의해야 한다.  추상 클래스와 추상 메서드는 코드 상에 abstact라는 키워드를 명시해야 한다.  아래의 클래스는 Animal이라는 추상 클래스가 있고, 클래스 내부엔 makeSound()라는 추상 메서드가 있다. abstract class Animal { String name; int age; abstract void makeSound();}c..
[개발 일기] 2025.02.03 - bit, byte (Feat : byte의 혼란)
·
개발 일기
개요 오늘은 네트워크 관련 공부를 하면서 이름이 비슷해서 자주 헷갈렸던 bit와 byte의 특징에 대해 정리해 보자.   bit bit란 컴퓨터 내부에서 사용되는 데이터의 최소단위이다.  컴퓨터 내부에선 전기 신호로 표현되며 0 또는 1의 값을 가진다.1 → 전기가 흐름0 → 전기가 흐르지 않음 bit단위는 주로 네트워크 속도를 표현할 때 사용된다.   참고 Mbps(Megabits per second) → 초당 메가비트(1초에 몇 메가비트 전송)   byte byte(B)는 8개의 bit로 구성된 데이터 단위이다.  총 8개의 bit로 구성되어 있기 때문에 256 종류의 데이터를 표현할 수 있다.   ASCII 문자에 있는 알파벳이나 특수문자는 한 문자당 1바이트로 표현된다.  하지만 한글은 한 글자에..
[개발 일기] 2025.02.02 - 제네릭
·
개발 일기
개요 제네릭은 자바에서 정말 밥먹듯이 사용되는 기술이다.  오늘은 이 제네릭에 대해 정리해 보자.   제네릭 클래스나 인터페이스 선언에 타입 매개변수가 필요하다면 제네릭 클래스나 제네릭 인터페이스라 한다.  주요 기술은 데이터 타입을 내부에서 미리 지정하지 않고, 객체를 생성할 때 외부에서 직접 타입을 결정할 수 있도록 해주는 기술이다.  즉, 제네릭을 사용하면 객체 별로 다른 타입을 저장할 수 있다.  말로는 이해가 어려우니 아래 예시 코드를 보도록 하자. ArrayList intList = new ArrayList();ArrayList strList = new ArrayList();ArrayList doubleList = new ArrayList(); 이처럼 ArrayList 객체에선 하나의 데이터 ..
[개발 일기] 2025.02.01 - 객체 지향 생활 체조 9가지 규칙 (2)
·
개발 일기
개요 오늘은 객체 지향 생활 체조에서 남은 5가지 규칙을 정리해 보자.   객체 지향 생활 체조 9가지 규칙 줄여 쓰지 않는다 변수 명이나 메서드 명을 축약하지 않고, 의미가 명확하도록 작성한다.  보통 개발자가 메서드 명을 축약하고자 하는 경우는 하나의 메서드에서 너무 많은 역할을 수행해서일 경우가 크다.  그렇기 때문에 이 ‘줄여 쓰지 않는다’라는 규칙은 단일 책임 원칙과도 이어진다.  만약 하나의 메서드에서 하나의 역할만 담당한다면 자연스럽게 메서드 명은 짧아질 것이다.  적용 전 public class Board { ... public void modifyTitleAndContent(String title, String content) { ... }}  적용 후 pub..