본문 바로가기

전체 글6

Java Switch NullPointException 피하기 최근에 모니터링하는 중에 NullPointException 이 올라 왔다. 그래서 로그 추적 후 소스를 보니 아래와 같이되어 있었다. String data = params.get("data"); switch (data) { case "a" -> ...Do Something case "b" -> ...Do Something case "c" -> ...Do Something default -> ...Do Something } 우선 예시 코드에 설명을 조금 붙이자면, data 라는 변수는 request 를 통해서 들어온 데이터이고 data 라는 값을 바라보고 분기처리하는 switch 문이 있었.. 2025. 8. 2.
Spring Batch Guide - Overveiw 현 직장에 아직 Spring Batch가 도입되어 있지 않다. 이에 따라서 이전에 공부했던 Spring Batch 에 대해서 다시 공부할 겸 그리고 팀내 인원들과 공유하기 위해서 Spring Batch 가이드를 작성해볼까 한다. (향로님의 글을 자주봐서 그글 위주로 나만의 가이드를 작성해볼까 한다!) Batch ???Batch? 그게 뭘까? Batch 는 데이터를 실시간으로 처리하는게 아니라, 일괄적으로 모아서 한번에 처리하는 작업을 의미한다. 그렇다 일괄적으로 대량의 데이터를 한번에 처리하기 위해서 Spring 에서는 Spring Batach 라는 Framework을 제공하고 있다.그렇다면 우리는 이 Batch를 왜 써야 할까? 가령 매입이 완료된 건에 대해서 가맹점에게 정산을 해줘야 한다고 생각해보자.. 2025. 6. 7.
Spring Boot 시작!! Environment - OS : MAC OS(M1) - Development Tool : intelliJ - java version : 1.8 - build tool : maven 1. 프로젝트 생성(https://start.spring.io) 2. 프로젝트 3. Run SpringBoot는 내장 Tomcat이 있어서 Spring legecy 처럼 톰켓을 따로 설정 안해줘도 됩니다. ※ 아직 Mapping 하지 않았기 때문에 404 뜨는 것이 정상이다. 4. Maven을 통한 Run 현재 프로젝트는 maven 기반의 java 프로젝트이기 때문에 maven packageing 시 target 폴더에 jar 파일이 생성 됩니다 2022. 2. 17.
FileWriter, FileReader 의 사용법 정말 오랜만에 글을 올립니다... 최근에 SQL, Servlet 등등.. 공부할게 많다보니...;; JAVA 정리 할 시간이 많이 없었어가지고;; 그래도 틈틈히 까먹었던거 정리하니까 기분은 좋다!!! 오늘은 문자기반 출력스트림의 최상위 클래스로 추상클래스인 Writer, Reader을 상속하고 있는 FileWriter와 FileReader에 대해서 알아보겠습니다. 1.FileWriter FileWriter는 덱스트 테이터를 파일에 저장할 때 사용하는 문자 기반 스트림입니다. 문자단위로 저장하기에 텍스트가 아닌 그림,오디오,비디오 등.. 의 데이터 파일로 저장할 수 없습니다. FileWriter의 경우 생성하는 방법이 2가지의 방법이있다. 방법 1 Writer filewriter = new FileWrit.. 2020. 3. 1.
스레드 동기화(synchronized) feat. 임계영역,Lock 만약 A스레드와 B스레드가 하나의 공유 객체를 바라보면 작업을 한다. 그런데 만약 A스레드 작업 도중에 B스레드의 작업의 영향을 받는 다면 어떻게 될까?? 간단하게 생각해보면 예상치 못한 결과가 나올 것이다. 바로 이때 필요한 것이 스레드 동기화이다. 즉, 진행 중인 작업을 다른 스레드가 간섭하지 못하도록 막는 것을 '스레드 동기화'라고 한다. 그럼 JAVA에서는 동기화 작업을 어떻게 할까??? JAVA에서는 synchronized 키워드와 synchronized 블록으로 스레드의 동기화 작업을 해줄 수 있다. 우선 동기화 작업을 하지 않은 간단한 예제를 보자. 소스를 한번 보자 TaskA와 TaskB 클래스는 각자의 생성자의 매개값으로 ShareInstance를 받았고, run() 메서드를 Overri.. 2020. 2. 16.
스레드란?? 그리고 스레드 생성과 실행 스레드(Thread)란 무엇일까요?? 그 이전에 프로세스(Process)를 알아야 합니다. Process란 "실행 중인 프로그램(Program)"이라고 할 수 있습니다. 이때 Thread는 "Process 내에서 실제로 작업을 실행하는 주체"라고 볼 수 있습니다. 생각해보면 우리는 작업을 main() 메소드에서 하죠?? 그렇습니다. main도 하나의 스레드입니다. 그렇다면 스레드를 생성하는 방법과 실행하는 방법을 알아보겠습니다. 스레드를 생성하는 방법은 크게 2가지가 있습니다. 1. Runnable interface를 implements 해서 run() 메소드를 Overriding 한 후 Thread클래스로 부터 작업 스레드 객체를 생성하여 생성자의 매개값으로 Runnable을 넣어 주는 방법 2. Th.. 2020. 2. 15.