개발자 노트 - 강경훈 story
close
프로필 배경
프로필 로고

개발자 노트 - 강경훈 story

  • 분류 전체보기 (582)
    • 설치메뉴얼 (9)
    • Java (273)
      • Java 기초 문법 (24)
      • Java 객체 지향 핵심 (30)
      • Java 유용한 클래스 (51)
      • 자료구조 (20)
      • JSP (28)
      • Swing 프로젝트 (19)
      • 교재 정리 (12)
      • 디자인 패턴 (11)
      • 자바 라이브러리 (6)
      • 알고리즘(코테) (67)
    • Spring Boot (92)
      • Bank App 만들기 (deployment) (30)
      • 추가 개념 (7)
      • Blog 프로젝트 만들기(JPA) (53)
    • My Project (29)
      • 쇼핑몰 (15)
      • Java Swing 멀티 쓰레딩 프로그램 (10)
      • Java 1 : N 양방향 소켓 통신 (스윙) (4)
    • 면접 질의 응답 모음 (5)
    • CS (28)
      • 컴퓨터 구조 (7)
      • 운영체제 (6)
      • 네트워크 (8)
      • 시스템 설계 (7)
    • Vue.js (1)
      • 사전지식 (1)
    • MySQL (47)
      • 정리 (33)
      • 1일 1쿼리 (14)
    • HTML CSS (30)
      • HTML (10)
      • CSS (8)
      • CSS flexbox (9)
      • 블로그 만들기 (3)
    • JS (23)
      • JavaScript 핵심 (6)
      • JS 작업을 위한 코딩 연습 (8)
      • JavaScript 게시판 만들기 (8)
    • Git (9)
      • 강의 정리 (5)
      • 교재 정리 (3)
    • Flutter (27)
      • 기초 (4)
      • Flutter UI 프레임워크 (18)
      • MVVM 패턴과 상태 관리 (4)
    • error note (4)
      • Java (4)
    • 방통대정리 (2)
      • C++프로그래밍 (2)
  • 홈
  • 깃 허브
  • 설정

Quick Sort (퀵 정렬)

퀵 정렬이란?퀵 정렬(Quick Sort)은 분할 정복(Divide and Conquer) 방식의 정렬 알고리즘으로, 배열에서 하나의 기준값(피벗, pivot)을 정한 뒤 이를 중심으로 작은 값은 왼쪽, 큰 값은 오른쪽으로 분할하며 정렬을 수행한다.기본 동작은 다음과 같다:배열에서 피벗을 선택한다.피벗보다 작은 값들은 왼쪽, 큰 값들은 오른쪽으로 재배치한다.왼쪽과 오른쪽 부분 배열에 대해 재귀적으로 같은 작업을 반복한다.이러한 방식은 배열 전체를 순차적으로 정렬하기보다는 정렬이 완료된 피벗을 기준으로 분할 정렬을 반복해 정렬을 점진적으로 완성해 나가는 구조다.퀵 정렬은 평균적으로 매우 빠르며, 실제로 많은 라이브러리에서 기본 정렬 알고리즘으로 채택되고 있다.퀵 정렬 알고리즘 단계별 예시다음과 같은 배열이..

  • format_list_bulleted Java/알고리즘(코테)
  • · 2025. 5. 11.
  • textsms

Merge Sort (병합 정렬)

병합 정렬이란?병합 정렬(Merge Sort)은 분할 정복(Divide and Conquer) 전략을 기반으로 하는 정렬 알고리즘이다.전체 데이터를 반으로 나누고, 각각을 재귀적으로 다시 나눈 뒤, 정렬된 두 부분을 병합(merge) 하며 정렬을 완성해 나간다.핵심 과정은 다음과 같다:리스트를 더 이상 나눌 수 없을 때까지 반으로 쪼갠다.잘게 쪼개진 리스트들을 두 개씩 정렬하며 병합한다.최종적으로 하나의 정렬된 리스트로 합쳐진다.이러한 방식은 항상 균형 잡힌 트리 구조의 작업 흐름을 따르기 때문에입력 데이터의 정렬 여부와 관계없이 항상 일정한 시간 복잡도를 유지한다.병합 정렬 알고리즘 단계별 예시예제로 아래와 같은 리스트가 있다고 가정하자:[5, 3, 8, 4, 2, 7, 1, 6]병합 정렬은 이 리스트..

  • format_list_bulleted Java/알고리즘(코테)
  • · 2025. 5. 11.
  • textsms

Insertion Sort (삽입 정렬)

삽입 정렬이란?삽입 정렬(Insertion Sort)은 현재 위치의 값을 그 이전의 정렬된 부분과 비교하여 적절한 위치에 삽입해 나가는 방식의 정렬 알고리즘이다. 우리가 카드를 손에 쥐고 하나씩 정렬해 가는 과정과 유사하다. 맨 앞의 원소는 이미 정렬되어 있다고 가정하고, 그 다음 원소부터 시작하여 앞쪽 정렬된 원소들과 비교하며 자신의 위치를 찾아 삽입하는 방식이다. 정렬이 이루어지는 과정에서 원소는 왼쪽 방향으로 한 칸씩 이동하거나 교환되며, 적절한 위치를 찾아 삽입되므로 ‘삽입’ 정렬이라 불린다. 이 정렬 방식은 단순하고 구현이 쉬우며, 소규모 데이터나 거의 정렬된 데이터에 대해 매우 효율적인 성능을 보인다.삽입 정렬 알고리즘 단계별 예시다음과 같은 리스트가 있다고 가정하자.[5, 3, 4, 1, 2..

  • format_list_bulleted Java/알고리즘(코테)
  • · 2025. 5. 11.
  • textsms

Java Functional Interface (함수형 인터페이스)

함수형 인터페이스란?함수형 인터페이스(Functional Interface)는 추상 메서드가 하나만 존재하는 인터페이스를 의미한다. 이 인터페이스는 람다 표현식의 대상이 되기 위한 조건이다. 자바에서는 ⟨⟨@FunctionalInterface⟩⟩ 어노테이션을 사용하여 함수형 인터페이스임을 명시할 수 있다:@FunctionalInterfacepublic interface MyFunction { void execute();}이 어노테이션은 선택 사항이지만, 두 개 이상의 추상 메서드를 선언할 경우 컴파일 오류를 발생시켜 함수형 인터페이스 규칙을 보장해준다.함수형 인터페이스는 자바 8 이후로 도입된 람다 표현식과 밀접한 관계를 가지며, 람다를 사용하기 위해서는 해당 타입이 반드시 함수형 인터페이스여야 한..

  • format_list_bulleted Java/Java 유용한 클래스
  • · 2025. 5. 10.
  • textsms

Java Lambda Expression (람다 표현식)

람다 표현식이란?람다 표현식(Lambda Expression)은 익명 함수를 간단하게 표현하는 문법이다. Java 8에서 도입되었으며, 기존의 익명 클래스를 대체하거나 축약하는 데 유용하게 사용된다. 주로 함수형 인터페이스의 구현체를 만들 때 쓰인다.람다 표현식의 기본 문법은 다음과 같다:(매개변수) -> { 실행문 }예를 들어, ⟨⟨Runnable⟩⟩을 람다로 구현하면 다음과 같다:Runnable r = () -> System.out.println("스레드 실행 중...");매개변수가 없을 경우 빈 괄호 ⟨⟨()⟩⟩를 쓰며, 실행문이 하나라면 중괄호도 생략 가능하다.기존의 익명 클래스와 비교하면 코드가 훨씬 간결해지는 것을 알 수 있다. 람다가 도입된 가장 큰 이유는 자바에 함수형 프로그래밍 개념을 도..

  • format_list_bulleted Java/Java 유용한 클래스
  • · 2025. 5. 10.
  • textsms

Java Anonymous Class (익명 클래스)

익명 클래스란 무엇인가?자바에서 익명 클래스(Anonymous Class)란 이름이 없는 클래스이다. 보통 일회성으로 어떤 기능을 빠르게 구현하고 싶을 때 사용한다. 특정 인터페이스를 구현하거나 클래스를 상속할 필요는 있지만, 굳이 이름 있는 클래스를 따로 정의하기에는 번거로운 경우에 주로 쓰인다.익명 클래스는 다음과 같은 형식으로 작성한다:Button btn = new Button();btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { System.out.println("버튼 클릭됨"); }});위 코드에서 ⟨⟨OnClickListener⟩⟩를 구현하는 클래스의 이름이 없..

  • format_list_bulleted Java/Java 유용한 클래스
  • · 2025. 5. 10.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • ···
  • 46
  • navigate_next
공지사항
  • 목차 목록
전체 카테고리
  • 분류 전체보기 (582)
    • 설치메뉴얼 (9)
    • Java (273)
      • Java 기초 문법 (24)
      • Java 객체 지향 핵심 (30)
      • Java 유용한 클래스 (51)
      • 자료구조 (20)
      • JSP (28)
      • Swing 프로젝트 (19)
      • 교재 정리 (12)
      • 디자인 패턴 (11)
      • 자바 라이브러리 (6)
      • 알고리즘(코테) (67)
    • Spring Boot (92)
      • Bank App 만들기 (deployment) (30)
      • 추가 개념 (7)
      • Blog 프로젝트 만들기(JPA) (53)
    • My Project (29)
      • 쇼핑몰 (15)
      • Java Swing 멀티 쓰레딩 프로그램 (10)
      • Java 1 : N 양방향 소켓 통신 (스윙) (4)
    • 면접 질의 응답 모음 (5)
    • CS (28)
      • 컴퓨터 구조 (7)
      • 운영체제 (6)
      • 네트워크 (8)
      • 시스템 설계 (7)
    • Vue.js (1)
      • 사전지식 (1)
    • MySQL (47)
      • 정리 (33)
      • 1일 1쿼리 (14)
    • HTML CSS (30)
      • HTML (10)
      • CSS (8)
      • CSS flexbox (9)
      • 블로그 만들기 (3)
    • JS (23)
      • JavaScript 핵심 (6)
      • JS 작업을 위한 코딩 연습 (8)
      • JavaScript 게시판 만들기 (8)
    • Git (9)
      • 강의 정리 (5)
      • 교재 정리 (3)
    • Flutter (27)
      • 기초 (4)
      • Flutter UI 프레임워크 (18)
      • MVVM 패턴과 상태 관리 (4)
    • error note (4)
      • Java (4)
    • 방통대정리 (2)
      • C++프로그래밍 (2)
최근 글
인기 글
태그
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바