분류 전체보기 312

Ubuntu 20.04) 스크린샷 저장 폴더 변경

Intro 우분투에서 스크린샷을 찍을때 기본 저장 폴더는 /home/사용자/Pictures 입니다. 하지만 해당 경로는 스크린샷을 찍을 때 외에는 들어갈 일이 없기 때문에 관리하기가 번거로운데요. 스크린샷 저장 폴더를 원하는 폴더로 변경 하고자 합니다. 특히 저는 Dropbox에 바로 저장하도록 해서 스크린샷을 찍었을 때 다른 디바이스와 빠르게 공유하며 작업 하는데 스크린샷의 공유에 들어가는 번거로운 작업들이 줄어들어 매우 만족스럽습니다. Screenshot Locations 설치 아래의 링크에서 Screenshot Locations 라는 GNOME Extention을 설치하면 매우 편하게 필요할 때 마다 스크린샷의 저장 경로를 변경 할 수 있습니다. https://extensions.gnome.org/..

IT Computer/Linux 2022.01.25

IntelliJ IDEA) Path Variable 설정으로 VM Argument 저장해두기

Intro 웹 어플리케이션을 개발 하다보면, 외부 API를 사용해야 할 때가 종종 있습니다. 거기에 추가로, 드물기는 하지만 호출을 위한 API KEY가 특정 IP에 종속된 경우가 존재합니다. 그럴 경우에는 개발환경에서도 키를 하나 발급받아서 따로 사용하는게 가장 이상적이기는 하지만.. 그게 현실적으로 어려운 경우가 많습니다. API 키 발급 조건이 까다로울수록 더더욱 그렇습니다. 그럴 경우에 저는 보통 Dynamic Proxy를 활용하는 방향을 택합니다. 그러면 어플리케이션에서 외부 API를 호출 할 때에, 해당 프록시 서버의 ip 주소를 통해 요청되기 때문에 특정 IP Address에 종속되어 있는 API 키라고 해도 사용 할 수 있습니다. 자바 어플리케이션에서 프록시 서버를 통해 연결하는 방법에 대..

Java) 컬렉션이나 배열같은 참조 변수의 캡슐화

Intro 행정안전부 소프트웨어 개발보안 가이드 https://www.mois.go.kr/frt/bbs/type001/commonSelectBoardArticle.do;jsessionid=TjAX2IwVk6hpONx8dKSZ4VTj.node10?bbsId=BBSMSTR_000000000015&nttId=88956 지난 주에 행정안전부의 소프트웨어 개발 보안 가이드를 읽다 보니 꽤나 인상적인 부분이 있었습니다. 자바의 캡슐화에 대해 단순히 private으로 변수를 생성하고 그에대해 Setter만 막아 두면, 해당 변수는 외부에서 변경이 불가능 하다고 너무나도 당연하게 여기고 있었는데 해당 문구를 보고 잠깐 고민을 해보니 자바의 캡슐화에 대해 너무 안일하게 생각하고 있었구나 싶었습니다. 캡슐화의 허점 Pub..

Programming/Java 2022.01.23

Leetcode) 소개 및 풀이 코드 Github에 자동 커밋방법

Intro 개발공부를 시작 한 이후로 오랜 취미중 하나였던 온라인 게임을 그만 두었습니다. 사실 온라인 게임을 오래동안 해 왔던 이유는, 그 자체가 재밌다는 이유도 조금은 있었지만 그보다는 주로 무료한 시간을 달래기 위함이었습니다. 그러면서 게임이라는 가상 공간에서 모르는 사람들과 만나 협력하고 경쟁하여 승리를 따냈을 때의 그 달콤한 성취감에 중독되어서 시간이 남는다. 무료하다. 이 두가지 조건이 만족될때면 어김없이 게임을 하곤 했었습니다. MAY 2020. Queenstown, New Zealand 퇴근후 집에 오면 어김없이 이런 열악한 환경에서도 리그오브레전드 혹은 롤토체스를 즐겨 하곤 했습니다. 그러다 한국에 돌아와 2020년 11월. 개발 공부를 시작 한 이후로 게임을 하는 첫번째 조건이었던 시간..

Chrome) 즐겨찾기 아이콘 변경 하기

Intro 위의 제 Chrome 브라우저에서 보이는 것 처럼, 저는 Bookmark bar에 추가해 둔 사이트가 제법 많아지면서, 즐겨찾기 사이트들의 이름을 지우고 아이콘만 남겨 사용 하고 있습니다. 하지만 favicon이 없는 웹사이트를 즐겨 찾기에 추가 하는 경우에는 아래 보이는 것 처럼, 지구본 모양(?) 아이콘이 남게 되는데요 아이콘만으로 웹사이트를 구분하는 경우에는, 이렇게 아이콘이 겹치는 몇개가 생겨버리면, 어떤 사이트인지 한눈에 알 방법이 없습니다. Bookmark Favicon Changer 이 경우 Chrome 익스텐션을 활용 해서 즐겨찾기에 있는 favicon을 변경 할 수 있습니다. 설치 https://chrome.google.com/webstore/detail/bookmark-fav..

Git) 이전 커밋에 덧붙이기 amend

Intro Commit을 하다 보면 적당한 크기로 커밋하는게 쉽지 않다는 걸 많이 느낍니다. 커밋 하나하나의 크기가 너무 작으면, 후에 커밋을 추적하기가 어렵고 커밋의 크기가 너무 크면 중간에 문제가 생기거나 실수를 했을때 돌아가야 할 지점이 너무나도 멀다는 문제가 있습니다. 커밋 하나에 잡다한 여러가지 연관성 없는 기능에 대한 코드가 함께 있어도 코드리뷰를 하는데 불편함을 초래 합니다. Commit 을 하고 보니 이게 빠졌네 이건 모두가 한번씩 있는 경험이 아니고 거의 몇일에 한번씩 혹은 커밋이 잦은 편인 저의 경우에는 거의 매일 겪는 일 입니다. 특히 간단한 오타 수정이 가장 흔한 상황 인데요. 그렇다고 오타를 수정 했는데 커밋을 안하고 다음 커밋까지 미루기도 곤란하고, 오타 하나만 달랑 수정하는데 ..

Development/Git 2022.01.14

Linux) Oracle VM Virtual Box 창 이동 안될때

Intro Oracle VM Virtual Box는 InnoTek 에서 개발한 가상머신 소프트웨어 입니다. Sun Microsystems가 2008년 초 InnoTek을 인수하고, 2년 후인 2010년 1월 오라클이 썬 마이크로시스템즈를 인수 하며 오라클이 배포하게 되었습니다. 대부분의 OS를 설치 해 사용 할 수 있으며, 또한 대부분의 OS에 설치가 가능하기 때문에 널리 사용 되고 있습니다. 사실, Linux 에서 가상 환경으로 Windows를 구동 하기 위해 여러가지 가상머신 소프트웨어를 사용 해 봤는데 VM Virtual Box가 가장 괜찮아서 IE 호환성 테스트 등이 필요할 때 마다 꾸준히 사용 하고 있습니다. 창 크기 조절 및 이동 증상 사용하면서 한가지 아쉬운게, 이상하게 창 이동 및 크기 조..

IT Computer/Linux 2022.01.14

Linux) KIME 한글 입력기

우분투 IntelliJ IDEA 한글 입력 문제 해결하기 Intro 한글을 입력 하기 위해서는 한글 입력기가 필요합니다. 다른 여타의 언어와는 다르게 한글은 초성, 중성, 종성으로 이루어지는 특이한 구성을 가지고 있으며, 종성이 있을때도 없을때도 있을 뿐만 아니라 자음이나 모음 각각 마저 여러개의 자음 혹은 모음이 모여 하나의 초성이나 중성 혹은 종성이 되는 경우가 있기 때문에 컴퓨터 입장에서는 참 입력을 받기 난해한 문자 입니다. 다 라는 입력을 했을때, 이것이 입력이 끝난 것인지 혹은 닭을 입력 하기 위한 과정일 뿐인지 컴퓨터는 물론이고 한국어를 모국어로 사용해온 사람이라도 예측 하기는 어렵습니다. 이로인해 수많은 운영체제에서는 한글 끝 글자 문제가 고질병이고, 그나마 마이크로소프트의 Windows ..

IT Computer/Linux 2022.01.14

Git) 실수로 삭제한 Branch 복구하기

Intro Pull Request를 기다리다가, merge가 되었다고 착각하고 커밋 했던 브랜치를 삭제해 버렸습니다.. 로컬과 remote 모두에서 삭제 했기 때문에 원래대로라면 데이터를 날려먹은게 맞지만, 다행히도 복구하는 방법이 있습니다. branch 생성 및 삭제 같은 상황을 만들기 위해 branch를 생성 해서 커밋 한 후 삭제 하겠습니다. 이미 branch가 삭제되어 복구가 필요한 분은 아래로 스크롤을 내려 삭제한 branch 복구 를 확인하시면 됩니다. branch 생성 및 commit & push dev 라는 branch를 만들어서, gitbranch.txt 파일을 추가해 commit 및 push 까지 마친 상태입니다. 이 상태에서는 dev에 커밋이 되었지만, 해당 사항이 master에 까지..

Development/Git 2022.01.12

DBeaver) CSV 파일을 데이터베이스로 importing 하기

Intro 엑셀 파일을 데이터베이스로 간편하게 이동하고 싶을 때가 있습니다. 혹은 필요한 데이터들을 csv 파일로 생성 해 두었는데, DB에 한번 에 넣고 싶을 때도, DBeaver를 이용하면 아주 간단하게 데이터를 밀어 넣을 수 있습니다. Excel 파일을 csv 파일로 예를 들어 이런 엑셀 파일이 있을 때에, 간단하게 csv 파일을 생성 할 수 있습니다. 제가 사용중인 Libre Office를 예를 들면 File > Save As... 를 누릅니다. 엑셀에서도 방법은 같습니다. 그럼 어떤 파일로 저장할지 하단에 설정 하는 셀렉트 박스가 있는데요, 거기에서 .csv파일을 선택 해 줍니다. 그러면 아래와 같이 names.csv 파일이 생성 됩니다. CSV 파일 임포팅 CSV DB 생성 Database 목..

일간에러 2022-01-11 remaining connection slots are reserved for non-replication superuser connections

Postgres 에러 증상 remaining connection slots are reserved for non-replication superuser connections 커넥션이 충분히 있는데도 커넥션을 얻지 못함. iRods에서도 커넥션을 얻지 못하니 파일 업로드를 하다가 빈번히 Connection reset이 되어 버림 원인 커넥션이 말라버려서 더이상 제공할 커넥션이 없음. 해결 보통은 커넥션 수를 늘리는 방법으로 해결하는 경우가 많은데 max_connections 를 먼저 확인 해 본다. select * from pg_settings where name='max_connections'; max_connections가 100으로 세팅 되어 있는데, 이 경우에는 운영중인 서버도 아니고..

웹 브라우저 애드온 추천: Momentum

Intro 인프런에서 영한님의 강의를 듣다보면 크롬 브라우저를 켜실 때 마다 좋은 풍경 그림이 보입니다. 시간도 대문짝만하게 나와서 한번씩 지금 시간을 환기 할 수도 있고 해서 괜찮아 보여 이번에 저도 설치 해서 사용 해 보았습니다. Chrome과 Firefox에 각각 설치해 두고 사용을 하고 있는데, 워낙 괜찮다고 느껴져서 혹시 모르는 분들이 계시면 권유해드리고 싶었습니다. Momentum https://momentumdash.com/ 해당 플러그인을 찾아 보니 Momentum 이라는 이름의 Extention 이었습니다. 포스팅을 작성 하며 확인 해 보니 Safari에서도 사용 가능한걸 확인해서, Chrome과 Firefox에 이어서 Safari에도 설치하려고 합니다. 설치 Chrome 아래의 링크에서..

Ubuntu) Terminator 설치 및 사용법

Intro Terminator는 자바로 작성된 오픈소스 터미널 에뮬레이터 입니다. Windows, MacOS, Linux 및 기타 Unix 시스템에서 모두 사용이 가능 합니다. 보통 맥북에서는 iTerm2를 사용하는데요, 우분투 기본 터미널이 좋긴 한데 창 분할에서 불편함을 느껴 설치했습니다. Install apt install로 간단하게 설치 할 수 있습니다. sudo apt install terminator 설치는 금방 됩니다. 설치를 완료 하고 Terminator를 실행 해 봅니다. 폰트도 깨지고 디자인이 엉망이 되어 있지만 일단 실행은 됩니다. 설정 적당히 까만 화면을 우클릭 하고 Preferences 버튼을 눌러 설정 화면에 진입합니다. 설정을 Global에서 바꾸도 되지만 그럴 경우에는 Pro..

IT Computer/Linux 2022.01.07

인코딩 깨진 한글 파일 이름 복구하기

Intro 파일들을 주고 받다보면, 사용하고 있는 운영체제와 상관 없이 한글 파일명이 알아볼 수 없게 깨져있는 경우가 종종 있습니다. 특히 인터넷에서 파일을 다운받았을 때 그런 일이 많은데.. 모두 아시는 것 처럼 인코딩 문제 입니다. 파일명이 중요하지 않다면 그냥 한번 열어보고 말면 되지만, 파일명이 중요해서 꼭 알아야 할 때는 굉장히 절망적입니다. 다행인 것은 단방향 암호화처럼 원본 데이터가 손상된게 아닌 단지 인코딩문제로 못 알아보는 것 이기 때문에 다시 디코딩을 해 주면 원래의 파일 명을 알아 낼 수 있습니다. 원인 왠만한 인코딩 문제는 이렇게 못 알아 볼 정도는 아닌데. euc-kr로 인코딩 되어 있는 경우에는 이런 상황이 됩니다. 요즘에는 흔하게 일어나지 않는데, 오래된 소프트웨어를 사용하다 ..

Development/DevOps 2022.01.06

일간에러 2022-01-04 iRODS:-24000

iRods The Integrated Rule-Oriented Data System https://irods.org/ 아마 대부분 처음 들어보셨을 거라 생각해 간단한 설명을 붙여보려 합니다. iRODS는 전세계의 연구, 기업, 정부기관등이 사용하는 오픈소스 데이터 관리 소프트 웨어 입니다. mission critical 한 환경에서의 production 레벨을 목표로 릴리즈 되었으며, 데이터 저장소 리소스를 가상화하기 때문에 사용자가 데이터가저장된 디바이스와 상관 없이 데이터를 다룰 수 있게 해 줍니다. 사실 한국어로 된 레퍼런스는 논문 한두개를 제외하면 전무하기 때문에 영어로 자료를 검색 해야 하는데, 그마저도 잘 정리된 도큐먼트가 없기 때문에 정보를 얻으려면 주로 Github에 올라온 issue들을 ..