Jinsu's Technical Blog
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (250)
      • Java (18)
      • Spring Framework (33)
        • Toby's Spring 3.1 (6)
        • Spring IoC (6)
        • TDD (6)
        • Reflection (6)
        • AOP (6)
      • Spring Boot (11)
      • Spring Security (22)
      • Database (17)
        • Mysql (2)
        • JDBC (2)
        • JPA (13)
      • Build and Development Tools (3)
        • Maven (1)
        • Gradle (1)
        • Lombok (1)
      • Network (12)
      • Apache Tomcat (11)
      • Microservices Architecture (33)
      • Linux (9)
      • React (10)
      • Docker (22)
      • OAuth (10)
      • DevOps (2)
      • Git (2)
      • HTML (1)
      • CSS (1)
      • JavaScript (1)
      • Problem and Solution Guide (8)
        • Java (1)
        • Spring Framework (4)
        • Reflection (1)
        • Dynamic Proxy (1)
        • JPA (1)
      • Note-Taking (23)
  • 홈
  • 태그
  • 방명록
Java

자바 인터페이스의 확장: 다재다능한 API 설계를 위한 디폴트 및 정적 메서드 활용

🛠️ 마커 인터페이스의 역할 마커 인터페이스는 특별한 메서드나 속성을 가지지 않고, 단지 특정 클래스가 어떤 특정 기능을 수행할 수 있음을 나타내기 위해 사용되는 인터페이스입니다. 자바 프로그래밍 언어에서 주로 사용되며, 다른 객체지향 프로그래밍 언어에서도 비슷한 개념이 존재할 수 있습니다. 🎯 🛠️ 마커 인터페이스의 역할 마커 인터페이스의 주요 역할은 런타임에서 특정 클래스가 특정 속성을 가지고 있음을 나타내는 것입니다. 이를 통해 JVM이나 프레임워크가 해당 클래스에 대해 특별한 처리를 할 수 있습니다. 🌟 대표적인 마커 인터페이스  1. Serializable 📦 • 이 인터페이스를 구현한 클래스는 객체를 직렬화할 수 있습니다. 직렬화는 객체의 상태를 바이트 스트림으로 변환하여 파일 저장이..

2024. 7. 9. 17:22
Java

Key Concepts of Hash Tables, Inheritance, and Object Copying

🔍 Hash Table (또는 Hash Map) 해시 테이블은 키를 값에 매핑하는 효율적인 데이터 구조로, 해시 함수를 사용하여 데이터를 빠르게 검색하고 저장할 수 있습니다. 📌 주요 구성 요소:  1. 해시 함수(Hash Function): • 키를 배열의 인덱스로 변환합니다. • 좋은 해시 함수는 충돌을 최소화하고 키를 고르게 분포시킵니다. 2. 버킷(Bucket) 또는 슬롯(Slot): • 배열의 각 요소로, 각 버킷에는 키-값 쌍이 저장됩니다. 3. 충돌 처리(Collision Handling): • 충돌이 발생하면 다른 위치에 데이터를 저장하는 방법입니다. • **체이닝(Chaining)**과 **개방 주소법(Open Addressing)**이 대표적인 방법입니다. 🔄 충돌 처리 방법:  ..

2024. 7. 8. 17:27
Java

Interface, Type Casting, and the Power of hashCode & equals

📜 Interface: 소프트웨어의 계약서 소프트웨어 엔지니어링에서 인터페이스는 서로 다른 프로그래머 그룹이 소프트웨어가 상호 작용하는 방식을 설명하는 **“계약(Contract)”**입니다. 이를 통해 각 그룹은 다른 그룹의 코드가 어떻게 작성되는지 알 필요 없이 자신의 코드를 독립적으로 작성할 수 있습니다. 예를 들어, 미래의 자율주행 로봇 자동차를 생각해봅시다. 자동차 제조업체는 차량을 제어하는 소프트웨어를 작성하고, 다른 업체는 자동차를 유도하는 시스템을 개발합니다. 이때 자동차 제조업체는 인터페이스를 통해 차량의 제어 방법을 공개해야 합니다. 이를 통해 다른 그룹은 이 인터페이스를 기반으로 자신의 소프트웨어를 작성할 수 있습니다. 📌 주요 개념:  • Interface는 계약서: 다른 그룹의..

2024. 7. 5. 17:19
Java

Nested Classes, Local Classes, Anonymous Classes, and Lambda Expressions

자바에서는 코드를 더 모듈화하고 재사용 가능한 방식으로 작성할 수 있도록 다양한 유형의 클래스를 제공합니다. 이번 글에서는 중첩 클래스, 로컬 클래스, 익명 클래스, 람다 표현식을 깔끔하게 정리해보겠습니다. 각 클래스 유형의 개념과 사용 사례를 알아보겠습니다. 🚀 1. 🏗️ 중첩 클래스 (Nested Class) 중첩 클래스는 외부 클래스 내부에 정의된 클래스로, 외부 클래스와 밀접한 관계를 가집니다. 중첩 클래스는 **정적 중첩 클래스(Static Nested Class)**와 **내부 클래스(Inner Class)**로 나뉩니다. 1.1 정적 중첩 클래스 (Static Nested Class)  • static 키워드로 정의된 클래스입니다. • 외부 클래스의 인스턴스 없이 생성할 수 있습니다. •..

2024. 7. 4. 17:01
Java

Access Modifiers, Reference Types, and Abstract Classes

🗑️ The Garbage Collector: Java의 메모리 관리 🗑️ 📌 참조 유형 (Reference Types) in Java  1. 강한 참조 (Strong Reference) • 기본 참조 유형으로, 객체가 가비지 컬렉션의 대상이 되지 않도록 합니다. • 객체가 강한 참조를 가지고 있는 한, 가비지 컬렉터는 그 객체를 수거하지 않습니다. 2. 약한 참조 (Weak Reference) • 객체가 약한 참조만 가지고 있으면, 가비지 컬렉터가 그 객체를 언제든지 수거할 수 있습니다. • 주로 메모리 누수를 방지하기 위해 사용되며, 캐시와 같은 상황에서 활용됩니다. 3. 소프트 참조 (Soft Reference) • 약한 참조와 유사하지만, 메모리가 충분한 한 가비지 컬렉터가 수거하지 않습니다..

2024. 7. 3. 17:29
Java

Interface, Superclass, and Call by Value

🌟 자바 프로그래밍의 핵심 개념 정리 🌟 🧩 객체 지향 프로그래밍 (OOP)의 이점  1. 모듈화➡️ 객체의 소스 코드는 독립적으로 작성 및 유지 관리될 수 있습니다. 객체는 시스템 내에서 쉽게 전달될 수 있습니다. 2. 정보 은닉➡️ 객체의 메서드를 통해서만 상호 작용할 수 있으며, 내부 구현은 외부로부터 숨겨집니다. 3. 코드 재사용➡️ 이미 존재하는 객체를 활용하여 프로그램을 개발할 수 있습니다. 복잡한 작업을 전문적으로 구현하고 테스트된 객체를 재사용할 수 있습니다. 4. 플러그 가능성 & 디버깅 용이성➡️ 특정 객체에 문제가 발생하면 해당 객체를 교체하여 문제를 해결할 수 있습니다. 🔗 자바 인터페이스  • 추상 메서드인터페이스 내의 모든 메서드는 기본적으로 구현을 포함하지 않는 추상 메..

2024. 7. 3. 08:55
Java

자바 프로그래밍 핵심 개념 이해하기

1. 메서드 오버로딩 (Method Overloading) 자바에서 메서드 오버로딩은 동일한 이름의 메서드를 여러 개 정의하는 것을 의미합니다. 이때 각 메서드는 서로 다른 매개변수의 타입, 개수, 순서 등을 가집니다. 메서드 오버로딩을 통해 코드의 가독성과 재사용성을 높일 수 있습니다. public class Example { // 두 정수를 더하는 메서드 public int add(int a, int b) { return a + b; } // 세 정수를 더하는 메서드 public int add(int a, int b, int c) { return a + b + c; } // 두 실수를 더하는 메서드 public double add(d..

2024. 7. 1. 17:06
Java

C/C++ 프로그래밍 기초: 포인터, 반복문, 클래스, 그리고 Java의 데이터 타입

1. 포인터 변수 포인터는 C/C++ 언어에서 중요한 개념으로, 변수나 배열의 메모리 주소를 가리키는 변수입니다. 이는 자바와 같은 언어에서는 직접적으로 사용되지 않지만, 메모리 관리와 효율적인 프로그래밍을 위해 꼭 알아두어야 할 개념입니다.#include int main(){ int x = 5; int* px = NULL; // 포인터 변수 선언 및 초기화 px = &x; // x의 주소를 포인터 변수에 저장 *px = 15; // 포인터를 사용하여 x의 값을 변경 printf("x is: %d \n", x); int array[] = {1, 2, 3, 4, 5}; // 배열 선언 int* pArray = array; // 배열의 시작 주소를 포인터에 ..

2024. 7. 1. 08:51
Java

컴퓨터 디지털 논리 회로와 관련 개념 정리

컴퓨터 디지털 논리 회로와 관련 개념 정리 컴퓨터의 디지털 논리 회로는 컴퓨터 하드웨어의 핵심을 형성하는 기본적인 구성 요소로, 이진수(0과 1)를 사용하여 정보를 처리하고 저장합니다. 이 글에서는 디지털 논리 회로와 관련된 주요 개념을 소개하고, 메모리 및 CPU 관련 개념들을 정리하였습니다. 1. 디지털 논리 회로 디지털 논리 회로는 기본적으로 논리 게이트로 구성됩니다. 논리 게이트는 다음과 같은 기본 연산을 수행합니다:  • AND 게이트: 두 입력이 모두 1일 때만 출력이 1입니다. • OR 게이트: 두 입력 중 하나라도 1이면 출력이 1입니다. • NOT 게이트: 입력이 1이면 출력이 0, 입력이 0이면 출력이 1입니다. • NAND 게이트: AND 게이트의 반대로, 두 입력이 모두 1일 때 출..

2024. 6. 26. 17:20
Java

컴퓨터 구조론 기초

컴퓨터 과학 기본 개념 1. 비트와 바이트  • 비트 (Bit): 컴퓨터에서 가장 작은 정보 단위로, 0 또는 1의 값을 저장. 2진수로 동작하는 컴퓨터의 기초이며, 전기 신호의 상태를 나타냄. • 바이트 (Byte): 8개의 비트로 구성되며, 256가지의 값을 표현. 일반적으로 1바이트는 문자 하나를 표현하는 데 사용되며, 컴퓨터에서 데이터의 최소 처리 단위로 사용됨. • 비트와 바이트의 관계: • 1 바이트 = 8 비트 • 1 킬로바이트(KB) = 1024 바이트 • 파일 크기는 바이트 단위로 측정되며, 메모리와 저장 장치의 기본 단위로 사용됨. 2. 메모리 단위 메모리는 기본적으로 2의 제곱을 기준으로 단위를 나눔.  • 킬로바이트 (KB): 1KB = 1024 바이트 • 메가바이트 (MB): 1M..

2024. 6. 25. 17:02
  • «
  • 1
  • ···
  • 14
  • 15
  • 16
  • 17
  • »

공지사항

  • Jinsu's GitHub

전체 카테고리

  • 분류 전체보기 (250)
    • Java (18)
    • Spring Framework (33)
      • Toby's Spring 3.1 (6)
      • Spring IoC (6)
      • TDD (6)
      • Reflection (6)
      • AOP (6)
    • Spring Boot (11)
    • Spring Security (22)
    • Database (17)
      • Mysql (2)
      • JDBC (2)
      • JPA (13)
    • Build and Development Tools (3)
      • Maven (1)
      • Gradle (1)
      • Lombok (1)
    • Network (12)
    • Apache Tomcat (11)
    • Microservices Architecture (33)
    • Linux (9)
    • React (10)
    • Docker (22)
    • OAuth (10)
    • DevOps (2)
    • Git (2)
    • HTML (1)
    • CSS (1)
    • JavaScript (1)
    • Problem and Solution Guide (8)
      • Java (1)
      • Spring Framework (4)
      • Reflection (1)
      • Dynamic Proxy (1)
      • JPA (1)
    • Note-Taking (23)

블로그 인기글

전체 방문자

오늘
어제
전체
Powered by Privatenote Copyright © Jinsu's Technical Blog All rights reserved. TistoryWhaleSkin3.4

티스토리툴바