Back-end (108) 썸네일형 리스트형 [Java] CompletableFuture로 비동기 적용하기 ✅ 비동기 처리비동기 처리는 특정 작업이 다른 작업과 독립적으로 동작하도록 하여 다음 단계의 작업이 이전 작업의 완료를 기다리지 않고 동시에 실행할 수 있도록 하거나, 특정 작업의 완료를 기다리는 동안 다른 작업을 처리할 수 있는 장점이 있습니다. 흔히 사용하는 방식은 동기적 처리로 한 작업이 완료되기를 기다렸다가 다음 작업을 순차적으로 실행하도록 구현하는 방식이고, 함께 알아볼 비동기 처리는 여러 작업이 동시에 실행될 수 있고, 다른 작업의 완료를 기다리지 않고 실행하여 시스템의 자원을 최대한 활용할 수 있는 방식입니다. 비동기 처리를 통해 성능 향상, 시스템 활용도 증가, 동시성 관리, 자원 활용 등의 장점을 누릴 수 있지만,복잡성 증가, 디버깅의 어려움, 가독성 감소와 같은 단점을 함께 고려해야 할.. [SpringBoot] 제어의 역전(IOC), 프레임워크 vs 라이브러리 ✅ 제어의 역전(IOC) 전통적인-동작-방식class TraditionalService { private Dependency dependency; public TraditionalService() { this.dependency = new Dependency(); } public void doSomething() { dependency.performAction(); }}class Dependency { public void performAction() { // 비즈니스 로직 }} 기존의 전통적인 방식에서는, 객체를 직접 생성하고 관리하였습니다. 웹 서버에서도 마찬가지로, 클라이언트 구현 객체가 스스로 필요한 서버 .. [Java] Static 개념 / 메모리 / 장단점 ✅ Static이란Static은 '고정된'이란 뜻이며 정적이라고도 부른다. 클래스, 변수, 메서드에 static을 붙이면 말 뜻대로 고정된 클래스, 변수, 메서드가 된다. ( static 멤버 = 정적 멤버 ) 정적 클래스는 생성자를 포함할 수 없고, 모든 멤버는 static으로 선언해야 한다. 정적 변수와 정적 메소드는 어떤 객체에 소속되지 않고, 클래스에 고정되어 있다. 객체에 소속되지 않으므로 객체 생성 없이 사용할 수 있다.또한, 정적 메서드 내에서는 인스턴스 변수를 사용할 수 없다. Static이 붙은 변수나 메서드는 객체를 생성하지 않고도 사용할 수 있다 ✅ 예제 코드public class StaticExample { // 정적 변수 (모든 인스턴스가 공유) static int .. [JAVA] 컴파일 과정 ✅ 들어가기전자바는 OS에 독립적인 특징을 가지고 있다. 그게 가능한 이유는 JVM(Java Vitual Machine) 덕분이다. 그렇다면 JVM(Java Vitual Machine)의 어떠한 기능 때문에, OS에 독립적으로 실행시킬 수 있는지 자바 컴파일 과정을 통해 알아보도록 하자 ✅ 자바 컴파일 순서 소스 코드 작성 (.java)자바 컴파일러(javac.exe)가 자바 소스 코드를 바이트 코드(.class)로 컴파일바이트 코드는 아직 컴퓨터가 읽을 수 없는 JVM이 읽을 수 있는 코드컴파일된 바이트 코드를 JVM의 클래스 로더(Class Loader)에게 전달클래스 로더는 동적 로딩을 통해 필요한 클래스들을 로딩 및 링크하여 런타임 데이터 영역(Runtime Data Area의 Method .. [JAVA] 추상클래스, 인터페이스 특징 및 차이점 ✅ 추상 클래스, 인터페이스 공통/차이 정리 표 ✅ Abstract, Interface 의 공통점 추상 메서드라는 내용에 대한 구현이 없는 선언부만 가지고 있는 메서드를 가지고있음독립적으로 객체를 생성할 수 없음여러 곳에서 사용될 공통된 기능에 대한 구현을 강제하기 위한 기능추상 메서드: 구현부 없이 선언부만 가지고 있는 멤버 메서드 abstract class Animal { // 숨쉬기(일반 메서드(선언부 + 구현부 존재) void breath() { System.out.println("숨쉬기"); } // 울음소리(추상 메서드(선언부만 존재) abstract void cry();}interface Flyable { // 날기(추상 메서드(선언부만 존재) void fly();} 독립적으로 객체.. [Java] final 키워드 심화 정리 이전글에 final 기본을 포스팅이 있었다.그런데 너무 짧고 간단하게만 정리한거같아 오늘은 final 키워드에 대해서 더 자세히 공부할려고한다.!✅ finalfinal 키워드는 변수(variable), 메서드(method), 또는 클래스(class)에 사용될 수 있습니다. 이 final 키워드는 어떤 곳에 사용되냐에 따라 다른 의미를 가집니다. 하지만 final 키워드를 붙이면 무언가를 제한한다는 의미를 가지는 것은 공통적이 성격입니다. ✅ 변수에 사용했을 경우변수에 final을 붙여보겠습니다. 변수에 final을 붙이면 이 변수는 수정할 수 없다는 의미를 가집니다. 수정될 수 없기 때문에 초기화 값은 필수적입니다. 만약에 객체안의 변수라면 생성자, static 블럭을 통한 초기화까지는 허용합니다. .. [Java] 가비지 컬렉터(GC) 이해하기 ✅ GC(가비지 콜렉터)란?자바에서는 메모리를 GC라는 알고리즘을 통하여 관리(automatic memory management)하기 때문에, 개발자가 메모리를 처리하기 위한 로직을 만들 필요가 없고, 절대로 만들어서는 안됩니다. Garbage Collection. 자바에서 쓰레기는 객체입니다. 하나의 객체는 메모리를 점유하고, 필요하지 않으면 메모리에서 해제되어야 합니다. 메모리 점유는 다음과 같이 쉽게 할 수 있습니다. 이러한 코드에서 a라는 객체가 만들어져 메모리의 한부분을 점유하게 되고, 특정 메소드 호출한 후 수행이 완료되어 해당 객체가 더이상 필요없는 객체, 쓰레기가 됩니다. 이 쓰레기 객체를 효과적으로 처리하는 작업을 GC라고 합니다. ✅ GC(가비지 콜렉터)의 원리 GC 작업을 하는 가비.. [ SpringBoot ] 비동기 @Async 이해와 Thread Pool ✅ 비동기 프로그래밍이 필요한 이유비동기란 현재 처리중인 쓰레드에서 작업하던 Task를 다른 sub 쓰레드에게 Task를 위임하는 행위이다.비동기를 사용하면 클라이언트는 서버에게 요청을 하고 응답을 기다릴 필요가 없다. 그로 인해 더많은 Task를 처리할 수 있고, 실시간 성 응답이 필요없는 경우 유용하게 사용할 수 있다. 비동기가 필요한 경우 예시회원 가입 후 이메일 전송: 사용자는 회원가입을 완료하면, 이메일을 비동기적으로 처리하여 사용자는 회원가입만 완료되면 다른 작업을 처리할 수 있다.알림 기능: 특정 이벤트가 발생한 후 사용자에게 알림을 비동기적으로 보내어, 프로세스가 멈추지 않고 계속 실행하도록 한다. ✅ Thread Pool이란? Thread Pool이란 미리 일정한 수의 Thread.. 이전 1 2 3 4 ··· 14 다음