목록springboot (10)
코딩마을방범대

JpaSpecificationExecutor Spring Data JPA에서 제공하는 인터페이스DB 쿼리의 조건을 간단히 Spec으로 작성하여 날릴 수 있게 해줌(Spec으로 관리하게 되면 코드가 깔끔해지며 유지보수가 좀 더 용이해짐)JPA Criteria API를 활용하여 복잡한 동적 쿼리를 작성할 수 있음 주요 메서드유형메서드설명ListfindAll(Specification spec)엔티티 조회PagefindAll(Specification spec, Pageable pageable)엔티티 조회 ListfindAll(Specification spec, Sort sort)엔티티 조회 OptionalfindOne(Specification spec)단일 엔티티 조회 RfindBy(Specification s..

라이브러리 jar 파일을 프로젝트 gradle에 설정해놓는 방법을 알아볼거다! 아래처럼 Project Structure에서 직접 jar 파일을 등록해주는 방법도 있지만, 난독화를 해놓은 경우 제대로 인식이 되지 않는 오류가 발생했다!! 그래서 아래와 같이 프로젝트 폴더 내에 libs라는 폴더를 생성하여 여기 안에 jar 파일을 넣어주면 된다. 그 다음 build.gradle에서 아래와 같이 설정해주면 끝!! dependencies { ... implementation files('libs/파일명.jar') }
String 문자열을 쌓을 때 String을 사용할지, StringBuilder or StringBuffer를 사용할지는 아래 포스트를 참고해서 결정하자! [Java] String, StringBuffer, StringBuilder의 차이점 List to String List를 String으로 변환하는 방법을 먼저 알아보면 내가 알기론 5가지가 존재한다! 1. forEach (확장 for문) StringBuilder str1 = new StringBuilder(); for(String str: list){ str1.append(str); } 2. for문 StringBuilder str2 = new StringBuilder(); for( int i = 0; i < list.size(); i++ ){ st..

UUID (Universally Unique Identifiers) 각 개체를 고유하게 식별 가능한 값 (범용 고유 식별자) 사용 방법 UUID.randomUUID().toString() 위 코드를 실행할 때마다 새로운 값들이 출력되며, 이 값을 유니크한 값으로 사용해주면 된다. QR 코드를 만들 때 유니크한 값을 ID로 주어 사용하게 되는데, 이럴 때 사용하면 중복값 체크할 필요 없이 바로 사용이 가능하다. 만약 길이가 길어서 짧게 쓰고 싶다고 substring을 주게 된다면, UUID를 사용하는 목적이 사라진다! 문자열을 잘라서 쓸 경우 중복값이 발생할 수 있고, 이 문자열 그대로가 유니크한 값이기 때문에 수정없이 그대로 사용해야 한다. 난수를 통해 랜덤값을 만들게 될 경우 중복 체크 로직은 따로 구..

QR 이란? 흑백 격자무늬 패턴으로 정보를 나타내는 매트릭스 형식의 이차원 바코드를 의미 QR코드는 주로 한국,일본,중국,영국,미국 등에서 많이 사용되며, 명칭은 덴소 웨이브의 등록 상표 'Quick Response' 에서 유래됨 특징 종래에 많이 쓰이던 바코드의 용량 제한을 극복하고 그 형식과 내용을 확장한 2차원의 바코드로 종횡의 정보를 가져서 숫자 외에 문자의 데이터를 저장할 수 있음 숫자 최대 7089자, 영문자와 숫자 최대 4296자, 이진 8비트 최대 2953바이트, 한자 1817자를 담을 수 있음 QR과 바코드의 차이점 QR 바코드 장점 종횡(2차원)으로 사진, 동영상, 지도, 명함 등 다양한 정보를 편리하게 담아낼 수 있음 인식속도, 인식률이 높음 단방향(1차원)으로 숫자나 문자 정보 저장..

System 환경 변수 가져오기 컴퓨터마다 설정되어있는 환경 변수가 천차만별이다. 개발을 하게 되면서 PC에 따른 환경 변수가 필요할 경우가 있는데, Java에서는 이 시스템 환경 변수를 가져올 수 있다. System.getenv() 모든 시스템 환경변수에 대한 값을 key, value ( Map ) 형태로 반환합니다. System.getenv(String name) name에 해당되는 시스템 환경 변수의 값을 반환합니다. 예제 System.getenv("DriverData"); 컴퓨터의 환경 변수 리스트를 확인할 수 있는 방법 제어판 -> 시스템 -> 고급 시스템 설정 -> 환경 변수 System 명령어 실행 시키기 자바프로그램이 돌아가는 시스템(윈도우즈, 리눅스, 유닉스, 등)의 명령어를 실행시킨 후..

REST API로 구축된 웹서비스의 경우 해당 URL에 맞는 하나의 API를 호출하면 하나의 응답을 제공한다. 따라서 어떠한 이벤트가 발생했는지를 조회하기 위해서는 LOG 등을 통해 개발자가 직접 확인해야 알 수 있는 구조이다. 만약 서버에 예상치 못한 예외가 발생했을 때 개발자가 실시간으로 바로 알 수 있는 방법은 없다. 스케줄러 등을 이용해 주기적으로 확인한다쳐도 이미 이벤트가 발생한 한참 뒤일 수도 있다. 이 단점을 극복하기 위해 웹훅을 사용하며, 이 웹훅에 대해서 알아볼 예정이다. 웹훅이란? 웹페이지 or 웹앱에서 발생하는 특정 행동(이벤트)들을 커스텀 Callback으로 변환해주는 방법 행동 정보를 실시간으로 제공하는데 사용됨 서버에서 특정 이벤트가 발생했을 때, 클라이언트를 호출하는 방식으로써..
Optional에 대하여 Object를 리턴하는데 null일 가능성이 있다면 Optional로 래핑하는 것을 권장 매핑 함수의 적용 결과가 null인 경우 빈 Optional을 반환(메소드를 체이닝했을 때 중간에 null이 있어도 빈 Optional로 계속해서 이어나갈 수 있음) 메소드체이닝이란? 메소드를 줄줄이 엵어서 메소드를 계속해서 사용할 수 있게끔 하는 방법 setter() 메소드에서 void가 아닌 세팅된 객체를 리턴 map과 flatmap A type을 B type으로 바꾼다는 뜻(매핑) Optional의 값이 있는 경우에만 실행 map 결과를 Optional로 감싸서 리턴 flatmap 감싸지 않고 반환 orElse와 orElseGet 의 차이점 구분 설명 orElse() 내부 객체의 상태와..