Java

· Java
⚡개요 Wrapper Class에 대해서 기본적인 내용을 체크하던 도중에 객체를 비교하는 과정에서 추가적인 내용을 확인해서 내용을 정리해 놓으려고 한다. ⚡ Wrapper Class 생성 방법 기본적인 생성 방법 일반적으로 new 를 통한 객체를 생성하는 방법이 있다. 하지만 이 방법은 버전에 따라서 사용을 할 수 없도록 되어있다. 심지어 사용할수 있는 버전에서 조차 "불필요한 박싱"이라는 문구가 발생한다. 일부 Wrapper Class에 대해서도 확인해 보았지만, 모두 동일한 것으로 파악되며, 대신 valueOf()를 사용하도록 권장하고 있다. (해당 부분이 왜이렇게 바꼇는지는 밑에서 설명 하도록 하겠다.❗❗❗) 이 또한 불필요한 박싱이라는 경고가 뜨게 된다. 여기까지는 대부분 알고 있는 내용이며 크게..
· Java
⚡ Stream 이란? Java Stream은 자바 8부터 추가된 기능으로, 컬렉션과 배열과 같은 데이터 소스에서 요소를 처리하고 다양한 연산을 수행할 수 있는 API이다. Java Stream API는 함수형 프로그래밍의 개념을 기반으로 만들어졌기 때문에 람다식과 함께 사용할 수 있다. Java Stream은 크게 생성, 중간 연산, 최종 연산으로 구성된다. 생성 연산은 Stream 객체를 생성하는 역할을 하고 중간 연산은 Stream 객체의 요소를 처리하거나 필터링하는 등의 작업을 수행하며 최종 연산은 Stream 객체의 요소를 이용하여 결과를 도출하는 작업을 수행한다. Java Stream API에는 다양한 중간 연산과 최종 연산이 제공되며 이를 활용하여 데이터를 처리하고 다양한 연산을 수행할 수 ..
· Java
⚡ 개요 이번에는 QueryDsl에서 DateType을 사용하는 방법에 대해서 정리를 해보려고 한다. QueryDsl을 사용하면서 Projections을 통해 쿼리 결과를 DTO 클래스로 변환해서 반환을 받고 리턴을 하는 경우가 종종 있다. 이때 조회 Entity 의 타입이 Date Type인 경우 변환을 할때 타입 에러가 발생하게 된다. 우리의 경우 데이터를 조회할때 예를 들어 1000개의 데이터중 필요한 Entity를 조회 해서 DTO로 변환을 하는 작업을 한다. 데이터의 양이 적다면 속도적인 측면에서 크게 문제가 되지 않지만 이력쪽 데이터를 조회하는 경우에는 속도적인 측면에서 많은 저하가 발생을 하게 되었다. 또한 데이터가 적더라도 컬럼의 타입 그대로가 아닌 변환을 해서 사용 해야하는 경우에도 En..
· Java
⚡ 개요 보안이 중요해지고 있고, Tomcat 구동시 기본적으로 보여주는 error 페이지를 보여주면 안된다. 우리가 개발하고 배포하는 정보가 포함되어 있기때문이다. 에러 페이지를 내가 설정한 페이지로 변경하는 방식에 대해서 정리 하려고 한다. ⚡ 에러 페이지 설정 및 설명 1. spring boot를 사용하지 않고, freamWork만 사용하고 있다고 가정을 하면 web.xml에서 설정이 가능하다. (보통의 레거시 시스템들을 보면 이렇게 설정 되어 있다.) ❗ 확인 사항 1. error-code를 설정하지 않으면 실제 해당 에러가 발생 했을때 정상적으로 페이지가 호출되지 않는다. 2. location 설정시, 맨앞에 "/"를 하지 않은 경우 정상적으로 페이지가 호출되지 않는다.
· Java
🤔디자인 패턴은 소프트웨어 디자인에서 공통된 문제들을 해결하는 데 도움이 되는 설계 방법론 ⚡디자인 패턴에 대해서 알아야 되는 이유 패턴에 대해 아무것도 알지 못해도 프로그래머로 일할 수 있다는 것이다. 실제로 많은 프로그래머가 패턴에 대한 아무런 지식 없이 업무를 수행하고 있다. 또 자신도 모르는 사이에 일부 패턴들을 구현하고 있는 경우도 있다. 그럼에도 왜 패턴을 배워야 하는지, 그 이유들을 정리해 보겠다. 디자인 패턴은 소프트웨어 디자인의 일반적인 문제들에 대해 시도되고 검증된 해결책들을 모은 것이다. 이러한 문제들을 다루지 않더라도 패턴을 알고 있으면 여전히 쓸모가 있는데, 그 이유는 패턴을 배우게 되면 객체 지향 디자인의 원칙들을 사용해 많은 종류의 문제를 해결하는 방법들을 배울 수 있기 때문입..
· Java
자바 19에 추가되는 핵심 기능 7가지에 대해서 소개해보도록 하겠다. 2022년 9월에 출시된 자바 19 버전의 7번째 기능으로 구조적 동시성이 추가되었다. 멀티스레드 프로그래밍을 간편하게 지원하기 위한 요소이다. 해당 내용 외에 미리 공개된 6가지 핵심 기능에는 레코드 패턴, 외부함수와 메모리 API(프리뷰), 오픈소스 기반의 리눅스/RISC-V 명령어 집합구조(ISA) 지원 등이 있다. 추가된 내용을 자세히 한번 알아보자. ⚡구조적 동시성(인큐베이터) : 아직 인큐베이터 단계로 구조를 갖춘 동시성 라이브러리를 이용해 멀티쓰레드 프로그래밍을 제공한다. 동시성이라는 기능 덕에 여러 태스크를 서로 다른 스레드 안에 운영하고 동시에 단일한 유닛 형태로 관리할 수 있다. 따라서 사용자는 에러 관리나 취소 관련..
· Java
⚡반복문의 종류 1. for loop 가장 빠르고 단순하다. 그래서 효율적이다. 모든 자료형에 대해 사용이 가능하다. 중간에 loop 건너뛰기나 종료가 가능하다. (continue or break) 반복 범위 컨트롤이 가능하다. (i++, i–, i+=2*i 등) 변수를 활용할 수 있다. (var i 값을 사용할 수 있다) 2. forEach 빠른 편이다. Array객체에서 사용이 가능하다. 일반 for문보다 가독성이 좋고, 객체형을 다루기가 쉽다. for문과 다르게 중간에 끊을 방법이 없다. (return으로 - skip가능) return값을 받지 못한다. 3. filter 빠른 편이다. Array객체에서 사용이 가능하다. chainable 하다. 빈 배열 요소를 반환하지 않는다. 대용량 배열 처리 시..
· Java
⚡대표적인 데이터 베이스 RDB NoSQL ⚡RDB :Relational DataBase (관계형 데이터베이스) 관계형 데이터 모델을 기본으로 두고 모든 데이터를 2차원 테이블 형태로 표현 하는 데이터 베이스 (쉽게 말해 엑셀 형태.) 서로 다른 테이블이 서로 관계를 맺고 모여있는 집합체. 관계를 나타내기 위해서 키(key) 각 테이블의 행들이 서로 연결되는 관계 (1:1, 1:N, N:M) 를 가질수 있다. 논리적 구성 Relation (릴레이션) Entity (개체) Attribute (속성) 과 Tuple (튜플) 로 구성 되어 있다. 논리 데이터 모델에서는 Entity, 관계형 데이터 모델에서는 Tabel, 관계형 모델에서는 Relation 이라고 불림. Attribute (속성) Entity를 ..
HaeTae
'Java' 카테고리의 글 목록 (2 Page)