반응형
Querydsl 로 db에서 데이터를 가져오는 로직이 있는데, left join 을 여러번해서 데이터를 가져오다보니 쿼리가 10초 이상 걸려서 db 커넥션 타임아웃이 나는 문제가 발생하여... 이를 개선하는 과정에서 querydsl projection 에서 subquery를 사용하기로 했다. NumberPath bCounts = Expressions.numberPath(Long.class, "bCounts"); QAEntity aEntity = QAEntity.aEntity; QBEntity bEntity = QBEntity.bEntity; // left join 한 table Projections.bean( AEntity.class, aEntity.id, aEntity.name, aEntity.age,..
일반적으로 리스트를 생성하고 사용할 때 new ArrayList() 를 관습적으로 사용한다고 들었고 그렇게 사용했다. 왜 그렇게 사용하는지 궁금해서 찾아봄 Array 는 고정 길이 자료구조이지만 ArrayList 는 가변 길이 자료구조 고정 길이 자료구조를 사용할 때는 Array 가 메모리 측면에서 이득이 있다고 한다. ArrayList는 List 인터페이스의 구현체라서 List 의 메소드를 사용할 수 있음 그렇다면 다른 List 구현체보다 ArrayList 를 사용하는 이유는? 일반적으로 비교되는게 LinkedList 인데 LinkedList 는 doubly linked List 이기 때문에 삽입, 삭제가 빠르다 대신 읽는 속도는 ArrayList 보다 느림 ArrayList : O(1) LinkedL..
오늘 작성한 글은 "오늘" 어제 작성한 글은 "어제" 그 이전에 작성한 글은 MM/dd 형식으로 표현해주고 싶었다. 가지고 있는 데이터는 LocalDateTime 이었는데 이를 이용해서 표현해주었다 // 주어진 시간 데이터 LocalDateTime localDateTime // 현재 시간 (서울 기준) LocalDate now = LocalDate.now(ZONE_SEOUL); // 주어진 시간 데이터 서울 기준 변환 LocalDate zonedTime = localDateTime.atZone(ZONE_SEOUL).toLocalDate(); if (now.isEqual(zonedTime)) { return "오늘"; } else if (now.minusDays(1).isEqual(zonedTime)) {..
xml 파일에서 Button 에 onClick 이벤트를 설정해준다 setEnabled(false); 를 이용할 것이므로 "disabled"로 설정해주었다 그리고 나서 페이지에 맞는 .java 파일에서 disabled 이벤트를 수행할 함수를 생성한다. // onCreate 함수 바로 밑에 만들면 된다 // View를 import 해서 매개변수에 View를 쓸 수 있게 한다 public void disabled(View view1) { // disabled 함수 발생시 setEnabled 메소드를 false가 되도록 한다 view1.setEnabled(false); // Button 을 import 해서 Button 을 쓸 수 있게 하고 view1을 Button 으로 캐스팅한다 // 그래야 button의 메..
문제 설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 4 이상, 20이하인 문자열입니다. 입출력 예 phone_number return "01033334444" "*******4444" "027778888" "*****8888" 먼저 string 값을 배열로 옮겨 놓고 변환하면 되겠다 생각을 했는데, 배열로 변환하는 문법을 몰라서 찾아봤다 toCharArray()를 쓰면 되는데, 굳이 int나 string으로 바꾸지 않은 이유는 int로 바꾸면 *로 바꾸..
처음으로 프로그래머스 문제를 풀어보았다 문제 설명 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 이상, 길이 8 이하인 문자열입니다. 입출력 예 s return "a234" false "1234" true 문제를 잘 읽어야 하고 조건도 빼먹으면 안된다. java는 잘 모르기 때문에 문자열을 char로 나눠주는 문법을 찾아보면서 풀었다 // 기본 함수 세팅이 이렇게 나온다 class Solution { public boolean solution(String s) { // 먼저 주어진 string을 char로 나눠줄 것이기 때..