본문 바로가기

dev

(261)
파일 디렉토리 rwx 차이 리눅스 파일과 디렉토리의 rwx의 차이는 다음과 같습니다. 권한 파일 디렉토리 r(읽기) 파일 내용 볼 수 있는 권한 디렉토리 내부를 볼 수 있는 권한 w(쓰기) 파일 내용 수정할 수 있는 권한 디렉토리 내부에 파일을 생성하거나 수정할 수 있는 권한 x(실행) 파일 실행할 수 있는 권한 디렉토리 내부에 접근할 수 있는 권한 여기서 눈여겨서 봐야할 점은 디렉토리의 r(읽기) 권한과 x(실행) 권한입니다. 디렉토리 내부를 볼 수 있는 것과 접근할 수 있는 차이가 헷갈리기 때문입니다. 위의 화면을 보면 navy계정으로 user 디렉토리 내부를 읽거나 접근하려고 합니다. 하지만 접근권한이 없기 때문에 거부된 것을 확인할 수 있습니다. (정확히 말하면 user계정을 제외한 나머지 계정은 어떠한 권한도 없으므로) ..
Arrays Collections sort 자바 Arrays와 Collections에 sort라는 api가 있습니다. Arrays의 sort는 배열을 정렬하고 Collections의 sort는 Collection을 정렬합니다. (Collection - List, Map, Set) 먼저 Arrays의 sort 예시부터 보겠습니다. 위 화면의 빨간색 상자로 표시한 부분이 String 배열을 오름차순으로 정렬하고 있습니다. 11번째 라인 "return o1.compareTo(o2);"은 o1과 o2을 비교해서 오름차순으로 정렬한다는 뜻입니다. 반대로 내림차순으로 정렬하려면 "return o2.compareTo(o1);"으로 수정하면 됩니다. 위의 compare 메소드 리턴값에 대해 아래와 같이 정리할 수 있습니다. --------------------..
chart map svg 코로나 라이브 페이지에 접속하면 다음과 같은 화면을 볼 수 있습니다. 화면의 지도는 네이버 지도나 카카오 지도가 아닌 차트 라이브러리로 그릴 수 있습니다. 차트 라이브러리는 많은데 그중에 저는 D3 라이브러리로 그려보겠습니다. 예제 코드를 보면 첫번째 블럭은 지도를 그리기 위한 초기 정보를 세팅하고 있습니다. (지도 svg 대상 엘리먼트, 배경 색상, 지도 오프셋, 지도 스케일, 중심 좌표) 두번째 블럭은 광역단위 지도 좌표 데이터입니다. (광역단위 좌표 데이터 및 표출 색상) 세번째 블럭은 실제 지도를 그리고 있습니다. 앞에서 작성한 대로 잘 표출되고 있습니다. 딱히 어렵지 않아서 금방 개발할 수 있습니다. 참고 필요하시면 예제 파일 다운받으시면 됩니다.
DBeaver query plan DBeaver에서 쿼리를 실행할 때 해당 쿼리가 효율적인지 확인하는 방법이 있습니다. "실행계획 보기"를 이용하면 쉽게 확인할 수 있습니다. 예시 join 쿼리의 실행 계획을 조회하기 위해 오른쪽 마우스를 클릭해서 "실행 -> 실행계획 보기" 를 선택합니다. 팝업 화면이 표출되는데 "확인" 버튼을 클릭합니다. DBeaver 하단에 실행계획을 조회할 수 있습니다. 각 항목에 대해 설명드리면 Node Type: sql을 실행시키는 각각의 단계 Entity: 조회하는 테이블 Cost: sql 실행하는 데 걸린 비용 Time: sql 실행하는 데 걸린 시간 Rows: sql 실행하면서 가져오는 row 수 Condition: sql 실행 조건문 이렇게 생각하시면 될 거 같습니다. 아니면 "EXPLAIN ANALY..
dbeaver ERD 조회 dbeaver에서 간단히 ERD 조회하는 방법이 있습니다. dbeaver에서 조회하려는 데이터베이스의 스키마를 더블클릭하고 엔티티 관계도 탭을 선택하면 해당 스키마의 ERD를 조회할 수 있습니다. starUml로 ERD를 그리는 시간이 부족하면 위와 같은 방법으로 하는 것도 나쁘지 않을 거 같습니다.
tomcat rwx 설정 운영 WAS 서버에서 파일을 읽기, 쓰기를 할 때 간혹 파일을 접근할 수 없다는 에러가 뜨는 경우가 있습니다. 개발할 때는 문제없었는데 막상 WAS 서버에서 실행할 때 에러가 발생하는데 이런 문제의 원인은 WAS의 rwx 설정이 잘못되었기 때문입니다. rwx 설정을 바꾸려면 tomcat의 bin 디렉터리 밑에 catalina.sh을 수정해야 합니다. umask를 사용자 목적에 맞게 수정하면 되는데 디렉터리-777 / 파일-666에서 umask 값을 빼면 해당 디렉터리 및 파일에 접근권한이 설정됩니다. 별 것 아닌거 같아도 막상 WAS에서 디렉터리나 파일을 새로 생성한다면 umask 설정 생각해야 할 거 같습니다.
tcping 설치 리눅스에서 기본적으로 서버 포트 확인할 수 있는 명령어가 있는데 윈도우는 그렇지 않습니다. (telnet, echo 등등) 하지만 tcping을 사용하면 이런 문제점을 해결할 수 있습니다. 먼저 구글에서 tcping 검색해서 다운받습니다. 다운받은 tcping.exe 파일을 아래의 경로로 복사합니다. 파일 복사하고 나면 바로 cmd로 tcping을 사용할 수 있습니다. 예시로 로컬에 있는 Postgresql 서버로 테스트해보겠습니다. 포트가 열려있으면 위의 화면처럼 "Port is open"이라는 메시지가 출력됩니다. tcping 자세한 사용방법 "--help" 옵션을 사용하면 됩니다. 아래는 tcping 다운로드 링크입니다. https://www.elifulkerson.com/projects/tcpin..
TooManyResultsException 에러 스프링에서 DB 데이터 조회하다가 다음과 같은 에러가 발생했습니다. 위와 같은 에러가 발생한 이유는 해당 Mapper 쿼리가 조회하는 row 개수가 2개 이상이기 때문입니다. 즉 Mapper 쿼리는 1개의 row만 조회하는 것으로 예상했는데 2개 이상 row가 조회돼서 이런 에러가 발생한 것입니다. 기존의 Mapper가 1개의 row만 받는 것으로 되어있다면 2개 이상의 row를 받을 수 있도록 다음과 같이 수정해야 합니다.