본문 바로가기
반응형

코딩29

[Java] Thread를 자주쓰면 안되는 이유 Thread를 사용하는 것이 프로그램의 성능을 향상시키고 다양한 작업을 동시에 수행할 수 있는 강력한 도구입니다. 그러나 Thread를 과도하게 사용하면 몇 가지 문제와 위험성이 발생할 수 있습니다. 따라서 "더 많이 사용하면 더 좋다"는 절대적인 규칙은 없으며, Thread를 적절하게 사용해야 합니다. 아래는 Thread 사용에 대한 몇 가지 고려 사항입니다. 💡시스템 리소스 소모 각 Thread는 추가 메모리 및 CPU 리소스를 사용하므로, Thread를 과도하게 생성하면 시스템 리소스를 소모하게 됩니다. 이는 다른 프로세스나 서비스에 영향을 미칠 수 있습니다. 💡 동시성 문제 Thread를 다룰 때, 동시성 문제를 처리하는 것이 중요합니다. 공유 데이터에 대한 접근 및 변경은 동기화와 관련된 문제를.. 2023. 10. 21.
[Java] Thread를 써야하는 이유 Thread는 병렬성(Concurrency)을 구현하기 위한 중요한 개념이며, 다중 작업 환경에서 프로그램의 성능을 향상시키고 다양한 작업을 동시에 수행할 수 있도록 돕는데 사용됩니다. 아래는 Thread를 사용해야 하는 이유와 그 이점을 설명합니다. 💡 성능 향상 Thread를 사용하면 여러 작업을 동시에 실행할 수 있으므로, 다중 프로세서 시스템에서 CPU 자원을 효율적으로 활용할 수 있습니다. 이는 프로그램의 전체 실행 시간을 줄이고 성능을 향상시키는 데 도움이 됩니다. 💡 응답성 향상 UI 스레드와 같이 사용자와 상호작용하는 스레드를 따로 만들면, 프로그램이 작업을 수행하면서도 계속해서 사용자 입력에 응답할 수 있어 사용자 경험을 향상시킵니다 💡 동시성 제어 여러 작업을 동시에 실행하거나, 여러 .. 2023. 10. 20.
[Java] 제네릭이란 무엇인가, 왜 사용할까 제네릭(Generic)은 프로그래밍 언어에서 데이터 타입을 일반화하여 코드의 재사용성과 안정성을 높이기 위한 프로그래밍 기법입니다. 제네릭을 사용하면 컬렉션, 메소드, 클래스 등에서 사용하는 데이터 타입을 런타임이 아닌 컴파일 타임에 안전하게 지정할 수 있습니다. 이는 컴파일러가 코드 유효성을 검사하고 타입 불일치에 의한 에러를 사전에 방지할 수 있도록 해줍니다. List list = new ArrayList(); HashSet hs = new HashSet(); 등과 같이 안에 타입이 명시되어있는 형태를 제네릭이라고 한다. 제네릭을 사용하는 이유 💡타입 안정성(Type Safety) 제네릭을 사용하면 컴파일러가 타입 체크를 수행할 수 있어 런타임 시점의 ClassCastException과 같은 타입 관.. 2023. 10. 17.
[Java] Java의 GC(Garbage Collector)는 어떻게 동작할까 Java의 가비지 컬렉터(Garbage Collector, 이하 GC)는 메모리 관리를 자동화하여 개발자가 메모리 누수와 메모리 관리에 대한 걱정을 줄이는 역할을 합니다. GC는 더 이상 사용되지 않는 객체를 식별하고 해제하여 메모리를 회수합니다. Java의 GC는 다양한 알고리즘과 방식으로 동작할 수 있으며, 주요 구성 요소 및 작동 방식에 대해 설명하겠습니다. 💡객체 생성 Java 프로그램에서 객체가 생성되면 메모리 힙(heap) 영역에 저장됩니다. 이 힙 영역은 Java 프로그램의 모든 객체 인스턴스를 저장하는 곳입니다. 💡 객체 참조 객체는 변수나 다른 객체에 의해 참조됩니다. 객체가 더 이상 참조되지 않을 때 GC가 필요해집니다. 💡 Reachability(도달 가능성) GC는 도달 가능한(re.. 2023. 10. 16.
반응형