자바의 CompletableFuture 란?
들어가면서 Java 5에서 도입된 Future 인터페이스는 비동기 계산의 결과를 수월하게 처리할 수 있게 되었지만, 몇가지 한계점이 있었다 Future의 get() 메서드를 호출할 때, 작업이 완료될때까지 블록킹된다 여러 Future를 조합하거나 예외를 처리하는것이 복잡하다 비동기 작업의 실패를 알리는 콜백 메커니즘이 부족하다 이러...
들어가면서 Java 5에서 도입된 Future 인터페이스는 비동기 계산의 결과를 수월하게 처리할 수 있게 되었지만, 몇가지 한계점이 있었다 Future의 get() 메서드를 호출할 때, 작업이 완료될때까지 블록킹된다 여러 Future를 조합하거나 예외를 처리하는것이 복잡하다 비동기 작업의 실패를 알리는 콜백 메커니즘이 부족하다 이러...
들어가면서 자바에는 두 가지 종류의 주석이 있다. 주석(Comments)과 어노테이션(Annotations) 주석은 코드의 실행에 전혀 영향을 미치지 않으면서 개발자들이 의도와 로직을 명확하게 전달할 수 있게 도와준다. 그러나 자바의 어노테이션은 단순한 주석을 넘어서는 일을 한다. 어노테이션은 코드에 메타데이터를 추가하여, 컴파일러, 개발 도구, ...
자바의 리플렉션(Reflection)이란? 실행 중인 자바 애플리케이션 내부를 검사하고, 수정할 수 있는 강력한 기능 강력하다 = 큰 책임감이 따른다 클래스, 인터페이스, 메서드, 필드, 생성자 및 모듈과 같은 프로그램의 다양한 측면을 런타임 중에 검사하고 수정할 수 있는 기능을 제공한다 리플렉션을 사용...
컴파일 언어 소스 코드를 기계어로 변환하는 과정을 거치는 프로그래밍 언어 기계어 코드는 컴퓨터가 직접 실행할 수 있다 강력한 최적화와 높은 실행 효율성을 가지며, 시스템 프로그래밍 및 성능이 중요한 어플리케이션에 주로 사용된다 장점 성능 : 컴파일 언어는 실행 전에 전체 코드를 최적화하여 빠른 실행 속도를 제공한다...
객제지향 프로그래밍의 탄생 배경 객체지향 이전에는 프로그래밍을 개발 시 다음과 같은 문제점들이 있었다 데이터와 함수의 분리: 데이터와 함수가 각각 분리되어 있었기 때문에 체계적으로 조작하기 어려웠다 사람의 사고방식과 다른 코드: 사람이 이해하는 방식으로 코드를 작성하는 것이 아닌, 컴퓨터가 돌아가는 방식대로 코드를 작성하다보니 코드를 직관...
클래스(Class)란? 클래스는 객체를 생성하기 위한 설계도이다 자바에서 클래스는 객체의 상태를 나타내는 필드(변수)와 객체의 행동을 나타내는 메서드(함수)로 구성된다 클래스는 코드 영역에 위치하며, 이를 통해 다양한 객체를 생성하여 사용할 수 있다 객체(Object)란? 객체(Object)는 클래스의 설계도를 바탕으로 생...
집합의 기수(Cardinality of Sets) [ A = (# elements)] 집합의 기수(Cardinality of Sets)란 해당 집합을 구성하는 원소의 수를 말한다. 이는 집합의 크기를 나타내는 중요한 척도로 사용된다. 예시 \[A = \{ 0,1 \}...
[A = {{1,2,3,4,5}}] [B = {{a,b,c,d}}] 대수학을 이해하는 데 있어 기본적이고 중요한 개념 중 하나는 ‘집합(Set)’이다. 이 글에서는 집합이 무엇인지와 집합을 표현하는 다양한 방법에 대해 알아보자 집합이란? 명확히 정의되고 구별 가능한 객체들의 모임 이 객체들을 ‘원소(Elements)’라...
대수학은 수학의 한 분야로, 수와 수의 조합으로 이루어진 식들을 연구한다. 대수학에서 중요한 역할을 하는 주요 대수적 성질들에 대해서 알아보자 결합 법칙 (Associative Property) 연산을 수행하는 순서가 결과에 영향을 주지 않는 성질 세 개 이상의 수를 더하거나 곱할 때, 괄호를 어떻게 설정하든 ...
Python venv 란? Python은 기본적으로 라이브러리와 패키지들이 시스템의 전역 환경에 설치된다. 각 프로젝트별로 다른 버전의 라이브러리가 필요한 경우 충돌 문제가 발생했다. venv 는 ‘가상 환경’을 만들어 Python 프로젝트에 대해 독립적인 개발 환경을 제공한다. 서로...