Java 동시성 컬렉션 (1) – Collections.synchronized와 한계
Java 컬렉션의 근본적인 특징 java.util 패키지의 컬렉션 프레임워크는 기본적으로 Thread-safe하지 않다. 그렇다면 왜 처음부터 모든 컬렉션에 synchronized를 걸어두지 않았을까? 그 이유는 동기화는 성능 비용을 수반하기 때문이다 Vector의 교훈 Java는 과거 이런 실수를 했다 결과 교훈: 동기화의 필요성을 정확히 판단하고 필요한…
Java 컬렉션의 근본적인 특징 java.util 패키지의 컬렉션 프레임워크는 기본적으로 Thread-safe하지 않다. 그렇다면 왜 처음부터 모든 컬렉션에 synchronized를 걸어두지 않았을까? 그 이유는 동기화는 성능 비용을 수반하기 때문이다 Vector의 교훈 Java는 과거 이런 실수를 했다 결과 교훈: 동기화의 필요성을 정확히 판단하고 필요한…
사소해 보이는 필드명 하나가 어떻게 수 십분의 디버깅을 요구했는지, 그리고 그 과정에서 배운 것들 문제 상황 프로젝트에서 데이터 매핑 오류를 경험했다. 분명 JSON으로 값을 보냈는데, Controller에서 @Valid 검증에 걸려 400 에러가 발생했다 증상: studentName은 정상 매핑되는데, sId만 계속 null이었다 삽질…
java.util 패키지의 컬렉션 프레임워크(ArrayList, HashMap, LinkedList 등)는 멀티스레드 환경에서 안전할까? 결론부터 말하자면, 대부분의 컬렉션은 Thread-Safe하지 않는다 Java 컬렉션 프레임워크는 Thread-Safe한가? Thread-Safe의 정의 thread-safe란 여러 스레드가 동시에 접근해도 문제없이 동작하는 것을 의미한다 위 코드를 보면 add() 메서드가 단순히 컬렉션에 데이터 하나를…
문제 정의 생산자 – 소비자 문제는 한정된 크기의 버퍼를 통해 데이터를 주고 받는 멀티스레드 환경에서 발생하는 동시성 문제이다 핵심 문제 해결 방안의 진화 단순 synchronized (문제 발생) sleep()으로 대기 (더 심각한 문제) wait/nofity 사용 (비효율 존재) Lock + Condition으로 개선…
코틀린을 배우기 위해서 인프런에서 강의를 구매하고 코틀린과 친해지고 기본기를 다지기 위해서 공부하는 중이다. 글 내용은 Kotlin의 Scope Function이고 최태현님의 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) 강의에 소금을 조금 친 내용이다 코드를 간결하게 해주는 Scope Function 코틀린의 Scope Function은 일시적인…
코틀린을 배우기 위해서 인프런에서 강의를 구매하고 코틀린과 친해지고 기본기를 다지기 위해서 공부하는 중이다. 글 내용은 Kotlin의 이모저모(사물의 이런 면 저런 면)이고 최태현님의 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) 강의에 소금을 조금 친 내용이다 Type Alias 함수 타입 축약 기존…
코틀린을 배우기 위해서 인프런에서 강의를 구매하고 코틀린과 친해지고 기본기를 다지기 위해서 공부하는 중이다. 글 내용은 배열과 컬렉션 중 Kotlin, Java와 함께 Collection을 다루는 방법이고 최태현님의 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) 강의에 소금을 조금 친 내용이다 Kotlin과 Java는 상호…
코틀린을 배우기 위해서 인프런에서 강의를 구매하고 코틀린과 친해지고 기본기를 다지기 위해서 공부하는 중이다. 글 내용은 배열과 컬렉션을 다루는 방법이고 최태현님의 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) 강의에 소금을 조금 친 내용이다 배열(Array) Kotlin에서 배열은 Array 클래스로 표현되며, 고정된 요소를…
코틀린을 배우기 위해서 인프런에서 강의를 구매하고 코틀린과 친해지고 기본기를 다지기 위해서 공부하는 중이다. 글 내용은 다양한 중첩 클래스를 다루는 방법이고 최태현님의 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) 강의에 소금을 조금 친 내용이다 Kotlin은 간결하고 표현력 있는 코드를 작성할 수…
코틀린을 배우기 위해서 인프런에서 강의를 구매하고 코틀린과 친해지고 기본기를 다지기 위해서 공부하는 중이다. 글 내용은 중첩 클래스를 다루는 방법이고 최태현님의 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) 강의에 소금을 조금 친 내용이다 클래스 안에 또 다른 클래스를 정의하는 것을 중첩…