
Search Everywhere Press Shift twice to search for files, actions, symbols, UI elements, Git branches and comments across your project. Pressing double Shift again, will extend the search to non-project items. Use tabs or direct shortcuts ⌘ O for classes, ⇧ ⌘ O for files, ⌥ ⌘ O for symbols, and ⇧ ⌘ A for actions to narrow your search results. IntelliJ의 편한 기능중 하나가 Shift를 두번 눌러 원하는 거의 모든 것을 검색할 수 있..

Local History Local History lets you track all changes to files, classes, methods, or any code fragments and roll back to any stable point if necessary. To view local history, from the main menu, select File | Current File | Show History. 로컬 히스토리를 사용하면 파일이나 클래스, 메서드 등의 코드를 원하는 시점으로 돌릴 수 있다. 그런데... 현재 windows intellij 2023.1.2 버전에서는 로컬 히스토리의 메뉴 경로가 Tip 과는 다르다.

Show file structure You can quickly navigate within the current file with Ctrl F12 (Navigate | File Structure). File structure shows the list of members of the current class. To navigate to an element, select it and press Enter or F4. To easily locate an item in the list, start typing its name. Ctrl + F12 키를 클릭하면 해당 클래스의 파일 구조를 빠르게 살펴볼 수 있다.

Move statements up and down The Code | Move Statement Up/Down actions are useful for reorganizing code lines, for example for bringing a variable declaration closer to the variable usage. Select a code fragment and press Ctrl Shift ↑ or Ctrl Shift ↓ . When nothing is selected in the editor, the line at the caret position will be moved. 마우스 커서가 위치한 영역의 위/아래로 이동 시킨다. 마우스 커서가 메서드명에 위치해 있으면 해당 메서드를 ..

프리랜서들이 5월에 종합소득세(이하 종소세) 신고를 할때 간혹 알지 못하는 근로소득이 잡히는 경우가 종종 있다. (인터넷을 찾아보니 생각보다 꽤 많다.) 이럴 때 받지도 않은 월급이 소득으로 묶여 세금이 올라가는 상황이 발생하므로 이것을 처리 하는 방법에 대해서 간략히 적어 본다. 근로소득 부인확인서 제출 홈택스에 근로소득 부인확인서를 제출하면 된다. 방법은 개인 계정으로 접속하여 메인 페이지를 살펴 보면 아래과 같이 '본인 소득내용 확인정정(근로인적용역)' 이라는 메뉴가 있다. 위 메뉴를 클릭하여 들어가면 아래와 같이 해당 귀속년도에 두 가지 간이지급명세서가 잡히는 것이 보이는데 나의 경우 (거주자의 사업소득) 간이지급명세서 였다. 해당 금액을 클릭해 보자 받은 돈이 없으니 '변경신청지급액' 에 0원을..
일을 시킬때는 권한을 함께 주어야 한다. 당연한 말처럼 들리지만 그렇지 않은 경우가 더 많다. 그 일의 결과에 대한 책임만 주어질 뿐, 그 일을 하는데 필요한 권한은 주지 않는다. 얼마 전 일이다. 현재 개발하고 있는 프로그램에 타 시스템과 연동해야 할 일이 생겼다. 해당 시스템은 기존에 사용해 오던 것이고, 담당자도 있다. 하지만 프로젝트 PM은 업무 담당자에게 시켜야 할 관리 업무를 내게 시키고 있었다. 그것도 퇴근 시간이 지난 시점에 해당 업체에 전화를 하라면서 독촉을 하고 있었다. 난 끝까지 전화를 하지 않았고, 해야할 내용에 대해 문자만 보냈다. 심지어 내게 시킨 그 관리 업무는 내게 어떤 정보나 권한도 없었다. 연동될 시스템에 대한 로그인 정보도, 해당 시스템의 IP 정보도, 원격을 열어 줄 ..
오늘 절실하게 코드 리뷰가 필요하다는 생각이 들었다. 또한 분석/설계 관련 문서와 정보 공유의 필요성과 해당 도구들에 대한 필요성도 절실히 느낀 하루이다. 사건의 발단은 다른 개발자의 미완성 프로그램을 받으면서 부터 시작했다. 솔루션에는 네이밍룰과 공식적으로 존재하는 문서는 없지만 다들 준수하고 따르는 개발 기준이 있다. 이걸 무시하고 본인이 하고 싶은데로 개발을 하다가 계약기간이 끝났다고 가버렸다. 개발 기준에 따라 흘러야할 비즈니스 로직이 엉뚱한 클래스를 참조 하고 있고 화면에는 나오는 데이터가 어디를 뒤져봐도 불러오는 곳이 없었다. 클래스는 임의로 지정해 화면에서 호출해 버렸고 나오는 데이터는 포멧으로 눈 속임을 해놨다. 참으로 어처구니 없고 당황 스럽다. 다음 사람을 위해 어떤 테이블을을 참조하면..
직무에 따른 권한을 설정하기 위해 새로운 권한 설정 룰을 만들어야 할 상황이 발생했다. 일단 방향은 세션을 이용하되 직무에 따른 권한을 체크하기 위한 Util 클래스를 하나 신규를 생성하기로 했다. 문제는 util 클래스와 같은 contoller 이외의 클래스에서 세션값에 접근 할 수 있어야 한다는 것이다. 권한 체크 함수에 세션값을 넘기면 좋기는 하겠지만 controller 이외의 클래스에스 세션값을 확인 하기도 어렵기도 하지만 일일이 세션값을 확인해서 넘기는 작업은 번거롭고, 간편하지도 않으며, 그다지 좋아 보이지 않는다. (값을 확인 할 수 있으면 그 자리에서 처리하는게 낫지 않을까?) 이때 사용할 수 있는 방법이 RequestContextHolder와 ServletRequestAttributes를..
쿼리 결과가 여러 줄인 데이터가 있다. 그런데 그중 한 컬럼의 내용반 다르고, 다른 컬럼의 결과는 똑같다. 그래서 내용이 다른 그 한 컬럼의 내용을 한 번에 받고 싶다. 이럴때 사용 할 수 있는 방법이 - oracle : LISTAGG(컬럼명 구분자) - mysql : GROUP_CONCAT(컬럼명 SEPARATOR 구분자) 함수를 이용하는 것이다. 두 함수 모두 지정 가능한 문자, 기호 등을 구분자로 하여 여려 행의 내용을 한 컬럼에 표기해 준다. oracle SELECT USER_ID, LISTAGG(USER_TASK, ',') WITHIN GROUP (ORDER BY USER_ID) AS USER_TASK FROM USER_TASK WHERE .... GROUP BY USER_ID 묶어야할 대상은 ..
쿼리를 작성할때 과도한 서브 쿼리는 메인 쿼리의 더욱 복작하게 만든다. 이럴때 WITH AS 구문을 사용하면 그나마 복잡한 부분의 쿼리를 분리해 낼 수 있을 뿐만 아니라 반복적으로 쓰이는 서브 쿼리라면 성능의 향상을 덤으로 얻을 수 있다. 방법은 간단하다. 메인 쿼리 위에 WITH AS 구문을 사용해 서브 쿼리를 옮겨 놓는 것이다. WITH 이름 AS ( SELECT ... FROM ... WHERE ... ) SELECT .... FROM 이름 WHERE .... 서브쿼리가 여러개라 하더라도 걱정할 필요 없다. 각 서브쿼리를 , 로 구분하여 추가해 주면 된다. WITH 이름1 AS ( SELECT 문 ), 이름2 AS ( SELECT 문 ) SELECT ... FROM 이름1 LEFT OUTER JOI..
지난번과 비슷한 일이 벌어졌다. 이번에는 날짜형식으로 된 8자리 데이터를 보내와야 하는데 싹다 무시하고 '0000-00-00' 형식으로 데이터가 날아왔다. 지난번에 작성한 특정 문자열을 제거하는 것으로는 해결이 되지 않는 문제다. 사실 지난번 문제보다 더 간단하다. 숫자만 빼고 모든 문자를 없애버리면 되기 때문이다. 따라서 문자열 메서드 중 replaceAll 을 사용하면 된다. 데이터가 '0000-00-00' 식으로 날아 왔기 때문에 단순히 str.replaceAll("-",""); str.replaceAll("-",""); 식으로 처리해 줘도 되겠지만 또 어떤 형식으로 날아 올지 알 수 없기 때문에 숫자 이외의 문자는 모두 제거 하기로 한다. 따라서 이번에도 정규식을 사용하기로 한다. str.repl..
다른 기관과 연계 업무를 하던 중 타 기관에서 보내온 파일에 문제가 있어 잘 동작하던 배치에 문제가 생겼다. 정확히 배치 자체의 문제라기 보다는 애초에 서로 약속된 레이아웃으로 데이터를 보내주지 않은 타기관의 문제이었지만 그 레이아웃 정의서만 믿고 예외 상황을 처리하지 않은 배치도 문제라면 문제다. 문제는 간단했다. 원래 '횟수' 로 넘어와야 할 데이터에 숫자 이외의 문자가 끼어 들었다는 것이다. '횟수'라는 이름에서 알 수 있듯이 해당 데이터는 숫자로만 구성된 문자열이다. 따라서 숫자 이외에 문자가 들어 있다면 예외를 발생시키거나 다른 동작을 시켜 주면 된다. 타기관에서 넘어오는 데이터는 텍스트 파일로 되어 있어 읽어 들이는 모든 데이터는 String 타입이다. String 에서 써먹을 수 있는 방법은..
- Total
- Today
- Yesterday
- 라즈베리파이3
- spring
- 도서
- php mvc
- 아침 글쓰기 챌린지
- bootstrap
- android studio
- Linux
- java
- etf
- 개발팁
- Spring 게시판
- IntelliJ
- 리눅스
- 안드로이드 스튜디오
- 아침글쓰기
- MAC OS STS Spring
- 게시판
- 글쓰기
- 회고
- 오블완
- 한빛미디어
- spring board
- 티스토리챌린지
- 아침 글쓰기
- Tip of the day
- 스프링
- Raspberry pi3
- Did you know
- openjdk
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |