profile
배움을 추구하는 개발자
태그 목록
전체보기 (27)Java(9)멀티스레드(7)concurrency(5)동시성(5)synchronized(3)성능최적화(3)JavaDevelopment(3)socket_programming(2)Backend(2)TCP/IP(2)JavaThread(2)multithreading(2)programming(2)networking(2)자바(2)스레드안전성(2)코딩(2)synchronization(2)백엔드개발(2)JavaNetworking(2)lock(2)스레드(2)Thread(2)server(1)http(1)try_with_resources(1)동기화(1)th:field(1)REST(1)future(1)errorhandling(1)BufferedInputStream(1)callable(1)ThreadLifecycle(1)자바개발(1)웹개발(1)EUC-KR(1)문자디코딩(1)Read(1)client(1)스레드관리(1)메모리가시성(1)Interrupt(1)JavaProgramming(1)Springboot(1)HTTP메서드(1)autocloseable(1)Blocking(1)웹프로그래밍(1)network(1)타임리프(1)tcp(1)캐시메모리(1)socket(1)threading(1)BankingSystem(1)개발자팁(1)인터럽트(1)ProducerConsumer(1)wait_notify(1)파일처리(1)Java프로그래밍(1)개발자블로그(1)json(1)비동기처리(1)byte배열(1)ThreadSynchronization(1)소프트웨어아키텍처(1)웹아키텍처(1)프로그래밍(1)자바io(1)입력스트림(1)this(1)reentrantlock(1)utf8(1)datastream(1)runnable(1)api설계(1)th:object(1)exceptionhandling(1)컴퓨터저장원리(1)자바스터디(1)개발자(1)cpu(1)restapi(1)LockSupport(1)BufferedOutputStream(1)멀티스레드프로그래밍(1)BestPractices(1)form(1)기술블로그(1)ResourceManagement(1)자바동시성(1)프로듀서컨슈머(1)문자인코딩(1)네트워크효율성(1)volatile(1)시스템콜(1)프로그래밍기초(1)FastAPI(1)아스키(1)프론트엔드백엔드(1)Coding(1)스프링(1)JAVA기초(1)임계영역(1)ServerSocket(1)ThreadPoolExecutor(1)ProgrammingTips(1)버퍼(1)api디자인(1)WAITING(1)백엔드(1)상태코드(1)텍스트데이터(1)TIMED_WAITING(1)바이트변환(1)객체지향프로그래밍(1)ThreadState(1)

day2 - 코딩테스트

dfs, bfs 개념 공부진행함.

2025년 11월 7일
·
0개의 댓글
·

DAY1 - 코테준비

Day1 - 코딩테스트 풀이.String 에서 인덱스로 접근 하는 방법 => 문자열.chartAt(인덱스)Character 형식으로 변환함.문자열 비교 할때, 대소문자 상관 없다면,문자열이면 => 문자열.toUpperCase 문자이면 => Character.toUppe

2025년 11월 6일
·
0개의 댓글
·
post-thumbnail

🌐 REST API 완전 정리 - 웹개발자가 꼭 알아야 할 핵심 개념

REST API는 HTTP 프로토콜 위에서 동작하는 웹 기반 데이터 통신 아키텍처 스타일입니다.리소스(자원)를 URL로 식별하고, \*\*HTTP 메서드(GET, POST 등)\*\*를 통해 이를 조작합니다.REST = REpresentational State Tran

2025년 7월 30일
·
0개의 댓글
·

JPA의 Lazy Loading과 LazyInitializationException 이해하기

JPA에서 FetchType.LAZY로 설정된 연관 필드에 대해, 영속성 컨텍스트(Session)가 닫힌 이후에 접근할 때 발생하는 예외야.brandService.getBrandById를 호출하는 시점이 service단 @Transactional(readOnly = t

2025년 4월 16일
·
0개의 댓글
·
post-thumbnail

자바에서 안전한 자원 정리와 예외 처리

자바에서 파일, 네트워크 소켓, 데이터베이스 연결 같은 자원은 사용 후 반드시 정리(close) 해야 한다. 그렇지 않으면 메모리 누수(memory leak) 또는 리소스 잠금(locking issue) 같은 문제가 발생할 수 있다.자원을 정리하는 일반적인 방법은 tr

2025년 3월 13일
·
0개의 댓글
·
post-thumbnail

TCP/IP 소켓 통신 정리

네트워크 통신에서 서버와 통신하려면 IP 주소가 필요하다. 도메인(호스트 이름)만으로는 통신할 수 없으며, 도메인을 실제 IP 주소로 변환해야 한다.자바에서는 InetAddress 클래스를 사용하여 도메인 이름을 IP 주소로 변환할 수 있다.소켓 통신에서 데이터를 주고

2025년 3월 13일
·
0개의 댓글
·
post-thumbnail

입력 스트림과 버퍼: 자바 I/O 성능 최적화

자바에서 파일이나 네트워크와 같은 외부 장치로 데이터를 읽고 쓰는 과정은 스트림(stream) 을 통해 일관되게 처리할 수 있습니다. 이 글에서는 입력 스트림의 동작 원리와 버퍼를 활용하여 성능을 최적화하는 방법에 대해 살펴보겠습니다.자바에서 read() 메소드를 사용

2025년 3월 10일
·
0개의 댓글
·
post-thumbnail

한글이 깨지는 가장 이유...

컴퓨터가 데이터를 저장하는 기본 원리는 이진수(0과 1) 입니다. 컴퓨터 메모리는 수많은 전구처럼 작동하는 트랜지스터로 구성되어 있으며, 이 트랜지스터는 전류가 흐르거나 흐르지 않는 두 가지 상태를 표현합니다. 이와 같이, 모든 데이터는 결국 0과 1의 조합으로 저장됩

2025년 3월 7일
·
0개의 댓글
·
post-thumbnail

스레드 생성 비용 및 Future 활용에 관한 고찰

최근 애플리케이션의 성능 최적화와 동시에 동시성 처리가 중요한 이슈로 떠오르고 있습니다.이 글에서는 스레드 생성 비용, Runnable 인터페이스의 한계, 그리고 ThreadPoolExecutor와 Future를 활용해어떻게 효율적인 비동기 작업 처리를 할 수 있는지에

2025년 3월 6일
·
0개의 댓글
·
post-thumbnail

생산자-소비자 문제 (Producer-Consumer Problem)

멀티스레드 프로그래밍을 하다 보면 생산자-소비자 문제(Producer-Consumer Problem)를 자주 만나게 됩니다. 이 문제는 생산자가 데이터를 생성하고, 소비자가 그 데이터를 소비하는 과정에서 발생하는 동시성 문제입니다.생산자(Producer)와 소비자(Co

2025년 2월 21일
·
0개의 댓글
·
post-thumbnail

자바의 Synchronized와 Lock의 차이점 및 단점

자바에서 동기화를 위해 synchronized 키워드를 많이 사용하지만, 몇 가지 단점이 있습니다. 이를 해결하기 위해 Lock 인터페이스와 ReentrantLock이 등장했습니다. 이번 글에서는 synchronized의 단점과 Lock의 동작 방식에 대해 쉽게 설명하

2025년 2월 21일
·
0개의 댓글
·
post-thumbnail

Java 멀티스레드 동시성 문제와 해결 방법

멀티스레드를 사용할 때 가장 주의해야 할 점은 여러 스레드가 공유 자원에 동시에 접근하는 것으로 인해 발생하는 동시성 문제입니다.대표적인 공유 자원은 인스턴스 필드(멤버 변수)입니다.만약 여러 스레드가 동시에 공유 자원을 읽고 수정한다면, 데이터 불일치나 예상치 못한

2025년 2월 17일
·
0개의 댓글
·
post-thumbnail

메모리 가시성 (Memory Visibility)

CPU는 매우 빠르게 연산을 수행하지만, 메모리 속도는 상대적으로 느립니다.이 문제를 해결하기 위해 캐시 메모리(Cache Memory)가 사용됩니다.메인 메모리(RAM): 용량이 크지만 CPU 입장에서 거리가 멀고 속도가 느림캐시 메모리(Cache Memory): C

2025년 2월 17일
·
0개의 댓글
·
post-thumbnail

Java에서 스레드 인터럽트 (Thread Interrupt) 제대로 이해하기

Java에서 interrupt() 메서드를 사용하면 Waiting, Timed_Waiting 상태의 스레드를 직접 깨워 Runnable 상태로 만들 수 있다. 하지만 interrupt()를 호출한다고 해서 즉시 InterruptedException이 발생하는 것은 아니

2025년 2월 12일
·
0개의 댓글
·

this란 무엇인가?

프로그래밍을 하다 보면 this라는 키워드를 자주 보게 됩니다. 특히 객체지향 언어(Java, JavaScript 등)에서 this는 매우 중요한 역할을 합니다. 그렇다면 this란 정확히 무엇일까요?간단히 말해서, this는 호출된 인스턴스 메서드가 소속된 객체를 가

2025년 2월 12일
·
0개의 댓글
·
post-thumbnail

Java 스레드의 생명 주기와 상태

스레드는 생성(Create)되고, 실행(Run)되며, 종료(Terminate)되는 생명 주기를 갖습니다. 자바에서 스레드는 다양한 상태를 거치며 실행되며, 이 과정에서 여러 상태 전이를 경험합니다.자바에서 스레드는 다음과 같은 주요 상태를 가집니다.스레드가 생성되었지만

2025년 2월 12일
·
0개의 댓글
·

Java에서 Thread 상속 vs Runnable 구현 - 어떤 것이 더 좋을까?

Java에서 멀티스레드를 사용할 때, Thread 클래스를 직접 상속받는 방법과 Runnable 인터페이스를 구현하는 방법이 있다. 이 두 가지 방식은 각각 장점과 단점이 있는데, 일반적으로 Runnable을 구현하는 방식이 더 추천된다. 왜 그런지 한 번 알아보자!T

2025년 2월 12일
·
0개의 댓글
·

Java 멀티스레드: `Thread` 클래스의 `start()` 메서드 이해하기

Java에서 멀티스레드를 사용하려면 Thread 클래스를 상속받아 새로운 스레드를 생성할 수 있습니다. 이때 중요한 점은 start() 메서드를 호출하면 새로운 스레드가 실행되며, run() 메서드를 직접 호출하지 않는다는 점입니다. 이번 글에서는 Thread 클래스

2025년 2월 12일
·
0개의 댓글
·
post-thumbnail

자바 메모리 구조 완벽 정리: 메서드 영역 vs 스택 영역 vs 힙 영역

자바(Java) 프로그램이 실행될 때 JVM(Java Virtual Machine)은 프로그램이 사용할 메모리를 여러 영역으로 나누어 관리합니다.이 중에서도 메서드 영역(Method Area), 스택 영역(Stack), 힙 영역(Heap)은 가장 중요한 메모리 공간이며

2025년 2월 12일
·
0개의 댓글
·
post-thumbnail

멀티프로세싱과 멀티태스킹 쉽게 이해하기

컴퓨터에서 여러 작업을 동시에 처리할 수 있는 기술은 다양합니다. 그중에서도 멀티프로세싱(Multiprocessing)과 멀티태스킹(Multitasking)은 자주 혼동되는 개념입니다. 이번 글에서는 두 개념을 쉽게 풀어서 설명하고, 프로세스와 스레드의 차이도 함께 알

2025년 2월 12일
·
0개의 댓글
·