[Android Studio] Unable to find bundled Java version. Try updating or re-installing Android Studio

Android Flutter DEVELOPMENT

flutter 개발을 위해 Android Studio를 설치하고 flutter sdk를 설치하고 flutter doctor을 실행했을 때, 이과같은 에러가 나면서 jre를 인식하지 못했다. 이리저리 검색을 해봐도 해결이 되지 않고, Android Studio 설치 폴더에 들어가보면 jre는 없고, jbr이라는 녀석이 있다. Android Studio Content 디렉토리 내에서 그냥 심볼릭 링크로 jre로 인식시켜주기만 하면 해결 된다.이렇게 간단한 문제였는데, 온갖 삽질을 다 했다..ㅠㅠ

Continue Reading

NGINX 커스텀 에러 페이지 설정

NginX

NGINX 사용 시 404 혹은 403, 500 에러 발생 시 nginx 자체의 default 에러 페이지를 보여주게 된다. 아주 투박하고 멋스럽지 않다. 다른 디자인의 에러 페이지를 보여주고 싶은 경우 다음과 같이 세팅하면 된다. 위와 같이 server 블록 내에 error_page 항목에 status code와 대응하는 파일을 작성해주고, location 블록의 root에 해당 파일의 절대경로를 적어주면 된다.아래는 위의 코드가 적용된 …

Continue Reading

OSX용 USB image writer balenaEtcher

OSX

윈도우 PC에서는 Rufus 등의 프로그램으로 iso 파일을 usb에 write 했었는데, OSX에서는 어찌 해야할지 몰라 검색을 하다보니 아주 깔끔한 balenaEtcher이라는 앱이 있었다. 설치하고 실행시키면 다음과 같은 모습을 볼 수 있는데, 사용 방법도 아주 간단하다.write할 이미지를 선택하고, target device를 선택한 수 Flash!를 누르면 끝! 다운로드 할 수 있는 곳은 다음과 같다.https://www.balena.io/etcher/

Continue Reading

Docker 기본 데이터 디렉토리 변경

Docker IT SERVER

개발용으로 사용중인 서버 메인 디스크 용량이 100%가 되는 바람에(!) 작동이 원활하지 않아서 로그 디렉토리를 확인해보니 로그 용량 문제도 아니고 뭔가 싶어서 확인해보니 docker volumes의 용량이 디스크 대부분을 차지한 것이다. 검색 해보니 기본 데이터 디렉토리를 변경해주면 되는지라 일단 도커 프로세스를 종료시켰다./etc/docker/daemon.json의 내용에 다음과 같이 추가해줬다. 그리고 기본 디렉토리인 /var/lib/docker을 다른 디스크로 위치시켰다.편의상 위의 코드처럼 /docker/data/path라고 하자. …

Continue Reading

[SUBSTRING_INDEX] MYSQL 쿼리로 String 의 특정 위치의 단어만 가져오기

MariaDB, MySQL DB

무슨 말인고 하니…예를들어 주소 관련 테이블이 있고, 주소가 ‘서울시 강남구 역삼동’과 같이 저장되어있을 때, 마지막의 ‘역삼동’ 이라는 단어만 추출하고 싶을 때, 사용할 수 있는 방법이다. SELECT SUBSTRING_INDEX(TRIM(address), ‘ ‘, -1) FROM addresses; SUBSTRING_INDEX을 이용하면 string을 특정 문자로 split한 후 특정 index에 해당하는 문자를 반환할 수 있다.

Continue Reading

RUST Cargo란?

Rust DEVELOPMENT IT

러스트에서 Cargo는 Nodejs의 npm, yarn이나 Java의 maven, gradle, PHP의 composer등과 같은 패키지 관리자이며 빌드 시스템이기도 하다. Cargo를 이용하면 의존성 추가하기가 쉽다. (ㅋㅋㅋ) 카고 버전 확인 카고 프로젝트 생성 위와같이 프로젝트를 생성하면 프로젝트 디렉터리 내에 Cargo.toml, src 디렉터리가 있으며, src내에는 main.rs 가 기본적으로 생성되네? TOML : Tom’s Obvious Minimal Language Rust에서 코드의 패키지는 crate라고 부른다.카고 프로젝트는 …

Continue Reading

ssh tunneling을 이용해 local port로 원격 DB에 접속하기

LINUX OSX

여러가지 이유로 DB에 바로 접속하지 못하고 SSH tunneling을 이용해야 하는 경우가 발생하게 되는데, Datagrip등의 DB Handling Tool에서는 자체적으로 ssh tunneling을 지원하지만 로컬에서 테스트할 때 사용하는 개발 언어에서 공식적으로 지원하지 않는다면 별도의 라이브러리를 사용한다던가 하는 귀찮음이 발생한다. 라이브러리 사용 시 connection이나 query execution등의 구문들도 다 바꿔주어야하니 여간 귀찮은게 아니다. (물론 connection과 execution등을 wrapping 해두었다면 한두군데만 수정하면 …

Continue Reading

ajax로 받아온 CSV 데이터 파일로 저장하기

DEVELOPMENT JavaScript IT jQuery

바로 이전 포스팅에서는 Spring Boot에서 CSV 출력하는 방법을 포스팅 했는데, 이번에는 받아온 response데이터를 JS 를 이용하여 파일로 저장하는 방법을 간단히, 코드만, 작성해본다. ajax call은 jQuery를 이용했지만 파일 저장부분은 javascript 를 이용했기에 axios를 이용하든 뭘 이용하든 간에 CSV 데이터를 파일로 저장시에 활용 가능한 코드이다.

Continue Reading

Spring Boot에서 CSV 출력 기능 만들기

Kotlin Spring Boot DEVELOPMENT IT

테이블의 데이터를 CSV로 출력할 일이 생겨서 이리저리 검색하다 알게된 내용을 간단히 정리한다. 이 정리는 Kotlin + Gradle 기반으로 진행한다. Dependency CSV Generator Class 위와 같이 CSV Generator의 dataToCSV 메소드에서 전달받은 dataList의 내용을 루프를 돌면서 item에 매핑하여 csvPrinter.printRecord에 넘겨준다. Controller 컨트롤러에서는 위와같이 /csv로 들어온 request에 따라 testDataService의 데이터를 모두 읽어와서 dataList에 저장하고, 이녀석을 CSVGenerator.dataToCSV에 response.writer과 함께 …

Continue Reading