본문 바로가기
728x90

[ JAVA ]/JAVA34

[ Java ] Runnable 인터페이스 개념 및 Thread 단일 연산 Intro 안녕하세요. 환이s입니다👋이 전 포스팅에서 동시성을 위한 3가지 키워드에 대해 알아봤는데요.실무에서 여러 프로젝트를 경험하면서 기초 부분을 더욱더 탄탄하게 만들어야겠다는 생각을 갖고복습하는 일상을 보내고 있습니다🙂  저는 자바 병렬 프로그래밍이라는 책을 참고해서 해당 포스팅을 작성하려고 합니다.오늘은 Thread 단일 연산부터 등장했던 Runnable 인터페이스에 대해 알아보겠습니다.Runnable 이란? Runnable 인터페이스란, Java에서 간단한 Thread를 생성하기 위한 인터페이스로서,메서드인 run()을 오버라이딩하여 사용할 수 있습니다. 이 인터페이스를 구현하여 만든 Thread는 Thread 클래스를 상속하지 않아도 되며,전통적인 방법보다 더 쉽게 Thread를 생성할 수.. 2024. 9. 23.
[ Java ] 동시성 제어를 위한 세 가지 키워드 / CAS 알고리즘 개념 알아가기 Intro   안녕하세요. 환이s입니다👋 오늘은 프로젝트에서 동시성 제어를 동시성 제어를 위한 세 가지 키워드에 대해 포스팅을 진행해보려고 하는데요 자바에서 동시성 제어를 하는 방법이나 Atomic 변수, CAS 알고리즘에 대한 글은 찾아보면 정말 많은 블로그를 참고할 수 있는데 대체적으로 알아보시는 분들이 신입분들이 아닌, 어느 정도 개발을 하셨던 분들이 찾아보고 계실 거라고 생각이 드네요 그래서 오늘은 Atomic 변수에 대해 알아보기 전에 동시성 제어를 위해 제공하는 세 가지 방법을 먼저 소개하고 왜 사용하는지?  CAS 알고리즘에 대한 개념 등 포스팅을 작성해 보겠습니다. 🙂 동시성 제어를 위한 세 가지 키워드 자바로 코드를 작성하다 보면 동시성 문제에 대해 한 번쯤은 생각을 해보게 되는데요하.. 2024. 8. 21.
[ Java ] Optional 개념 및 올바른 사용법 알아가기 Intro 개발을 하다 보면 가장 많이 발생하는 에러 중 하나인 NullPointException을 자주 만나게 되는데,해당 에러를 피하기 위해 null을 체크하는 로직을 추가합니다. //mkey = Id 값 입니다. 해당하는 데이터가 없으면 null 입니다.MemberVO findUser = memberRepository.findById(mKey);//만약 findUser 결과 값이 null이면 NullPointException이 발생합니다.findUser.getUserNm();//--------------------------------------------------------------------------------if(findUser != null){//NullPointException을 방지.. 2024. 6. 10.
[ Java ] java.util.stream.IntStream 주요 메서드 정리 오늘은 토이 프로젝트 생성하면서 테이블 생성 테스트 코드 작성할 때활용했던 java.util.stream.IntStream에 대해 포스팅해 보겠습니다😄  주요 메서드 정리 및 개념에 대해 다루고 실전 예제 코드를 통해서 각 메서드에 장단점을 알아보는 시간을 가지겠습니다 ❗ IntStream - 소개 IntStream은 Java 8에서 도입된 Stream API의 일부분으로,'int' 기본형에 특화된 스트림입니다. Stream API는 Java에서 함수형 프로그래밍 스타일을 사용하여 데이터 처리를 할 수 있도록 도와주고IntStream은 'Stream' 와는 다르게 오토박싱/언박싱의 오버헤드가 없기 때문에 성능적으로 유리합니다. IntStream은 여러 가지 방법으로 다음과 같이 생성해서 사용할 수 있습.. 2024. 5. 23.
[ JAVA ] Iterator 개념 및 예제 Restful API 기반 프로젝트를 진행하던 중 데이터 찾는 과정에서 Iterator를 사용해서 기능 구현을 했는데, 프레임워크인 건 알지만 정확한 개념에 대해 알아보기 위해 포스팅을 해보겠습니다. Iterator 개념 Iterator 란 컬렉션(Collection)과 같은 데이터 구조에서 요소를 순회하고 선택적으로 해당 요소를 가져오는 데 사용되는 인터페이스입니다. Iterator 패턴은 소프트웨어 디자인 패턴 중 하나로, 데이터 구조의 내부 구현에 독립적으로 순회 기능을 제공하여 코드의 일관성과 유연성을 높입니다. Iterator에 대해서 알아보신다면 먼저 컬렉션 프레임워크에 대해 알고 있어야 하는데, 컬렉션 프레임워크는 데이터를 저장하는 클래스들을 표준화한 설계입니다. 데이터를 저장하는 구조에 따.. 2023. 7. 21.
[ Java ] Lambda CHAPTER 25. Lambda Expression 알아가기 오늘은 JDK1.8부터 추가된 람다식(Lambda expression)에 대해서 포스팅해보려 합니다. ■ Lambda expression 람다식(Lambda expression)이란 함수형 프로그래밍의 표현법 입니다. 여기서 함수형 프로그래밍이란 객체 지향 프로그래밍이 나오기 전부터 있던 패러다임 중 하나로서 함수 안으로 들어오는 인자를 가지고 항상 불변한 결과를 돌려주는 것이 목적을 갖고 있습니다. 함수형 프로그램은 함수 내부 중괄호 안에 필요한 변수는 외부에서 받아오고 로직만이 존재하기 때문에 변수에 값이 할당되면 이후에 변하지 않고, 병렬처리나 이벤트 지향 프로그램에서 side effect가 없다는 장점이 있습니다. 즉, 람다식은 함수형.. 2023. 1. 17.
728x90