본문 바로가기

BackEnd/Java6

[실무 삽질] 시계열 중복 데이터 처리: 최신 날짜 조회 vs INSERT IGNORE 배경고객의 민감정보를 포함한 시계열 데이터를 수집해야 하는 상황에서, 직접적인 데이터 접근이 불가능했습니다. 업체 간 협약과 복잡한 이해관계로 인해 반드시 중계 플랫폼을 통해서만 데이터를 받아올 수 있는 제약이 있었고, 이러한 외부 의존성 하에서 안정적인 데이터 처리 시스템을 구축해야 했습니다.실제 업무에서 경험한 문제와 해결 과정을 공유하고자 하지만, 실무 코드를 그대로 공개할 수는 없어 비슷한 상황을 가정한 예시로 설명하겠습니다. 상황 설정- 외부 API에서 센서에 기록된 시계열 데이터를 받아오는 시스템을 개발한다고 가정합니다.- 대략, 15분 마다 센서를 사용중인 회원들의 데이터들이 각각의 요청으로 들어옵니다.- 특이 사항으로는 매번 누적된 데이터를 전송한다는 점입니다. - 일 단위로 00시00분에.. 2025. 7. 15.
Scanner VS BufferedReader 차이 계기 백준 Java 알고리즘을 풀던 도중 무지성 Scanner 클래스를 사용했다. 다른 사람의 풀이를 보니 BufferedReader를 주로 사용하는 것을 알게 되었고 BufferedReader가 Scanner보다 빠른건 알고 있지만 왜 빠른지 궁금해져서 정리를 하게 되었다. 이를 기록으로 남겨 Scanner와 BufferedReader의 차이점에 대해 알아보고자 한다. Scanner란? 입력 받은 데이터(바이트)를 다양한 타입으로 변환하여 변환하는 클래스이다. 간단하게 기본형과 String타입을 정규표현식을 사용해 파싱(parse)할 수 있다. 특징 java.util패키지 안에 들어있다. 공백(띄어쓰기) 및 개행(줄 바꿈)을 기준으로 읽는다. 원하는 타입으로 읽을 수 있다. 버퍼의 사이즈가 **1024.. 2023. 11. 11.
Spring의 3대 요소 (IoC, DI, PSA, AOP) Spring의 3대 요소 (IoC, DI, PSA, AOP) 대해서 알아보자 Spring은 엔터프라이즈 어플리케이션 개발을 편리하게 하기 위해 등장했다. Spring은 봄이란 뜻으로 기존 EJB가 너무 무거워서 나온 가벼움을 강조하는 Spring 경량화 프레임워크인데… 요즘의 Spring은 너무 뚱뚱해졌다. 하여간 스프링은 객체지향과 DI라는 핵심 도구를 가지고 유연하고 확장성 있는 설계를 가능하게 만들어준다. 스프링은 순수 자바 오브젝트(POJO)를 이용해 특정 환경과 기술에 종속되지 않은 비즈니스 로직 구현이 목표인데, 이를 위한 Spring의 3대 요소인 IoC, AOP, PSA가 있다. POJO(Plain Old Java Object)란? 간단히 해석을 하면, 오래된 방식의 간단한 자바 오브젝트라.. 2023. 10. 13.
[자료 구조] - 자료구조와 배열, 리스트에 대해 알아보자 - Java ⏳ 들어가며 - 자료구조란? 실생활에서 우리는 물건(데이터)들을 그룹(조직화)화 하고 정리(관리)하기 위해 다양한 방법을 사용합니다. 이러한 방법들은 자료구조의 개념과 유사하게 데이터를 효율적으로 다루기 위해 필요한 아이디어들을 반영하고 있습니다. 데이터 세계에서 이러한 개념을 자료 구조(Data Structure)라고 표현합니다. ⏳ 기본적인 자료구조 프로그래밍에서 데이터를 효과적으로 조작하고 저장하는 것은 매우 중요한 역할을 합니다. 이를 위해 다양한 자료구조가 개발되었으며, 각 자료구조는 특정 작업을 더 효율적으로 수행할 수 있도록 설계되었습니다. 자료구조는 데이터의 구조와 데이터 간의 관계를 나타내는 방법을 제공하며, 데이터의 삽입, 삭제, 검색, 정렬 등과 같은 연산을 효율적으로 수행할 수 있도.. 2023. 8. 24.