Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 미국 배당주
- Spring Batch 강의
- MYSQL
- Spring Batch
- docker mysql
- spring Annotation
- apache log4j
- docker
- 젠킨스
- python 기초
- Vue 배우기
- 티스토리 광고 수익
- JDK1.3
- 구글 애드센스 수익
- IntelliJ
- spring boot 시작
- Vue
- docker 명령어
- AES256
- Spring
- Vue 강의
- Python 기본편
- 도커
- gradle
- 애드센스 수익
- Vue 알아보기
- 미국주식
- scrapy
- python
- intelliJ plugin
Archives
나만의공간
Intellij 개발시 유용한 단축키 [작성중] 본문
Intellij로 개발을 하면서 개발에 유용한 단축키 정리
마우스를 사용안하고 단축키를 사용하게 되면 개발속도 증가 및 Intellij 에서 제공하는 편리한 기능을 사용할 수 있음.
- psvm
- main 메소드 형태를 만들어줌
- iter
- 확장된 for문 자동완성
- CMD + Shift + Enter
- 문장 마지막으로 이동하여 세미콜론(;) 자동 생성
- sout
- System.out.println을 완성
- souv
- 위쪽에 있는 변수를 포함하여 System.out.println문장을 자동 완성해
- F2
- 소스코드상에 오류가 있는 부분으로 바로 이동
- Shift + ESC
- 현재 active 되어 있는 창을 축소(숨김) 처리함
- CMD + P
- 메소드에 필요한 파라미터 정보를 풍선도움말로 보여준다
- CMD + E
- 최근 수정 혹은 열었던 파일 리스트를 보여준다.
- 방금전 수정했던 파일로 이동하고자 할때 유용함
- Alt + Shift +m
- 블럭으로 잡은 코드에 대해서 메소드로 변경
- CMD + N
- 생성자 등 클래스에서 필요한 거를 자동으로 만들어 준다
- Option + Cmd + V
- 생성되는 객체, 메소드에 대한 반환값을 자동으로 생성해줌
- 소스 이동
- Cmd + Option + [
- 여는 중괄호 { 이동
- cmd + option + ]
- 닫는 중괄호 } 이동
- 위 두개 단축키로 코드 블록의 시작과 끝으로 빠르게 이동 가능
- cmd + shift + [
- 상위 코드 블록 시작으로 이동
- cmd + shift + ]
- 상위 코드 블록 끝으로 이동
- Cmd + Option + [
단축키 / 명령어설명
- 절차지향프로그램
- 절차 지향 프로그래밍은 프로그램의 흐름을 순차적으로 따르면 처리 하는 방식
- 객체지향프로그래밍
- 객체를 중심으로 설계한다.
- 둘의 차이점
- 절차 지향은 데이터와 데이터에 대한 처리 방식이 분리 되어 있고, 객체 지향은 데이터와 데이터에 대한 행동(메서드)이 하나의 객체 안에 포함되어 있다
- 음악플레이어와 관련된 데이타는 MusicPlayerData 클래스에 모두 있는다.
- 음악플레이어가 하는 행동(메서드)로 분리한다.
- 여기까지가 순서에 맞는 기능을 하여 절차지행 프로그램밍이다.
- 데이타는 분리되어 있지만 기능(메서드)는 클래스에 있음.
**절차 지향 프로그래밍의 한계**
지금까지 클래스를 사용해서 관련된 데이터를 하나로 묶고, 또 메서드를 사용해서 각각의 기능을 모듈화했다. 덕분에 상 당히 깔끔하고 읽기 좋고, 유지보수 하기 좋은 코드를 작성할 수 있었다. 하지만 여기서 더 개선할 수 는 없을까? 우리가 작성한 코드의 한계는 바로 데이터와 기능이 분리되어 있다는 점이다. 음악 플레이어의 데이터는 `MusicPlayerData` 에 있는데, 그 데이터를 사용하는 기능은 `MusicPlayerMain3` 에 있는 각각의 메서드에 분리 되어 있다. 그래서 음악 플레이어와 관련된 데이터는 `MusicPlayerData` 를 사용해야 하고, 음악 플레이어와 관련된 기능은 `MusicPlayerMain3` 의 각 메서드를 사용해야 한다. 데이터와 그 데이터를 사용하는 기능은 매우 밀접하게 연관되어 있다. 각각의 메서드를 보면 대부분 `MusicPlayerData` 의 데이터를 사용한다. 따라서 이후에 관련 데이터가 변경되면 `MusicPlayerMain3` 부분의 메서드들도 함께 변경해야 한다. 그리고 이렇게 데이터와 기능이 분리되어 있으면 유지보수 관점에서도 관리 포인트가 2곳으로 늘어난다. 객체 지향 프로그래밍이 나오기 전까지는 지금과 같이 데이터와 기능이 분리되어 있었다. 따라서 지금과 같은 코드가 최 선이었다. 하지만 객체 지향 프로그래밍이 나오면서 데이터와 기능을 온전히 하나로 묶어서 사용할 수 있게 되었다. 데이터와 기능을 하나로 온전히 묶는다는 것이 어떤 의미인지 이해하기 위해 간단한 예제를 만들어보자. |
데이타와 데이타를 사용하는 기능은 매우 밀접한 관계를 가지고 있다.
분리되어 있으면 유지보수 관점에서 관리 하는 곳이 두곳이 된다.
- 속성(데이터), 과 기능(메서드)를 같은 클래스에 넣어 객체지향프로그램을 만든다
- 음악플레이어를 제공하는 개발자와 사용하는 개발자가 분리되어 있다고 생각을 하자.
- 음악플레이어 객체를 만드는데에 집중하자
- 속성:볼륨, 켜고 끄고
- 기능:on, off, volumeUp, volumeDown, showStatus()
- 이러한 상태로 만들면 캡슐화가 되어 사용하는 입장에서 크게 고려할 사항이 없다
- ex: volume => volume2로 변경했을경우
생성자 장점
1. 중복호출 제거
2. 제약 - 생성자 호출 필수
좋은 프로그램은 무한한 자유도가 주어지는 프로그램이 아니라 적절한 제약이 있는게 좋다
3.
'Tools > IntelliJ' 카테고리의 다른 글
[IntelliJ] Auto Import 옵션 설정 (0) | 2024.03.08 |
---|---|
Intellij Git 사용법(펌) (0) | 2023.02.14 |
Intellij Cause : invalid source release : 17 이슈 해결 방법 (0) | 2023.01.30 |
Intellij 개발시 유용한 유용한 단축키 모음 #1 (0) | 2022.04.05 |
Intellij Community 설치 (회사 사용 가능할까?) (0) | 2022.03.17 |
Comments