전체 글 45

[Mybatis] if 문자열 검사 시 오류

mybatis를 사용하던 도중에   이렇게 문자열 비교를 했는데, 적용이 되는 것 같지 않았다.왜 그런지 이유를 알아보자! Mybatis에서는 변수가 자바 객체처럼 사용되기 때문에 자바에서 사용하는 문자열 비교 메소드를 이용하면 된다.""는 문자열이고, ''는 문자이다. equals로 비교할 때는 "문자열"로 처리해도 된다. -> 이런식으로 처리해주면 된다. 그냥 test = '조건~~' 이렇게 쓰자!!!

database 2024.09.03

엑셀 생성 시 셀 병합 및 스타일 적용

apache poi로 엑셀 셀 병합하는 방법과 셀 스타일 적용하는 방법을 알아보겠습니다! 셀 병합셀을 병합할 때는 CellRangeAddress(), addMergedRegion()을 사용합니다.sheet.addMergedRegion(new CellRangeAddress(첫행, 마지막행, 첫열, 마지막열);  셀 스타일HSSFFont를 생성하여 HSSFCellStyle에 적용, HSSFCellStyle를 생성하여 cell에 적용시켜줍니다.HSSFCellStyle style = workbook.createCellStyle();// 스타일 설정HSSFFont font = workbook.createFont();// 폰트 설정style.setFont(font);cell.setCellStyle(style);  ..

back-end/java 2024.08.27

엑셀 다운로드 코드 개선....

엑셀 파일을 만들 때 셀 하나하나 스타일을 정해주고, 값을 넣어줘야해서 코드가 점점 지저분해지고, 반복되는 코드들이 많아지기 시작했다.. 이를 최대한 개선해보고자 한다! 지금 내가 생각하는 문제점은1. 행을 생성할 때마다 열 번호를 초기화 해줘야한다. 코드 반복 발생2. 스타일을 입히기 위해서 셀을 합칠 때 모든 셀에 스타일을 적용시켜줘야한다. 반복문을 사용하면 코드가 길어진다. 3. 얻은 데이터를 정제해서 셀에 값을 입력해야하는데 그 과정이 추가돼서 지저분해보인다.   양식이 일정하면 반복문을 돌려서 깔끔하게 작성할 수 있을 것 같은데, 정해진 양식대로 하다보니까 복잡해지고 지저분해진 것 같다. 어떻게 해결하지..? 일단 최대한 고쳐보려고 노력했다!1) 기존에 열 번호를 초기화 시켜줘야했던 이유는 셀을..

개발/끄적 2024.08.22

volley를 이용한 통신

예전에 메로나 프로젝트를 진행할 때, 통신 라이브러리로 volley를 사용했었다.그 당시에는 급하게 프로젝트를 완성해야해서 어떻게 사용하는지도 잘 모르고, 예제를 보고 대충 가져다 썼었다.이번에 리팩토링할 때, 어떻게 volley를 사용하고, 간단하게 요청하여 사용할 수 있을지 공부해보려고 한다!  Volley 소개간단한 http 통신을 위해 안드로이드에서 제공하는 http통신 라이브러리이다.  장점네트워크 요청의 자동 예약이 가능하고, 여러 개의 동시 네트워크를 연결할 수 있다.요청 우선순위를 자동으로 관리하고, 비동기식으로 가져온 데이터를 ui에 쉽게 적용할 수 있다.  사용 방법1. 요청 객체를 만들어 요청 큐에 넣어줌2. 요청 큐가 알아서 웹 서버에 요청하고 응답을 받음3. 응답 메서드를 만들어 ..

권한 8진수 표기를 문자 표기로 바꾸기

리눅스,유닉스 권한 표기에서 8진수 표기(ex. 764)를 문자 표기(ex. rwxrw-r--)로 변경하는 방법을 정리한 내용이다. AND(논리곱, &)을 사용하였다. 두 비트가 모두 1일 경우에만 1이 되는 연산이다. 7,6,4를 각각 4,2,1로 AND 연산을 한다.6은 이진수로 110, 4는 100, 2는 010, 1은 001이다.6 & 4 = 110 & 100 = 1006 & 2 = 110 & 010 = 0106 & 1 = 110 & 001 = 000결과값이 0인 경우에 권한이 없는 걸 알 수 있다.  이를 자바 코드로 표현하면public static String permOctToString(String perm) { String[] permNum = perm.trim().split(..

back-end/java 2024.08.13

리눅스 파일 권한

유닉스, 리눅스에는 권한 기능이 있다.사용자들은 자신에게 권한이 주어진 파일만 읽고, 쓰고, 실행을 할 수 있다.  보통 권한을 rwx rwx rwx로 표시하는데, 처음의 rwx는 user 권한, 두번째는 group 권한, 세번째는 other 권한이다.r은 읽기 권한을 의미하고, w는 쓰기, 수정 권한을 의미하고, x는 실행 권한을 의미한다.  허가권을 변경할 때 8진수로 변경하는 방법이 있다.예를 들어, 754로 변경하는 경우를 살펴보자.7은 2진수로 111이다. rwx가 되고, 모든 권한이 있음을 의미한다.5는 2진수로 101이다. r-x가 되고, 읽기, 실행 권한이 있음을 의미한다.4는 2진수로 100 이다. r--가 되고, 읽기 권한만 있음을 의미한다.따라서, 이 파일의 권한은 rwxr-xr--가..

개발/linux 2024.08.13

엑셀 파일 생성 및 다운로드

Apache poi를 사용해서 엑셀에 데이터를 저장하는 방법을 알아보자!poi는 아파치 소프트웨어 재단에서 만든 라이브러리로, 마이크로소프트 오피스 파일을 자바로 읽고 쓰는 기능을 제공한다.  1. 의존성 추가implementation 'org.apache.poi:poi-ooxml:5.3.0'implementation 'org.apache.poi:poi:5.3.0'   2. 주요 메소드1) 워크북 생성XSSFWorkbook wb = new XSSFWorkbook();하나의 엑셀 파일이 된다.  2) 시트 생성Sheet sheet = wb.createSheet("시트명");하나의 엑셀 시트가 생성된다.  3) row, cell 생성int rowCount = 0;int cellCount = 0;Row row..

back-end/java 2024.08.09

Caffeine Cache 사용하기

스프링 공식 라이브러리는 아니지만, 스프링 부트에서도 지원할 정도의 신뢰도 높은 캐시 라이브러리이다.캐시에 항목 자동 로딩, 측정된 시간을 기반으로 캐시 만료, 첫번째 요청이 발생할 때 비동기적으로 새로고침하는 기능을 제공해준다.Caffeine cache는 초당 데이터 처리량에서 우수한 지표를 보여주고 있다. Read와 Write에서 최고의 성능을 보여주고 싶다면 Caffeine cache를 사용하는 것이 좋다.  적용하는 방법을 알아보자!1. dependency 추가 build.gradle에 라이브러리를 추가해준다.implementation 'org.springframework.boot:spring-boot-starter-cache'implementation 'com.github.ben-manes.ca..

spring boot 기본 캐시 사용

✨캐싱db에서 데이터를 가져오지 않고, 캐싱 해놓은 데이터를 가져와서 데이터를 가져오는 시간을 줄일 수 있다.  ✨스프링 기본 캐시스프링 부트 어플리케이션을 실행하면 해당 어플리케이션과 함께 살아있는 캐시 공간을 사용한다. 캐시 공간은 메모리를 차지하기 때문에 많은 데이터를 저장할 수 없다. 1. 종속성 추가하기implementation 'org.springframework.boot:spring-boot-starter-cache' 2. @EnableCaching 설정@EnableCaching을 붙여주면 해당 어플리케이션의 캐싱 기능이 활성화되어 캐싱 기능을 이용할 수 있다.@SpringBootApplication@EnableCachingpublic class TestApplication { public ..