728x90

분류 전체보기 207

[ Java ] java.util.stream.IntStream 주요 메서드 정리

오늘은 토이 프로젝트 생성하면서 테이블 생성 테스트 코드 작성할 때활용했던 java.util.stream.IntStream에 대해 포스팅해 보겠습니다😄  주요 메서드 정리 및 개념에 대해 다루고 실전 예제 코드를 통해서 각 메서드에 장단점을 알아보는 시간을 가지겠습니다 ❗ IntStream - 소개 IntStream은 Java 8에서 도입된 Stream API의 일부분으로,'int' 기본형에 특화된 스트림입니다. Stream API는 Java에서 함수형 프로그래밍 스타일을 사용하여 데이터 처리를 할 수 있도록 도와주고IntStream은 'Stream' 와는 다르게 오토박싱/언박싱의 오버헤드가 없기 때문에 성능적으로 유리합니다. IntStream은 여러 가지 방법으로 다음과 같이 생성해서 사용할 수 있습..

[ JAVA ]/JAVA 2024.05.23

[ Concept ] 분산 코디네이터 Zookeeper(주키퍼) 알아가기

Intro 이전 포스팅에서 Kafka(카프카)의 개념에 대해 알아봤습니다.이어서 오늘은 Kafka(카프카)와 떨어질 수 없는 사이인 Zookeeper(주키퍼)에 대해 포스팅을 진행해보려고 하는데요.카프카를 사용하려면 주키퍼까지 알아야 한다니.. 정말 공부할 게 너무 많아서 걱정이네요..😭 그럼 바로 주키퍼에 대해 파헤쳐 보겠습니다❗ Zookeeper(주키퍼) - 소개   분산 시스템을 설계하다 보면, 가장 큰 문제점 중의 하나가 분산된 시스템 간의 정보를 어떻게 공유할 것이고,클러스터에 있는 서버들의 상태를 체크할 필요가 있으며 또한, 분산된 서버들간에 동기화를 위한 Lock(락)을 처리하는 것들이 문제로 부딪히는 상황이 발생하는데요. 이러한 문제를 해결하는 시스템을 코디네이션 서비스 시스템(coord..

[ Concept ] 2024.05.20

[ Concept ] 대용량 / 실시간 데이터 처리를 위한 오픈 소스 (Apache Kafka)

Apache Kafka (아파치 카프카) 란? 실무 프로젝트에서 개발을 끝내고 테스트를 진행하던 중 대용량 데이터를 처리하는 과정에서 접하게 된 오픈 소스에 대해 포스팅을 진행해 보겠습니다.  아파치 카프카? 실무에서 가끔씩 선배님들과 대화하면서 들어본 적은 있지만 실질적인 제어 코드나 실시간으로 제어하는 서비스를 이번에 진행하는 프로젝트에서 처음 접해봤습니다. 카프카는 웹 사이트, 애플리케이션, 센서 등에 취합한 데이터를 스트림 파이프라인을 통해 실시간으로 관리하고보내기 위한 분산 스트리밍 플랫폼이며, 데이터를 생성하는 애플리케이션과 데이터를 소비하는 어플리케이션 간의 중재자 역할을 함으로써 데이터의 전송 제어, 처리, 관리 역할을 합니다. 카프카 시스템은 여러 요소(노드)와 함께 구성될 수 있어 카프..

[ Concept ] 2024.05.17

[ Oracle ] 오라클 힌트(Hint) 개념 및 사용법 정리

SQL 튜닝 - Oracle Hint 개념 오라클 힌트는 SQL 튜닝의 핵심 부분으로 일종의 지시 구문입니다.오라클 옵티마이저(Optimizer)에게 SQL문 실행을 위한 데이터를 스캐닝하는 경로,조인하는 방법 등을 알려주기 위해 SQL 사용자가 SQL 구문에 작성하는 것을 뜻합니다. 오라클이 항상 최적의 실행 경로를 만들어 내기는 불가능하기 때문에직접 최적의 실행 경로를 작성해 주는 것인데, 사용자가 특정 SQL 문장에서 어떤 인덱스가 선택도가 높은지알고 있는 경우 옵티마이저에 의존한 실행 계획보다 훨씬 효율적인 실행 계획을 구사할 수 있습니다.SELECT /*+ FULL(tb_empl) */ * FROM tb_empl WHERE deptno = 10; 정리해 보면오라클 힌트는 SQL문 내에 주석 형태..

[ SQL ]/SQL 2024.05.14

[ Java ] IndexOutOfBoundsException 에러 해결

실무에서 프로젝트 진행 중인 과정에서  Excel 기능 개발을 하던 중IndexOutOfBoundsException : Index:0, Size: 0 에러가 발생했다.자바에서 흔히 볼 수 있는 Exception이라서 해당 에러가 발생했을 때여러 가지 변수가 있겠지만 간단히 해결하는 방법을 공유하겠습니다.  IndexOutOfBoundsException은 앞서 말씀드린 것처럼자바에서 발생하는 일반적인 예외 중 하나입니다. 보통 배열이나 유효하지 않은 인덱스에 접근하거나리스트나 다른 자료 구조에서 유효하지 않은 인덱스를 사용해서 요소에 접근 시도하거나문자열에 인덱스가 문자열의 길이를 초과하는 경우에 발생하는 Exception이라서 간단한 코드로는 파악하기 쉽지만실무 소스를 보면 절대.. 간단한 코드 같은 건..

[ Error ]/JAVA 2024.05.09

신입 개발자 STT-CTI 프로젝트 후기

Intro 입사 3개월 차에 자사 솔루션 개발에 참여하여 프로젝트를 진행했습니다✌ CTI 프로젝트를 12월에 끝내고 쉴 틈 없이 바로  LG 프로젝트에 투입돼서야근하는 삶을 살다 보니 어느덧 5월이 되고 담당 기능 개발이 끝난 상황이라 조금은 여유가 생긴 상황입니다😅 CTI 프로젝트는 자사 솔루션 개발을 중점으로 진행이 되었는데요. 비전공자로 시작해서 지금은 1년 차 개발자의 길을 가고 있는데첫 실무 프로젝트를 통해 개발하면서 배운 점과 후기를 작성해보려 합니다 :) 개요 먼저 제가 현재 근무하고 있는 회사는 고객센터 솔루션 개발 및 구축 전문 회사입니다.그렇다 보니 첫 입사 했을 때 콜 센터 시장의 지식이 부족한 상태다 보니 중요한 용어 위주로 알아보곤 했었는데요. CTI 프로젝트는 고객센터 상담사 ..

[ Project ]/Team 2024.05.08

[ Oracle ] MERGE INTO 문 사용법 및 예제

드디어 진행하고 있는 프로젝트 개발이 막바지에 왔습니다.들어오는 요구 사항이 물 밀듯이 밀려오다 보니 야근을 많이 하다 보니 블로그 포스팅을 못했는데프로젝트하면서 나왔던 오류라든지 혹은 배워야 하는 부분에 대해 하나씩 정리해보려고 합니다. 오늘은 Query 가공하면서 가장 고생했던 MERGE INTO 문에 대해 알아보려고 합니다. 이전 프로젝트에서도 MERGE문을 사용할 경우가 종종 있었는데주로 데이터 마이그레이션이나 혹은 데이터 INSERT 하는 경우 사용합니다. 특히 기존 테이블에 데이터를 INSERT 하면 기존 데이터와 겹치지 않게 하기 위해 MERGE INTO 문을 사용합니다. 이 부분에서 그러면 데이터 INSERT 하는데 굳이 MERGE INTO 문을 사용해야 할까?의문에 빠질 수 있지만, 데이..

[ SQL ]/SQL 2024.05.08

[ JPA ] Java Persistence Query Language(JPQL , 객체 지향 쿼리 언어)(2)

Intro 객체 지향 쿼리 언어에 대한 포스팅을 이어가 보겠습니다. 이전 포스팅에서 페이징 처리 함수까지 알아봤습니다. JPQL 문법에 대해 알아보시는 분들은 아래 포스팅을 참고해 주시면 도움이 될 거 같아서 올려보겠습니다. [ JPA ] Java Persistence Query Language(JPQL , 객체 지향 쿼리 언어)(1) Intro JPA는 엔티티 객체를 중심으로 개발하기 때문에 검색 쿼리 실행하면 테이블 대상이 아닌 엔티티 객체를 대상으로 요청을 보내야 한다. 하지만 모든 데이터베이스 데이터를 객체로 변환해서 drg2524.tistory.com 집합과 정렬 집합 함수와 정렬 기능은 SQL문 작성할 때 사용할 수 있는 함수들을 별도의 처리 과정 없이 사용할 수 있다. 예를 들어서 집합 함수..

[ ORM ]/JPA 2024.04.11

[ JPA ] Java Persistence Query Language(JPQL , 객체 지향 쿼리 언어)(1)

Intro JPA는 엔티티 객체를 중심으로 개발하기 때문에 검색 쿼리 실행하면 테이블 대상이 아닌 엔티티 객체를 대상으로 요청을 보내야 한다. 하지만 모든 데이터베이스 데이터를 객체로 변환해서 검색하는 것은 불가능하며 애플리케이션이 필요한 데이터만 가져오려면 결국 검색 조건이 포함된 SQL을 사용해야 한다. 오늘은 검색 조건에 엔티티 객체를 대상으로 요청을 보내기 위한 객체 지향 쿼리 언어에 대해 알아보자. JPQL(Java Persistence Query Language) JPQL은 SQL을 추상화하여 사용하는 객체지향 쿼리 언어이다. 따라서 테이블을 대상으로 하지 않고 엔티티 객체를 대상으로 쿼리를 수행하며 추상화를 통해서 특정 데이터베이스 SQL에 의존되지 않게 개발할 수 있다. 실제 수행할 때는 ..

[ ORM ]/JPA 2024.04.03

[ JPA ] 값 타입(Value Object)

Intro JPA의 데이터 타입을 분류하면 엔티티 타입과 값 타입(Value Object)으로 구분할 수 있다. 엔티티 타입은 @Entity 애노테이션으로 정의하는 객체, @Entity를 붙여서 관리하던 클래스들이다. 이 타입들은 PK값으로 관리가 되기 때문에 데이터가 변해도 식별자로 지속적으로 추적이 가능하고 관리도 편리하다. 예를 들면 Member 테이블인 즉, 회원 엔티티가 있으면 회원의 주소 및 나이 값을 변경해도 식별자로 인식이 가능하다. 그에 반해 값 타입은 자바 기본 타입과 래퍼 클래스, 문자열처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체다. 식별자가 없고 값만 있으므로 변경 시 추적이 불가하다. 만약 int 타입의 값이 10이 있다고 가정해 보면 10이라는 값을 100으로 변경하면 ..

[ ORM ]/JPA 2024.03.29
728x90