분류 전체보기

서버&백엔드/🔥 JAVA

JAVA | 뮤텍스(Mutex) vs 세마포어(Semaphore)

🔍 뮤텍스(Mutex)와 세마포어(Semaphore)의 차이점뮤텍스(Mutex)와 세마포어(Semaphore) 는 멀티스레드 환경에서 동기화(Synchronization)를 위해 사용되는 기법입니다.둘 다 공유 자원(Shared Resource)에 대한 접근을 제어하지만, 개념과 동작 방식에 차이가 있습니다.✅ 1. 뮤텍스(Mutex)란?📌 개념Mutual Exclusion(상호 배제)의 약자로, 하나의 스레드만 공유 자원에 접근 가능하도록 제한하는 방식.🔒 하나의 뮤텍스는 한 번에 하나의 스레드만 소유 가능 (Lock 기반).🔓 락을 획득한 스레드만 공유 자원을 사용할 수 있으며, 사용이 끝나면 락을 해제해야 함.📝 Java에서 뮤텍스 예제 (ReentrantLock)import java.ut..

서버&백엔드/🔥 JAVA

Java | 힙(Heap)과 스택(Stack) 메모리

🔍 Java에서 힙(Heap)과 스택(Stack) 메모리의 차이점Java에서 메모리는 크게 힙(Heap)과 스택(Stack) 으로 나뉘며, 각 메모리는 목적과 동작 방식이 다릅니다.Java 프로그램이 실행될 때 객체와 변수들이 저장되는 위치가 달라지고, 성능에도 영향을 미칠 수 있습니다.✅ 1. 힙(Heap)과 스택(Stack) 개념메모리 영역힙(Heap)스택(Stack)주요 역할객체(Object) 저장메서드 실행 및 지역 변수 저장할당 방식동적 할당 (런타임)자동 할당 (메서드 호출 시)수명GC(Garbage Collection)에 의해 해제됨메서드 실행이 끝나면 자동 해제속도상대적으로 느림상대적으로 빠름저장 대상객체(클래스 인스턴스), 배열기본형 변수, 참조 변수, 메서드 호출 정보메모리 관리JVM..

서버&백엔드/🗃️ DataBase

관계형DB(RDB) vs 비관계형 DB(NoSQL)

🔍 관계형 데이터베이스(RDB) vs 비관계형 데이터베이스(NoSQL)관계형 데이터베이스(RDB, Relational Database)와 비관계형 데이터베이스(NoSQL, Not Only SQL)는 데이터 저장 및 관리 방식에서 차이가 있습니다.어떤 데이터베이스를 선택할지는 데이터 구조, 확장성, 성능 요구 사항에 따라 결정됩니다.✅ 1. 관계형 데이터베이스(RDB: Relational Database)📌 개념:데이터를 테이블(표, Table) 형태로 저장하며, 행(Row)과 열(Column) 로 구성됨.SQL(Structured Query Language) 를 사용하여 데이터를 조작.정규화(Normalization) 를 통해 데이터 중복을 최소화하고 무결성을 유지.📌 특징:✔ 스키마(테이블 구조)..

서버&백엔드/🔥 JAVA

Java 병렬 스트림(Parallel Stream) 사용 시 예상되는 문제와 해결 방법

🚀 Java 병렬 스트림(Parallel Stream) 사용 시 예상되는 문제와 해결 방법Java에서는 Stream.parallel()을 사용하면 멀티스레드를 활용하여 데이터 처리를 병렬로 수행할 수 있습니다.하지만 병렬 스트림을 사용할 때 몇 가지 문제가 발생할 수 있으며, 적절한 해결 방법을 적용해야 합니다.✅ 1. 공유된 상태(Shared State)로 인한 동기화 문제📌 문제점병렬 스트림은 여러 스레드에서 동시에 실행되므로, 공유 변수(Shared State)를 변경할 경우 데이터 충돌 및 경쟁 조건(Race Condition)이 발생할 수 있음.❌ 잘못된 예제import java.util.stream.IntStream;public class ParallelStreamSharedState { ..

컴퓨터 과학/🛜 네트워크

REST API의 장점과 단점

🌐 REST API의 장점과 단점REST API(Representational State Transfer API) 는 HTTP 기반으로 리소스를 URI로 표현하고, HTTP 메서드(GET, POST, PUT, DELETE 등) 를 활용하여 데이터를 주고받는 아키텍처 스타일입니다.REST API는 웹과 모바일 애플리케이션에서 가장 많이 사용되지만, 몇 가지 단점도 존재합니다.✅ REST API의 장점1️⃣ 언어 및 플랫폼 독립성 (Language & Platform Independence)클라이언트와 서버가 서로 다른 기술 스택을 사용할 수 있음.예: 프론트엔드(React, Vue) + 백엔드(Spring, Node.js, Django 등)어떤 프로그래밍 언어에서도 HTTP 요청을 보낼 수 있음 → 범용..

카테고리 없음

Javascript에서 마이크로태스크 큐(Microtask Queue)란?

마이크로태스크 큐(Microtask Queue)1. 이벤트 루프와 큐JavaScript는 싱글 스레드(한번에 하나의 작업만 실행) 언어이며, 비동기 작업을 처리하기 위해 이벤트 루프(Event Loop) 를 사용해서 비동기 방식으로 여러 작업을 동시에 처리하는 것처럼 보이게 합니다. 이벤트 루프는 다음과 같은 큐를 관리합니다.매크로태스크 큐 (MacroTask Queue): 일반적인 비동기 작업이 여기에 들어갑니다.예: setTimeout, setInterval, setImmediate(Node.js), I/O 작업 등.마이크로태스크 큐 (Microtask Queue): 매크로태스크보다 더 높은 우선순위를 가지며, 실행이 끝나면 바로 다음 이벤트 루프에서 처리됩니다.예: Promise.then(), Mu..

이재원
'분류 전체보기' 카테고리의 글 목록 (3 Page)