JAVA String, StringBuffer, StringBuilder 정리

개발/Java 2021. 10. 7. 08:20

자바 string buffer와 string builder => multi thread 지원 차이 String vs StringBuffer/Builder String은 immutable( 불변 )성을 가짐 String Buffer & Builder는 mutable( 가변 )을 가짐 StringBuffer vs String Builder StringBuffer는 동기화 키워드를 지원하여 멀티쓰레드 환경에서 안전함 StringBuilder는 동기화 미지원으로 단일 쓰레드의 성능은 StringBuffer보다 뛰어남 String : 문자열 연산이 적고, 멀티쓰레드 환경에 적합 StringBuffer : 문자열 연산이 많고, 멀티쓰레드 환경에 적합 StringBuilder : 문자열 연산이 많고, 단일쓰레드 환경..

[react-csv] ReactJS에서 원하는 형식대로 CSV 파일 export하기

개발/ReactJS 2021. 10. 6. 08:20

어드민에서 유저 정보와 게시글 정보를 한 개의 CSV 파일로 export하여 다운로드 가능하게 해야했다. react-csv 와 react-query를 활용하여 다운로드 버튼 클릭시 CSV 파일이 지정한 형식대로 생성되어 다운로드하는 방식으로 하였다. react-csv Build CSV files on the fly basing on Array/literal object of data www.npmjs.com DownloadButton.tsx를 아래와 같이 함수형 컴포넌트로 구성하였다. export const DownloadButton = () => { const { data: users } = useQuery('/admin/users', fetcher); // admin api에서 유저 정보를 가져옵니다..

Article Thumbnail
[PostgreSQL] LIKE문과 ILIKE문의 차이

개발/PostgreSQL 2021. 10. 5. 08:20

PostgreSQL의 경우, MySQL과는 다르게 대소문자를 구별하는 case-sensitive한 특성을 가진다. 이전 포스트에서 createQueryBuilder와 SQL문의 LIKE를 사용하여 검색 API를 만들었다. 해당 포스트에서 LIKE문을 사용하였는데 데이터베이스를 PostgreSQL을 사용하고 있어 대소문자를 구분해서 검색하려면 ILIKE를 사용해야한다. LIKE문과 ILIKE문의 차이점은 LIKE문의 경우, 대소문자를 구분하지 못하지만, ILIKE문을 활용할 경우, 대소문자를 구분한다.(PostgreSQL 한정)

[TypeORM] SQL문 LIKE를 createQueryBuilder를 통해 사용하기

개발/TypeORM 2021. 10. 2. 08:20

@Query를 활용하여 ?word={검색 단어}의 형식으로 검색 API를 구성하였다. // story.service.ts async findByWord(word: string) { return await this.repository.find({ where: [{ title: word }], select: ['id'], }); 위의 코드와 같이 구성하면, 해당 검색 단어와 일치하는 결과'만' 검색할 수 있다. 예를 들어 스토리의 제목이 "빨간 의자를 포함된 스토리" 이면 "빨간 의자" 혹은 "스토리"의 단어로는 해당 스토리가 검색되지 않는다. 검색 단어를 포함하고 있는 검색 결과를 얻기 위해서는 SQL문의 LIKE를 사용하면 된다. NestJS와 TypeORM을 사용하고 있기 때문에 TypeORM의 cre..