Java
[Java] 자바에서의 동기화는 왜 어렵고 까다로울까?
"멀티쓰레드 개발은 언어 무관하게 무지 어렵다. 세계 최고 개발자의 할아버지가 와도 어렵다." 언어를 배운다는것은 정말 힘든일이라고 생각되는게, 지금 쓰고있는 "자바에서의 동기화는 왜 어렵고 까다로울까?" 를 읽어보면 아시겠지만, 해당 언어에 대한 경험이 많지 않다면 실수하기 쉬운 문제가 도처에 도사리고 있습니다. 그 이슈를 실전에서 대처하려면 ,실수에 의한 경험도 필요하고, 가끔은 소스의 내부를 철저히 조사해봐야하는 수고를 해야하는데, 언어를 배우는것도 힘든데 저런부분까지 신경쓰려면 고난의 행군은 각오해야할거 같습니다. 1. Collections.synchronizedList 이야기 보통 우리는 Vector 대신해서 ArrayList 를 사용하라는 말을 듣곤합니다. Vector 는 동기화되어진 함수로..
[Java] 람다(Lambda) 함수 내에서의 지역 변수 사용 규약
나의 게시글들은 내가 겪었던 문제이거나 호기심에 파고들다 알게 된 내용들이다. 이번 포스팅은 호기심에 파고들다 알게 된 내용이며 나 뿐만이 아니라 모든 자바 개발자도 알면 좋을 것 같다. 먼저, 람다의 정확한 정의를 알고가보자. 람다란? 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화 한것이다. 람다 표현식에는 이름은 없지만, 파라미터 리스트, 바디, 반환 형식, 발생할 수 있는 예외 리스트는 가질 수 있다. 람다의 특징 익명 보통의 메서드와 달리 이름이 없으므로 익명이라 표현한다. 구현해야 할 코드에 대한 걱정거리가 줄어든다. 함수 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. 하지만 메서드처럼 파라미터 리스트, 바디, 반환 형식, 가능한 예외 리스트를 포함한다. 전달 ..