프로그래밍 언어

    [java] java stream filter and return string

    java stream 에서 enum 값을 string 으로 반환하고자 한다. .contributionStatus(String.valueOf(contributionDtos.stream().map(ContributionDto::getAmountEnum).findFirst())) String.valueOf 로 감싸고 findFirst() 를 해준다. findFirst()는 filter 조건에 일치하는 element 1개를 Optional로 리턴한다.

    [java] java stream 으로 합계(sum) 구하기

    Integer memberId = 1; TotalDto dto = TotalDto.builder() .contribution1(contributionDto.stream().mapToLong(ContributionDto::getTotalAmount).sum()) .contribution2(contributionDto.stream().filter(x -> x.getId().equals(memberId)).mapToLong(ContributionDto::getTotalAmount).sum()) .build();

    [sql] functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

    잘못된 쿼리를 사용해서 생기는 오류이므로 서버 설정보다 쿼리로 해결할 수 있도록 하는게 좋다. 쿼리로 해결하기 쿼리 상의 GROUP BY 절을 따로 분리해 준다. 서버 설정으로 해결하기 MySQL 실행 시 only_full_group_by 옵션의 활성화/비활성화를 비활성화 한다. 1. mysql 설정 상태 확인 > select @@sql_mode; 2. mysql 설정이 되있음을 확인 (아래 출력 처럼 only_full_group_by이 나오면 설정이 필요) > | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE, DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 3. my...

    [Java] 월의 말일 구하기

    월마다 말일의 날짜가 달라서 월별 데이터만 가지고 말일의 데이터를 구하고자 한다. Calendar cal = Calendar.getInstance(); System.out.println(cal.getActualMaximum(Calendar.DAY_OF_MONTH));

    [Java] 월별 분기 구하기

    일년 중에서, 현재 달이 몇 분기(사분기)에 속하는지 구하는 방법이다. public Integer getQuarter(){ Calendar cal = Calendar.getInstance(); Integer nowMonth = cal.get(Calendar.MONTH) + 1; // 현재 월 Integer quarter = (int) Math.ceil( nowMonth / 3.0 ); // 분기 return quarter; }

    [mysql] Failed to determine a suitable driver class

    [mysql] Failed to determine a suitable driver class

    spring 에서 db 를 사용하는데 아래와 같은 메리지가 나오면서 db 연결이 안되고 빌드되지 않았다. 에러 메시지 해결방법 application.yml 파일에 mysql 드라이브가 추가 되어 있는지 확인하고 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver build.gradle 에 mysql 를 추가해준다. implementation 'mysql:mysql-connector-java:8.0.30' 버전은 아래 링크에서 확인할 수 있다. maven repository https://mvnrepository.com/artifact/mysql/mysql-connector-java

    YAML (YML) 문법 정리

    YAML이란 사람이 쉽게 읽을 수 있는 컨셉을 가진 데이터 직렬화 양식이다. YAML 'YAML Ain't Markup Language'라는 뜻으로 마크업 언어가 아니라는 뜻을 가지고 있다. Xml, Json 과 같이 사용되는 데이터 포맷이다. 기본 문법 들여쓰기 2칸 혹은 4칸 사용, 탭은 안됨 # : 주석 --- : 문서의 시작 (선택 사항) ... : 문서의 끝 (선택 사항) | : 블록 내 줄바꿈 > : 블록 내의 줄바꿈(new line) 무시 |- , >- : 해당 기호 뒤에 - 를 붙이면 마지막 줄바꿈을 제외하고 인식 # Test Line1\n\nTest Line2\n\nTest Line3\n lines: | Test Line1 Test Line2 Test Line3 # 빈칸 한 줄 # Tes..

    MySQL EXPLAIN 실행 계획 보기 (쿼리 최적화 하기)

    MySQL EXPLAIN 실행 계획 보기 (쿼리 최적화 하기)

    사용이유 MySQL 쿼리를 실행할 때 최적화 계획을 세운다. 이러한 계획은 실행계획이라고 하는데 Explain 키워드를 사용해 실행계획에 대한 정보를 확인할 수 있다. 실행계획을 통해 문제가 발생하는 쿼리문을 이해하고 어떻게 최적화할지에 대한 인사이트를 제공하는 도구가 될 수 있다. 사용법 select문 앞에 explain 을 붙여서 사용한다. EXPLAIN SELECT * FROM table_name EXPLAIN SELECT * FROM table_name WHERE table_no = 1 explain을 사용해 쿼리문을 실행하면 아래 이미지와 같은 컬럼을 확인할 수 있다. 컬럼 설명 id : 쿼리 안에 있는 각 select 문에 대한 순차 식별자이다. 만약 하나의 select 문에서 여러 개의 테이..

    [PHP] PHP 값이 배열 안에 존재하는지 확인하기 in_array()

    배열안에 값이 존재하는지 확인하고자 하는데 in_array() 함수를 사용하면 된다. in_array(확인할 값, 배열) $array_result = array("a","b","c","d"); $data = "a"; in_array($data, $array_result); in_array 의 결과는 true, false 로 출력된다.

    [Linux] unzip: command not found - unzip 설치하기

    압축된 파일을 풀려고 하는데 zip 프로그램이 설치되어 있지 않아서 다음과 같은 에러가 나왔다. 해결 방법 zip 파일을 설치해주면 된다 # Ubuntu sudo apt-get -y install unzip # CentOS sudo yum install -y unzip