java (100) 썸네일형 리스트형 [멋쟁이사자] 백엔드 - 33일차 회고록 33일차학습 목표새로운 스레드 API를 활용하여, VO 바운드 작업과 CPU 바운드 작업에 적합한 동시성 프로그래밍 모델을 설계하고 구현할 수 있다.Executors 및 Virtual Thread Executor를 활용하여, 다양한 유형의 작업을 분리 처리하는 병렬 구조를 구현할 수 있다.실행 결과를 기반으로 Virtual Thread의 장단점을 분석하고, 실전 환경에 적합한 스레드 모델을 선택할 수 있다.1. VO 바운드 / CPU 바운드 작업에 적합한 모델 구현플랫폼 스레드의 경우 멀티코어 활용, 안정적 병렬 처리와 같은 이유로 CPU 바운드 작업에 적합하다.가상 스레드는 대기 중인 스레드를 JVM이 다른 작업으로 대체해주기 때문에 I/O 바운드 작업에 적합하다.2. Executors 및 Virtua.. [멋쟁이사자] 백엔드 - 32일차 회고록 32일차학습 목표멀티스레드의 개념과 필요성을 이해하고, 단일 스레드와의 차이점 및 멀티스레드를 사용하는 주요 이유를 설명할 수 있다.Thread 클래스와 Runnable 인터페이스를 활용한 전통적인 스레드 생성 방식을 이해하고, 스레드의 생명주기(생성-실행-대기-종료)를 설명할 수 있다.스레드 간 공유 자원 접근 시 발생할 수 있는 문제(경쟁 조건= Race Condition 등)를 이해하고, synchronized, wait/notify, Lock 객체를 활용한 동기화 기법을 구현할 수 있다.JDK 21에서 제공하는 향상된 스레드 기능의 핵심 개념(예: 가상 스레드)을 이해하고, 전통적인 스레드와의 차이점을 설명할 수 있다.JAVAX를 이용한 GUI 매핑을 구현할 수 있다.멀티스레드웸 앱이 주류가 되기.. [멋쟁이사자] 백엔드 - 17일차 회고록 17일차학습 목표Mysql의 기본 구조와 환경설정 및 기본 명령을 구현하고 활용할 수 있다.SELECT 문법을 이해하고 원하는 컬럼 데이터를 조회할 수 있다.WHERE 절을 활용하여 조건에 맞는 데이터를 필터링할 수 있다.MySQL 환경설정환경 설정과 my.ini 파일을 통한 MySQL 서버의 설정을 담고 있는 구성 파일을 파헤쳐봤다.해당 내용은 아래 정리해뒀다.https://lold2424.tistory.com/192 [DB] MySQL - my.ini 파일 파헤치기개요MySQL의 파일인 my.ini은 본인이 MySQL을 사용하기 전 어떤 설정이 되어있는지 확인하고, 바꿀건 바꿀 수 있는 환경 설정 파일이다.my.ini 파일을 파헤치면서 어떤 설정이 되어있는지 한번 알아보lold2424.tistory... [멋쟁이사자] 백엔드 - 16일차 회고록 16일차학습목표Files.readAllLines(), write()를 이용해 파일 입출력 처리와 텍스트 파일 데이터 읽기/쓰기 기능을 구현한다.Files.walk(), Files.list()를 활용해 디렉토리 탐색 및 파일 목록 처리 기능을 수행한다.ByteBuffer, CharBuffer 등 다양한 Buffer 개념과 주요 메서드를 이해하고 직접 데이터 입출력을 구현할수 있다.Channel과 Buffer의 구조적 차이와 관계를 이해하고, NIO 기반 입출력 처리 패턴을 활용할 수 있다..Path와 Paths 클래스 활용법을 이해하고, 파일 및 디렉토리 경로를 관리할 수 있다.파일과 데이터 읽기/쓰기파일을 입출력하기 위해서는 데이터를 단위로 처리해야 한다.단위 처리는 3가지로 나눌 수 있다.byte 단위.. [JAVA] Java NIO를 활용한 파일 목록 가져오기 개요파일을 읽고, 수정하고, 쓰기 위해서는 파일 위치를 찾아야 한다.자바에서는 java.nio.file.Files 클래스를 통해 파일 시스템을 객체 지향적으로 다룰 수 있게 해주는 API를 제공한다.그중 Files.list()와 Files.walk()는 디렉토리를 탐색하여, 파일 또는 디렉토리 목록을 스트림(Stream) 형태로 제공하는 대표적인 메서드를 살펴보자Files.list(Path dir)특정 디렉토리의 직속 항목들만 나열한다.즉, 1단계 탐색만 수행하여 하위 폴더 내부까지는 안들어간다.Stream로 반환해눚다.필터링이나 정렬이 쉽다.try (Stream stream = Files.list(Paths.get("C:/data"))) { stream.forEach(System.out::prin.. [JAVA] Java Files API를 활용한 텍스트 및 객체 입출력 개요Java에서는 NIO를 사용해 다양한 방식으로 파일 입출력을 할 수 있다.그 중 Java의 java.nio.file.Files 클래스는 텍스트, 바이너리, 객체 데이터를 간단히 읽고 쓸 수 있는 다양한 메서드를 제공한다.본 글에서는 텍스트 파일 입출력, 바이트 단위 입출력, 객체 직렬화/역직렬화 입출력을 주요 키워드로 다룰 예정이다.이 중 파일에 데이터를 Read, Write 할때 처리 단위에 따라 방법이 나뉘게 된다.처리 단위는 크게 3가지로 구분된다.문자열(String): 사람이 읽을 수 있는 형태바이트(byte): 기계가 이해할 수 있는 원시 데이터객체(Object): 자바 프로그래밍에서 구조화된 상태 그대로 데이터를 저장하거나 복원하는 방법Oracle java doc Files (Java Pl.. [JAVA] 스트림 파이프라인(Stream pipeline) 스트림 파이프라인이란?여러 개의 스트림 연산을 연결하여 데이터를 처리하는 방식을 의미한다.즉, 데이터를 스트림으로 변환한 후, 여러 중간 연산을 거쳐 최종 연산으로 결과를 얻는 과정이라고 할 수 있다.스트림은 중간 연산과 최종 연산으로 나뉜다고 했었는데 그 중 중간 연산을 여러개 사용하여 최종 연산을 하는 경우를 마치 파이프를 따라 흐르는것 같다고 해서 파이프라인이라고 불리운다.스트림 파이프라인의 구조위 그림을 보면 쉽게 이해할 수 있다.즉, 스트림에 그냥 중간 연산이 여러개가 들어가면 그게 파이프라인이 된다는거다.스트림에 대해 잘 모른다면 아래 블로그에 정리해뒀다.https://lold2424.tistory.com/186 [JAVA] Stream APIStream이란?Stream(스트림)은 Java 8.. [JAVA] Stream API Stream이란?Stream(스트림)은 Java 8에서 도입된 연속적인 데이터 흐름을 처리하는 API다.기존의 컬렉션을 반복문 없이 선언적(Declarative) 방식으로 변환, 필터링, 집계할 수 있도록 도와준다.스트림은 데이터 구조가 아니기 때문에 컬렉션, 배열, 파일, IO 등에서 데이터를 받아 가공, 처리하는 역할을 한다.즉, 스트림은 데이터 저장이 아닌 데이터 흐름을 처리하는 도구라고 생각하면 된다.스트림은 함수형 프로그래밍 스타일을 지원하기 때문에, 람다식을 사용한다.또한, 위에 말했듯이 컬렉션을 사용하기 때문에 컬렉션 프레임워크와도 관계되어 있다.컬렉션 프레임워크는 블로그 내 정리해둔 글이 있으니 참고하면 된다.https://lold2424.tistory.com/183 [JAVA] 컬렉션 프.. 이전 1 2 3 4 5 ··· 13 다음