[개발 일기] 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..
[개발 일기] 2025.01.31 - LSTM
·
개발 일기
개요 면접을 준비하며 포트폴리오에 대해 읽어보다가 학부 졸업작품으로 진행한 프로젝트에서 사용한 메인 기술인 LSTM에 대해 정리해 보자.  사실 이 기술을 사용한 지 너무 오래돼서 기억이 가물가물 한 건 안 비밀..   RNN RNN(순환 신경망)이란 과거의 정보를 기억하면서 현재 데이터를 과거의 정보를 토대로 처리하는 신경망을 의미한다.  과거에 사용되던 일반적인 신경망은 입력을 한 번 받고 결과를 출력한다. 즉, 이전에 사용된 데이터를 축적하지 않는다.  하지만 RNN은 이전의 정보를 저장하고 이를 다음 단계에서 활용한다.  하지만 이 RNN도 과거에 사용된 정보를 영원히 보관하지 못한다. (장기 의존성 문제)  이렇게 RNN이 과거 정보를 잘 기억하지 못하는 이유는 역전파 과정에서 발생하는 기울기 ..
[개발 일기] 2025.01.30 - 객체 지향 생활 체조 9가지 규칙 (1)
·
개발 일기
개요 오늘은 소트웍스 앤솔러지라는 개발서적에 있는 ‘객체 지향 생활 체조 원칙 9가지’에 대해 정리해 보자.  사실 위의 책을 읽진 않았지만, 숫자 야구라는 과제를 연습 삼아해 보다가 다양한 블로그에서 위 규칙을 토대로 코드를 짠 사람이 많길래 나도 궁금해져서 이렇게 일기를 쓴다..!   객체지향 생활체조 9가지 규칙 위의 규칙이 만들어지게 된 계기는 클린 코드 작성과 객체 지향 원칙을 실천하기 위해서이다.  이 규칙을 지킨다면 더 객체 지향적이고 가독성이 뛰어난 코드를 만들 수 있다. (과연 내가 이걸 지킬 수 있을까..)  한 메서드에 오직 한 단계의 들여 쓰기만 허용한다 들여 쓰기가 많다는 것은 곧 코드의 복잡도가 높아진다는 의미고, 이는 하나의 메서드에서 너무 많은 역할을 하고 있을 가능성이 크다..
[개발 일기] 2025.01.29 - 불변 객체
·
개발 일기
개요 오늘은 자바에서 자주 사용되는 불변 객체에 대해 정리해보자.   불변 객체 볼변 객체란 한 번 생성되면 그 상태를 변경할 수 없는 객체를 말한다.  즉, 객체의 필드 값을 변경할 수 없으며, 모든 필드는 생성 시 결정되고 이후 수정할 수 없다.  자바에서 대표적인 불변 객체가 String, Boolean, Integer, Long 등이 있다.  보통 참조형 타입의 객체는 모두 불변 객체라고 생각하면 된다.  다음은 참조형 타입의 구현 코드이다.   보다시피 위의 클래스 코드를 보면 클래스 선언부, 멤버 변수 모두 final로 선언되어 있다.  자바에서 불변 객체를 표현하기 위한 키워드는 final이다. 그렇기 때문에 위의 클래스들 모두 불변 객체로 생성되는 것이다.  그렇다고 해서 불변 객체를 아예..