Learn From Failure

고정 헤더 영역

글 제목

메뉴 레이어

Learn From Failure

메뉴 리스트

  • tag
  • 분류 전체보기 (112)
    • Algorithm (91)
    • NestJS (2)
    • Java (6)
    • Spring (8)
    • AWS (1)
    • DBMS (2)

검색 레이어

Learn From Failure

검색 영역

컨텐츠 검색

Java

  • 정렬 알고리즘 종류별로 직접 구현해 보기

    2025.02.23 by aeongiii

  • 객체 지향 프로그래밍 (OOP)

    2024.12.03 by aeongiii

  • ✍🏻JVM이란?

    2024.12.03 by aeongiii

  • 자바가 컴파일되는 과정

    2024.12.03 by aeongiii

  • 함수형 프로그래밍이란?

    2024.12.03 by aeongiii

  • ✍🏻Collection Framework - 주요 인터페이스, 클래스 정리

    2024.11.27 by aeongiii

정렬 알고리즘 종류별로 직접 구현해 보기

정렬 알고리즘의 종류- 오름차순 정렬 기준으로 기록한다.1. Bubble Sort(버블 정렬)- 근접한 두 수를 순서대로 비교해서, 작은 수 -> 큰 수 방향으로 정렬(스왑)된다.- 이 작업을 한 번 수행할 때마다 가장 큰 값이 맨 끝에 위치하게 된다.- 전체 배열을 한 번 순회하면 최대값이 맨 끝으로 간다. -> 반복.- 이 작업을 최대 n-1번 반복하면 정렬 완료된다. - ex) 2 9 4 7 3을 정렬할 경우  1번째 반복 : 29473 > 24973 > 24793 > 24739  (9 고정)  2번째 반복 : 24739 > 24379  (7 고정)  3번째 반복 : 24379 > 23479  (4 고정)   4번째 반복 : 23479  (3 확정, 2 확정) - 단점 : O(n^2)로 매우 비효율..

Java 2025. 2. 23. 00:43

객체 지향 프로그래밍 (OOP)

자바 언어의 가장 큰 특징은 객체 지향 언어라는 점이다.객체지향 프로그래밍에 대해 알아보자.1. 객체 지향 프로그래밍(Object-Oriented Programming, OOP)컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 객체들의 모임으로 파악하는 것이다.각각의 객체는 메시지를 주고받고 데이터를 처리할 수 있다.객체 지향 프로그래밍을 통해 프로그램을 유연하고 변경 용이하게 만들 수 있다. 즉, 컴포넌트를 쉽고 유연하게 갈아 끼울 수 있다. 2. 객체 지향의 특징추상화필요한 정보만 보여주고, 불필요한 세부 사항은 숨긴다.복잡한 시스템을 간단히 표현하여 핵심 개념만 드러낸다.Ex운전자는 핸들과 페달만 조작하면 되고, 엔진 내부 작동 원리는 알 필요 없다.인터페이스나 추상 클래스..

Java 2024. 12. 3. 21:34

✍🏻JVM이란?

JVM은 Java Virtual Machine의 줄임말로, OS에 종속받지 않고 CPU가 자바를 인식, 실행할 수 있게 해주는 가상의 컴퓨터이다.JVM은 클래스 로더, 실행 엔진, 런타임 데이터 영역으로 나눌 수 있다.1. 클래스 로더클래스 로더는 .class 파일을 컴파일하기 위해 사용하는 모듈이다.런타임 시 동적으로 클래스를 로드하고 jar 파일 내 저장된 클래스들을 JVM에 로딩한다.  2. 실행 엔진실행 엔진은 클래스를 실행하는 역할이다.클래스 로더가 로딩한 바이트코드(.class)를 실제로 기계어로 변환한다. 실행 엔진은 두가지 방식이 있다.1) 인터프리터 방식인터프리터 방식은 명령어 단위로 한 줄씩 읽어서 실행한다.2) JIT 방식JIT 방식은 인터프리터 방식으로 한 줄씩 수행하다가 적절한 시..

Java 2024. 12. 3. 20:39

자바가 컴파일되는 과정

개발자가 작성한 원시코드(.java)는 CPU가 인식할 수 없으므로 기계어로 컴파일되어야 한다.먼저 java 코드는 Java Compiler를 통해 bytecode(.class)로 변환된다.그러나 bytecode는 아직 운영체제(OS)가 읽을 수 없다. 따라서 JVM을 거쳐 Binary code로 한번 더 변환해야 운영체제가 해석할 수 있는 기계어가 되어 컴파일이 가능해진다.이 과정을 더 자세히 설명하면,bytecode(.class)를 JVM의 클래스 로더에 전달하면 클래스 로더는 필요한 클래스들을 JVM 메모리에 올린다.실행 엔진이 JVM 메모리에 올라온 바이트코드들을 명령어 단위로 하나씩 가져와서 실행하면 컴파일이 되는 것이다.  * 클래스 로더의 세부 동작1. 로드 : 실행할 .class 파일을 J..

Java 2024. 12. 3. 20:35

함수형 프로그래밍이란?

함수형 프로그래밍이란 데이터를 변경하지 않고 함수 호출을 통해 원하는 결과를 얻는 프로그래밍 방식이다.기존 명령형 프로그래밍 방식에서는 간단한 코드에서도 변수가 할당되고 값이 대입된다.이와 반대로 함수형 프로그래밍에서는 대입문을 사용하지 않으며, 거의 모든 것을 순수 함수로 나누어서 상태 변화를 최소화할 수 있다.  함수형 프로그래밍에서 사용하는 순수 함수는 부수 효과를 제거한 함수를 말한다.즉, 변수의 값이 변경되거나, 예외로 인해 실행이 중단되는 경우가 없고, 1급 객체로서 관리되어 파라미터나 반환값으로 사용할 수 있다는 의미이다.순수 함수를 사용하면 스레드 안정성이 보장되고, 병렬 처리를 동기화 없이 진행할 수 있다는 장점이 있다. // 기존 for문 코드 (명령형 프로그래밍)import java...

Java 2024. 12. 3. 20:28

✍🏻Collection Framework - 주요 인터페이스, 클래스 정리

1. 컬렉션 프레임워크의 최상위 계층Iterable (인터페이스):컬렉션의 모든 요소를 순차적으로 반복(iterate)할 수 있도록 제공됨for-each 루프를 사용할 수 있는 기본 인터페이스주요 서브 인터페이스: Collection, Map은 별도로 동작2. Collection 인터페이스 (Iterable의 하위 인터페이스)데이터 그룹을 저장하고 관리하는 데 사용되는 인터페이스주요 하위 인터페이스:List: 순서가 있는 데이터 저장Set: 중복 없는 데이터 저장Queue: FIFO(First In First Out) 방식 데이터 저장2-1. List 인터페이스데이터를 순서대로 저장하며, 중복 허용주요 구현 클래스:ArrayList:배열 기반으로, 검색이 빠르고 삽입/삭제는 느림LinkedList:연결 ..

Java 2024. 11. 27. 10:23

추가 정보

인기글

최신글

페이징

이전
1
다음
TISTORY
Learn From Failure © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바