General : 일반적인 단축키
Alt + #[0-9] : 각 단축키에 해당하는 도구창 열기
Ctrl + S : 모두 저장
Ctrl + Shift + F12 : 편집기(Editor) 영역을 최대로 크기로 토글
Ctrl + Shift + I : 현재 프로필 기준으로 현재 파일 검사
Ctrl + Alt + S : 설정창(Settings) 열기 
Ctrl + Alt + Shift + S : 프로젝트 구조창(Project Structure) 열기
Double Shift : 전체 검색창 열기

 

Debugging : 디버깅 관련 단축키
F8 : 현재 브레이크된 라인에서 다음 라인으로 이동
F7 : 현재 브레이크된 라인에서 실행하고 있는 메소드로 이동
Shift + F8 : 브레이크된 라인에서 호출한 곳으로 이동
Alt + F9 : 포커스 되어있는 라인으로 이동
Alt + F8 : 브레이크된 라인에서 사용 가능한 모든 코드를 실행
F9 : 다음 브레이크 포인트로 이동

 

Search / Replace : 검색 및 대체 관련 단축키
Double + Shift : 전체 검색창 열기 (Alt + 방향키로 All, Class, File, Symbol, Actions 등 선택 가능)

Ctrl + Shift + F : 문자열 검색창 열기
Ctrl + F : 현재 파일에서 문자열 검색
F3 / Shift + F3 : 검색된 문자열로 이전/이후 이동
Ctrl + R : 현재 파일에서 문자열 대체

 

Editing : 편집기(IDE) 관련 단축키
Ctrl + Space : 기본 코드를 자동 완성
Ctrl + Shift + Space : 소스코드를 분석해서 적합한 자동 완성 코드를 추천
Ctrl + Shift + Enter : 문장 자동 완성(if문, for문 등)
Ctrl + P : 메서드의 파라미터 정보를 조회
Ctrl + Q : 도큐먼트를 조회 
Ctrl + O : Override 가능한 메서드 목록을 확인하여 코드를 자동 생성
Ctrl + I : Implement 가능한 메서드 목록을 확인하여 코드를 자동 생성
Ctrl + / : 라인 단위로 주석 처리(//로 주석처리)
Ctrl + Shift + / : 블록 단위로 주석 처리(/* */로 주석치리)
Ctrl + . : 블록 접기/열기
Ctrl + W : 커서 근처의 코드 선택 영역을 확대
Ctrl + Shift + W : 커서 근처의 코드 선택 영역을 축소
Alt + Enter : 추가되지 않은 Import 추가
Alt + Shift + Enter : 가로/세로 편집모드로 변경
Ctrl + Alt + L : 코드 정렬
Ctrl + Alt + O : Import 정리(사용하지 않는 Import 삭제)
Ctrl + Alt + I : 들여쓰기 정렬
Ctrl + Alt + Enter : 커서가 위치한 라인에 바로 위 라인에서 시작
Tab / Shift Tab : 들여쓰기 추가 / 제거
Ctrl + D : 커서가 위치한 라인을 복사하여 바로 밑에 라인에 붙여넣기
Ctrl + Y : 커서가 위치한 라인을 삭제
Shift + Enter : 커서가 위치한 라인에 바로 아래 라인에서 시작
Ctrl + Shift + U : 대/소문자 변경

Ctrl + Shift + J : 라인 합치기

 

Navigation : 이동 관련 단축키
Ctrl + N : 전체 검색창 열기 (Alt + 방향키로 All, Class, File, Symbol, Actions 등 선택 가능)

Alt + Right / Left : 편집기(Editor) 탭 이동

ESC : 윈도우 창에서 편집기(Editor) 창으로 이동

Ctrl + G : 라인으로 이동 
Ctrl + E : 최근 열어본 파일 목록창 열기

Ctrl + Shift + E : 최근 위치 목록창 열기

Ctrl + ] / [ : 괄호 시작/끝으로 이동

Ctrl + F12 : 파일 구조창 열기

 

Compile and Run : 컴파일 및 실행 관련 단축키
Ctrl + F9 : 프로젝트 빌드(Bliud project)
Shift + F10 : 프로젝트 실행
Shift + F9: 프로젝트 디버그

VCS / Local History  : 버전 관리 시스템(Version Control System) 관련 단축키  
Ctrl + K : Commit project to VCS
Ctrl + T : Update project form VCS
Ctrl + Shift + K : Push commits
Alt + BackQuote(') : 'VCS' quick popup

 

Test Case : Test Case 관련 단축키

Ctrl + Shift + T : Class에 대한 TestCase 생성 및 이동

sudo apt-get update        # 업데이트 목록 갱신
sudo apt-get upgrade       # 현재 패키지 업그레이드
sudo apt-get dist-upgrade  # 신규 업데이트 설치

tomcat 이 사용하고 있는 Port 확인

$ netstat -an | grep 8080

terminal mac 에서 tomcat 이 사용하고 있는 Port 를 Kill

kill -9 $(lsof -t -i:8080)

[Proc:Alarm] socket error=10054 : connection closed by forign host
[Proc:Alarm] Socket send data error: 10054

Socket error (#10054): Connection reset by peer.

상대편에 의해 연결이 강제로 종료되었을 경우 발생하는 오류입니다. 상대편 호스트가 갑자기 정지했다던가, 리부팅, 네트웍 인터페이스 오류등의 원인으로 인해 물리적으로 종료된 경우에 발생합니다. 이 Error 는 XCom 이 발생시키는 것이 아니고 윈도우 소켓에서 발생하는 Error 입니다. 10054 소켓 에러가 발생하면 XCom은 연결이 강제로 종료된 상황이기 때문에 소켓을 종료하고 아래와 같이 Restart 를 합니다.

[Proc:Alarm] XCom listening will restart again.
[Proc:Event] XCom restarting

빈번하게 Socket error가 발생한다면 네트워크 상태, OS , 네크워크 카드와 설정 정보를 확인해 봐야 합니다. 참고사항 네트웍 카드를 2개 이상 사용하는 경우 local로 사용하는 네트워크의 게이트웨이 정보는 삭제해 주시기 바랍니다. 운영체제가 네트워크 서비스를 하면서 충돌을 일으키는 경우가 있습니다.

 

"Windows 소켓 오류 10054"를 일으키는 문제는 호스트와 클라이언트 모두의 네트워크 구성일 수 있습니다. 

  1. Windows 시작을 클릭하고 명령 프롬프트를 입력합니다.
  2. 명령 프롬프트를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 선택합니다.
  3. 명령 프롬프트에서  netsh winsock reset  을 입력하고 Enter 키를 누릅니다.
  4. 그런 다음 netsh int ip reset  을 입력하고 Enter 키를 누릅니다.
  5. 그런 다음  ipconfig / release  를 입력하고 Enter 키를 누릅니다.
  6. 그런 다음  ipconfig / renew  를 입력하고 Enter 키를 누릅니다.
  7. 그런 다음  ipconfig / flushdns  를 입력하고 Enter 키를 누릅니다.
  8. PC를 다시 시작합니다.

프로젝트를 성공적으로 완료하기 위해서는 다양한 분야의 전문가들이 필요합니다.

그리고 이를 효율적으로 진행하기 위해서 각자의 역할과 책임을 분담하게 되는데, 이를 R&R을 정립한다고 표현합니다.

역할과 책임
Role and Responsibilities, R&R


프로젝트에서 개별 프로세스 및 팀 구성원들이 수행해야 할 역할과 그 역할의 수행에 따른 책임 관계의 정립을 의미합니다.

R&R을 통해 각 담당자들은 특정 포지션을 하나씩 가지게 되고, 그에 맞는 업무를 수행합니다.


프로젝트 포지션 종류

PMO (Project Management Office)

어떤 프로젝트에 직접 참여하여 실무를 보는 것이 아닌, 전체 프로젝트를 관리하는 포지션입니다.

프로젝트 관리 능력을 향상시키기 위한 사항들을 제시해 주거나, 프로젝트 관리 방법을 공식화하는 등의 일을 합니다.

 

PM (Project Manager)

PM은 프로젝트가 성공할 수 있도록 모든 관리 업무를 지휘하는 프로젝트의 총책임자입니다.

이해관계자 간의 원활한 커뮤니케이션을 주도하며 의견을 조율하고, 팀 구성원들의 단위 업무별 일정 관리와 이슈 관리를 수행하는 것이 주요 업무입니다.

 

PL (Project Leader)

PL은 프로젝트마다 있을 수도 있고, 없을 수도 있습니다.

주로 큰 프로젝트에서 PM이 혼자 모든 것을 관리할 수 없기 때문에 각 파트별로 리더를 두는 경우가 있고, 그 포지션이 바로 PL입니다.

PL은 주로 PM을 도와 팀을 리드하며, 설계와 구현 단계의 실무적인 부분을 책임지는 업무를 수행합니다.

 

PA (Project Assitant)

PA는 프로젝트의 실무자로서, 주로 프로젝트의 산출물 제작을 담당하는 포지션입니다.

초급 기획자라면 보통 PA 포지션에서 UX/UI 설계를 하는 업무를 담당하게 됩니다.

PL은 PM, PL 못지않게 프로젝트에 대한 전반적인 이해와 진행 과정을 알고 있어야 하며, 프로젝트가 주어진 시간과 비용에 맞게 완료될 수 있도록 하는 책임을 가집니다.

 

PO (Product Owner)

제품 관리자라고 표현하는 PO는 프로젝트를 통해 만들어진 제품에 대한 모든 의사결정권을 갖고 있는 포지션입니다.

해당 제품에 대한 비전과 전략, 로드맵을 수립하여 상품화하는 업무의 총책임자로서, 제품을 가지고 새로운 사업을 만들어내고 홍보하는 일도 PO의 업무에 포함됩니다.

사실 Product Owner보다는 Product Manager를 더 일반적으로 많이 쓰지만 명확한 구분을 위해 PO로 표현하겠습니다.


PM과 PO의 차이

프로젝트 매니저(PM)와 프로덕트 오너(PO)는 어떻게 보면 역할이 비슷해 보이기도 합니다.

PM은 프로젝트의 CEO, PO는 프로덕트의 CEO 포지션이라 할 수 있으니까요.

 

기획자로 일하다 보면 PA에서 PL로 성장하고, PM과 PO의 갈림길에 놓이게 되는 순간이 옵니다. 

각 포지션에는 기대되는 역할이 있으니, 차이점을 잘 알아두고 방향을 설정해야 합니다.

 

  • PM은 제품의 출시 전, PO는 제품의 출시 후 필요한 사람이다.
  • PM은 프로젝트의 진행을 관리하는 사람이고, PO는 프로젝트의 방향을 결정하는 사람이다.
  • PM은 여러 제품을 효율적으로 만들어내는 전문가이고, PO는 하나의 제품을 완성도 있게 다듬어내는 전문가이다.

제품 출시 전 신규 프로젝트를 진행하거나 B2B(Business to Business) 또는 SI(System Integration) 프로젝트를 진행할 때는 PM이 관리하는 것이 적절하고, B2C(Business to consumer) 서비스나, B2B 서비스라도 다양한 고객(사이트)이 있는 경우는 PO가 관리하는 것이 적절합니다.


관리자가 갖춰야 할 역량

PM과 PO 중 어떤 열학이 더 좋고, 쉬운 것은 없습니다.

업무의 특성이 조금 다를 뿐, 무언가의 책임자로 자리하는 만큼 리더로서의 자질을 갖추어야 하는 점은 같습니다.

 

리더십 기술

훌륭한 리더는 팀이 프로젝트 전반에 걸쳐 최선을 다하도록 동기를 부여하고, 모든 팀원이 자신의 업무를 명확하게 이해할 수 있도록 합니다.

 

의사소통 능력

팀원은 물론 고객 및 경영진과 효율적으로 의사소통하여 모든 이해관계자들이 프로젝트에 대한 동일한 이해와 기대감을 가질 수 있어야 합니다.

 

문제 해결 능력

프로젝트의 모든 단계에서 다양한 문제를 해결할 수 있어야 하고, 그전에 예방할 수 있어야 합니다.

 

위임 기술

작업을 적재적소에 할당하고 감독할 수 있는 능력은 관리자의 기본 자질이며, 팀원이 자신의 업무를 수행할 수 있도록 신뢰해야 합니다.

 

열정

관리자의 열정은 팀원들이 할당된 작업을 수행하는 동안 동기를 부여하고, 긍정적인 상태를 유지하는 데 도움이 됩니다.

 

팀 구축 기술

적절한 인력 배치와 팀 구축은 프로젝트 성공의 가장 중요한 요소입니다.

1. JDK 설치 

 

Oracle JDK (2017.10.18 현재 최신 버전은 9.0.1)

http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html

 

openJDK 설치

openjdk.java.net/

OpenJDK

2021.03.28 최신 버전은 JDK16.  환경에 맞는 Builds 파일을 다운로드 받으면 된다.

 

2. 사용자 환경변수 추가

 

내PC > 속성 > 고급시스템 설정 > 환경변수

 

 

시스템 변수에서 '새로 만들기' 버튼을 누른 후 새 시스템 변수를 추가 후 확인 버튼 클릭

변수 이름 : JAVA_HOME

변수 값 :  C:\Program Files\Java\jdk1.8.0_131 (자바 JDK 설치 경로)

 

'Path 변수'를 선택하여 편집 메뉴를 선택

새로 만들기 버튼을 눌러 '환경 변수' 추가 : %JAVA_HOME%\bin

 

시스템 변수에서 '새로 만들기' 버튼을 누른 후 새 시스템 변수를 추가 후 확인 버튼 클릭

변수 이름 : CLASSPATH

변수 값 : 

%JAVA_HOME%\lib

3. 환경 변수 추가 후 확인cmd 창에서 javac -version 

버전 정보가 정상적으로 나오면 OK.

 

 

 

참고 URL

Java JDK 설치 및 환경 변수 설정

http://prolite.tistory.com/975

 

How to fix Windows 10 Camera Crash, BSOD SPUVCbv64.sys Error​

 

LENOVO 노트북에서 Windows 10 업데이트 후 카메라 실행시 블루스크린 오류가 나타나는 이들을 위해 해결 방법을 공유 합니다.

아래 영상과 같은 오류 현상이 발생한다면 알려드리는 방법으로 해결이 가능 합니다.

 

​해결 방법 안내

https://www.networkreverse.com/2020/05/how-to-fix-windows-10-camera-crash-bsod.html

 

How to fix Windows 10 Camera Crash, BSOD SPUVCbv64.sys Error - NetworkReverse.com

BSOD (Blue screen of death) is one of Windows technique to forcefully stop the system when there is crash on the system. In my case, it is green scree

www.networkreverse.com

 

해결 방법 동영상

https://www.youtube.com/watch?v=a6j1Ql4m7z8&feature=emb_logo

 

카메라 드라이버 다운로드 URL

www.catalog.update.microsoft.com/Search.aspx?q=Sunplus%20Camera

 

Microsoft Update 카탈로그

SunplusIT - Camera - 5.0.18.88 Windows 10, Vibranium and later, Servicing Drivers,Windows 10, Vibranium and later, Upgrade & Servicing Drivers Drivers (Other Hardware) 2020-09-03 5.0.18.88 2.9 MB 3006412 SunplusIT - Camera - 5.0.18.88 Windows 10, Vibranium

www.catalog.update.microsoft.com

 

http의 기본 메서드(POST, GET, PUT, DELETE)에 따라 
CRUD(Create, Read, Update, Delete)를 정의하여, 
해당 메서드 호출 시 json 또는 xml 형식의 데이터를 요청자에게 전송하면 됩니다. 
이때 URI는 정보의 자원을 표현해야 합니다.




RestAPI를 구현하기 위한 가이드로 6가지 제한 조건

유니폼 인터페이스 
Http를 사용하여 통신하기 때문에 네트워크 프로토콜의 기본 메서드만 사용하며,
단일 URL을 통해 고유하게 식별할 수 있어야 합니다.

클라이언트 / 서버 구조
클라이언트와 서버는 분리되어야 합니다. 
어떤 서버가 특정한 클라이언트에서만 사용 가능한다면, 그것은 RestAPI라고 할 수 없습니다.

무상태성(stateless)
각 요청 간 클라이언트와 서버는 지속적인 연결이 되지 않으며, 상태 정보(쿠키, 세션 ) 등을 따로 저장하지 않습니다.

캐시 처리 기능 
RestAPI는 http 통신을 기본으로 한 아키텍처입니다.
따라서 http가 기본적으로 가지고 있는 기능들은 전부 사용할 수 있으며, 캐시 기능 또한 마찬가지입니다.

계층형 구조 
Rest 서버는 다중 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 계층을 추가해 
구조상의 유연성을 둘 수 있습니다.

자체 표현 구조(Self-descriptiveness)
RestAPI는 메시지만 보고도 해당 API 기능에 대한 이해가 쉬운 구조로 되어야 합니다.

1. View (입력과 출력의 정의가 먼저 이루어지면 메소드의 파라미터와 리턴값 정의가 됨으로 먼저 진행)

2. VO 객체 (마이바티스 쿼리 정의 파일에서 사용하기 앞서 마이바티스 쿼리 정의 파일에 설정해야 하기 때문에)

3. 마이비티스 쿼리 정의 파일

4. DAO (서비스 객체에서 사용하려면 우선 작성 필요)

5. Service (컨트롤러 객체에서 사용하려면 우선 작성 필요)

6. Controller (호출 URL을 기술을 위해 우선 작성 필요)

7. JSP

DB


Queries per second (QPS) 

검색 엔진 이나 데이터베이스 와 같은 정보 검색 시스템이 1 초 동안받는 검색 트래픽의 양을 측정하는 일반적인 방법입니다 . 

이 용어는 모든 요청 - 응답 시스템에 대해보다 광범위하게 사용 되며보다 정확하게는 초당 요청 (RPS) 이라고 합니다 .

트래픽이 많은 시스템은 더 많은 부하를 처리하기 위해 시스템을 확장하는시기를 파악하기 위해 QPS를 감시해야합니다.



Requests per second (RPS) 

초당 요청수

+ Recent posts