[Java] Optional이란?
·
노빠꾸 개발일지/JAVA
Optional ? 자바8에서는 java.util.Optional라는 새로운 클래스를 제공하여 값이 있거나 없음을 표현할 수 있다. Optional은 선택형 값을 캡슐화하는 클래스이다. Optional로 값이 없는 상황을 적절하게 처리하도록 강제할 수 있다. 즉, 예상치 못한 null예외를 방지할 수 있다. 값이 있으면 Optional클래스는 값을 감싼다. 반면 값이 없으면 Optional.empty 메서드로 Optional을 반환한다. Optional.empty()는 Optional의 특별한 싱글턴 인스턴스를 반환하는 정적 팩토리 메서드이다. Optional 객체 생성 방법 1. 빈 Optional Optional userDto = Optional.empty(); 2. null을 포함하지 않는 Opti..
정적 팩토리 메서드란?
·
노빠꾸 개발일지/JAVA
장점 이름을 가질 수 있다. 호출될 때마다 인스턴스를 새로 생성하지 않아도 된다. 반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 있다. 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다. 정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 된다. 단점 상속을 하려면 public이나 protected 생성자가 필요하니 정적 팩터리 메서드만 제공하면 하위 클래스를 만들 수 없다. 정적 팩터리 메서드는 프로그래머가 찾기 어렵다. 정적 팩터리 메서드 명명규칙 from 매개변수를 하나 받아서 해당 타입의 인스턴스를 반환하는 형 변환 메서드 ex) Date d = Date.from(instant) of 여러 매개변수를 받아 적합한 타입의 인스턴스를 반환하는 집계 메서..
Spring Security 5.7.x 이후 버전에서 WebSecurityConfigurerAdapter 클래스의 deprecation 이유와 대안 방법
·
노빠꾸 개발일지/SPRING
소개 Spring Security에서 제공하는 WebSecurityConfigurerAdapter 클래스는 웹 애플리케이션의 보안 구성을 위해 사용되는 중요한 클래스입니다. 그러나 스프링 시큐리티 5.7.x 버전 이후부터는 이 클래스가 deprecation 되었습니다. 이번 피드에서는 WebSecurityConfigurerAdapter 클래스의 deprecation 이유와 대안 방법에 대해 알아보겠습니다. WebSecurityConfigurerAdapter 클래스란? WebSecurityConfigurerAdapter 클래스는 스프링 시큐리티에서 제공하는 클래스로, HTTP 요청에 대한 보안 구성을 설정하는 메서드를 제공합니다. 예를 들어, 로그인 폼, 로그아웃, 인증에 대한 설정을 추가할 수 있습니다...
MySQL Explain이란?
·
노빠꾸 데이터베이스/MySql
@Explain MySQL 실행계획 SQL의 성능개선을 하고 싶을때, DB튜닝이 필요할 경우 간단하게 해볼 수 있는게 실행계획을 살펴보는 것이다. MySQL에서는 Explain명령어를 통해서 실행계획을 확인해 볼 수 있다. Explain이란? Explain문은 실행계획(MySQL이 쿼리를 실행하는 방법에 대한 설명)을 얻는데 사용한다. Explain 출력열 열 JSON 이름 의미 id select_id 식별자 SELECT select_type 없음 유형 SELECT table table_name 출력 행의 테이블 partitions partitions 일치하는 파티션 type access_type 조인 유형 possible_keys possible_keys 선택할 수 있는 인덱스 key key 실제로 선..
스프링부트 프로젝트 기본 생성 방법 및 간단한 정리
·
노빠꾸 개발일지/SPRING
스프링 부트 프로젝트 생성해보기 스프링 부트 프로젝트 생성방법 스프링부트 프로젝트를 생성하는 방법에는 대표적으로 2가지 방법이 있다. Spring initializr 사이트 이용 IDE 메뉴를 통한 프로젝트 생성 ℹ 스프링부트 버전마다 지원하는 라이브러리 버전이 다르므로 버전에 맞게 라이브러리를 추가하여 프로젝트를 생성하여야 한다. 스프링부트 프로젝트 실행해보기 스프링 부트 프로젝트를 생성하게되면, 아래와 같이 프로젝트가 생성이 된다. 스프링 부트 프로젝트는 생성 후, 별다른 설정없이 바로 프로젝트를 실행해 볼 수 있다. 아래의 프로젝트 구조 예시는 특별한 설정없이 생성한 스프링부트 프로젝트이다. src/main/java 해당 영역은 자바파일이 관리되는 폴더이다. Controller, Service, D..
인텔리제이 라이브 템플릿(Live Template)
·
노빠꾸 개발일지
라이브템플릿(LIVE TEMPLATE) 코드를 작성하다보면, 반복적으로 사용하는 코드들이 있다. 인텔리제이에는 이런 반복작업을 손쉽게 작업할 수 있도록 도와주는 기능이 있는데 바로 Live Template이다. 인텔리제이에서는 Live Template을 아래와 같이 설명하고 있다. 라이브 템플릿은 코딩속도를 높이는데 도움이 되는 강력한 기능입니다. 템플릿에 미리 정의된 약어를 입력하기만 하면 작업에 표준 코드 구성을 빠르게 삽입할 수 있습니다. 반복적으로 사용하는 코드 스니펫을 삽입하는데 사용할 수 있는 고유한 사용자 템플릿을 만들 수도 있습니다. 라이브템플릿(Live Template) 적용방법 1. 단축키 ⌘ + , 를 이용하여 Preferences를 열고, live template을 검색한다. 2. ..
마크다운이란?🤔 마크다운 기본 문법 정리
·
노빠꾸 개발일지
🤔 마크다운이란 무엇일까.... 문서를 작성하다 보면 마크다운 형식을 제공하는 문서를 종종 보곤 한다. Github, Notion, Slack... 등등 주변에서 쉽게 마주할 수 있다. 마크다운(Markdown)은 일반 텍스트 기반의 경량 마크업 언어이다. 일반 텍스트로 서식이 있는 문서를 작성하는데 사용되며, 일반 마크업 언어에 비해 문법 이 쉽고 간단한 것이 특징이다. 포스팅 및 메모관리를 마크다운 형식으로 작성해보려고 마크다운의 기본사용 문법을 정리해 보려고 한다. 1. 기본문법 • Headings # 제목1 ## 제목2 ### 제목3 #### 제목4 ##### 제목5 ###### 제목6제목1 제목2 제목3 제목4 제목5 제목6 • Bold 마크다운 문법 ** 문자 굵게 표시 ** Test문자 굵게..
스프링 부트(Spring Boot)란?
·
노빠꾸 개발일지/SPRING
🤔 스프링 부트는 스프링 기반으로 독립실행형 애플리케이션을 쉽게 만들 수 있게 해준다. ● 스프링 부트 특징 1. 독립형 Spring 애플리케이션 생성, Tomcat, Jetty 또는 Undertow를 직접 포함(WAR 파일을 배포할 필요 없음) - 별도로 설치된 컨테이너(Tomcat.. 등)로 배포하지 않고 독립실행형(Standalone) 자바 애플리케이션으로 동작한다. 2. 빌드 구성을 단순화하기 위해 독자적인 '스타터' 종속성을 제공합니다. - 스프링부트는 검증된 라이브러리 구성, 의존관계와 적용할 버전, 각 라이브러리의 세부구성과 디폴트 설정을 제공한다. 3. 가능할 때마다 자동으로 Spring 및 타사 라이브러리 구성 4. 코드 생성이나 XML 설정이 필요하지 않다. 참고 : https://sp..
마이크로 서비스 아키텍처(MSA) & 모놀로식 아키텍처 정리
·
노빠꾸 개발일지
이번 피드에서는 마이크로 서비스 아키텍처(MSA)와 모놀로식 아키텍처에 대해 알아보는 피드를 정리해 보겠습니다. 마이크로 서비스 아키텍처(MSA) 와 모놀로식 아키텍처는 상반되는 개념의 아키텍처로 비교하여 알아두면 좋다. 마이크로 서비스 아키텍처(MSA) 마이크로 서비스 아키텍처는 마이크로서비스(Micro Service)라는 작은 단위의 컴포턴트로 구성되어있다. 서비스 전체 기능을 독립된 작은 단위로 나누어 분리하고, 각각의 컴포넌트는 독립된 시스템 형태로 개발하고 운영한다. 장점 1. 하나의 마이크로 서비스는 하나의 비지니스 기능을 담당하므로 다른 마이크로 서비스와 간섭이 최소화 된다. 2. 대용향 데이터를 저장하고 처리하는데, 비교적 자유롭다. 3. 각각의 서비스가 느슨하게 결합되어 있어, 어떤 서비..
[MAC] 매직트랙패드2 구매 후기
·
노빠꾸 맥북 사용기
기존에 맥북에 일반 마우스를 사용하고 있었는데, 마우스에 불편함을 느끼고 트랙패드에 관심이 생겨, 매직트랙패드2를 구입하게 되었다. 쿠팡으로 구입을 했는데, 역시 로켓배송으로 다음날 바로 배송이 되었다! 구성은 간단하다 박스 한개가 도착했다. 언박싱을 해보니 아래와 같이 트랙패드와 라이트닝케이블과 제품설명서가 들어있었다. 언박싱을 완료 후 맥북과 블루투스로 연결하면 바로 사용이 가능하다. 역시, 트랙패드가 마우스보다 훨씬편하다..... 트랙패드의 단점이라면 가격이 아닐까 싶다.... 가격부분의 단점을 제외하고는 모든 부분에서 만족스러운 제품인것 같다. 그래서, 구입을 고려하고 있다면 세일기간을 잘 맞춰서 구입하기를 추천한다.