생성 

  • command + n : 파일 생성 
  • pvsm : public static void main

 

출력

  • sout :  System.out.println 

 

실행

  • control + shift + r : 현재 파일 실행
  • control + r : 직전에 실행한 파일 실행

 

라인 편집

  • command + d : 라인 복사
  • command + delete : 라인 삭제
  •  control + shift + j : 현재 위치를 기준으로 아래 라인을 합침
  • option + shift + 위/아래 : 라인 위치 이동 
  • command + shift + 위/아래 : 구문 안에서만 라인 이동
  • command + option + shift 좌/우 : element 이동

 

코드 보기

  • command + p : 생성자/메소드 파라미터 보기
  • option + space : 코드 전체 보기 
    • 클래스 : 클래스 구현 전체 코드  
    • 메소드 : 메소드 구현 코드
    • 인스턴스 : 인스턴스 생성 코드
  • F1 : java 메소드 docs 

 

포커스(커서) edit

  • option + 위 : 현재 범위로 부터 관련있는 범위로 확장
  • option + 아래 : 현재 범위로 부터 관련있는 범위로 축소
  • command + [ : 이전 포커스로 이동 (command + z를 포커스에 적용)
  • command + ] : 원래 포커스로 이동 (command + y를 포커스에 적용)
  • option x 2 + 위/아래 : 멀티 포커스
  • F2 : 오류로 이동

 

검색

  • command + r : 문자열 변경
    • replace : 하나씩
    • replace : 전체
  • command + shift + r : 전체 파일 문자열 변경
  • command + shift + o : 파일 검색
    • 파일이 많을 경우 패키지명/파일명으로 검색가능
  • command + option + o : 메소드 검색 
  • command + shift + a : action 검색
    • IntelliJ내에 각종 설정 검색
  • command + e : 최근 열었던 파일 목록
  • command + shift + e : 최근 수정한 파일 목록

 

자동완성

  • control + shift + space : 스마트 자동완성
  • control + space x 2 : statoc 메소드 자동완성 
  • command + n : getter/setter/생성자 자동완성
  • control + i : overide 메소드 자동완성
  • option + enter : 에러 해결 

 

Live Template 

  • command + j : 모든 축약어 보여줌

 

리팩토링 Extract 

  • option + command + v : 변수 추출 
    • replace this : 선택한 부분만 변수로 추출 
    • replace all : 같은 값을 모두 변수로 추출 
  • option + command + p : 파라미터 추출
    • replace all : 같은 값을 모두 파라미터로 추출
    • delegate : overide 메소드를 만들어서 추출 
  • 마우스 drag + option + command + m  :  메소드 추출
  • F6 : inner 클래스 추출
    • 외부에 생성하고 기존 코드는 제거
    •  패키지가 달라질 경우 자동으로 import도 해줌

 

리팩토링 기타

  • shift + F6 + 작성 : 이름 일괄 변경
    • command + r과 같은 것으로 보임. 
  • command + shift + F6 : 타입 일괄 변경
    • return 값의 경우 직접 바꾸긴해야함.
  • control + option + o : 사용하지 않는 import 제거 
    • 자동으로 정리 : "optimize import on" action을 on으로 변경
  • command + option + l : 정렬 

 

 

 

  • docker 실행
docker run <이미지 이름>
  • docker 실행중인 컨테이너 출력 
     
    • CONTAINER ID : 컨테이너의 고유한 아이디 해쉬값
    • IMAGE : 컨테이너 생성 시 사용한 도커
    • COMMAND : 컨테어니 시작 시 실행한 명령어
    • CREATED : 컨테이너 생성 시간
    • STATUS : 컨테이너 상태 (실행 : up, 종료 : Exited, 일시정지 Pause)
    • PORTS : 컨테이너가 개방한 포트와 호스트에 연결한 포트 
    • NAMES : 컨테이너 고유한 이름 
docker ps
  • docker create and start
    • create + staet = run
    • create가 따로 필요한 이유 추가 예정 
docker create <이미지 이름>
docker start <컨테이너 이름/id>
  • docker stop and stop(중지)
    • stop : 그동안 하던 작업들을 완료하고 중지
    • kill : 작업을 기다리지 않고 중지 
docker stop <컨테이너 이름/id>
docker kill <컨테이너 이름/id>
  • docker rm(삭제)
docker rm <컨테이너 이름/id> #컨테이너 삭제
docker rm `docker ps -a -q` #모든 컨테이너 삭제
docker rmi <이미지 id> #이미지 삭제
  • docker exec
    • 실헹증인 컨테이너에 명형어 전달
docker exec <컨테이너 이름/id>
  • -it
    • i : interactive
    • t : terninal
    • 실행 후 명령어를 계속 적을 수 있음
docker run -it <이미지 이름>
docker exec it <컨테이너 이름/id>

1. mysql 설치 및 접근 

  • mysql 설치
brew install mysql
  • mysql 서버 키기
mysql.server start
  • mysql 초기 설정
mysql_secure_installation

복잡한 비밀번호를 원한다면 yes, 아니라면, no를 선택한 후 비밀번호를 입력한다.
기본으로 설정되는 익명 유저를 제거할 것이라면 y, 아니라면 n
localhost 에서만 root 로 접속할 수 있는지 정하는 질문으로 원격에서 root 접속을 원하지 않으면 y 원하면 n을 입력한다.
기본으로 설정되는 test DB를 제거할 것이라면 y 아니라면 n을 입력한다.
마지막으로 reload y를 선택하면 설정이 적용된다.

  • mysql 접속
mysql -u root -p
  • mysql 종료
mysql.server stop

 

 

2. DDL(Data Definition Language)

  • CREATE(DB, table 생성)
    • create database [DB]
    • create table [table]
create database test;

  • DROP(DB, table 제거)
    • drop database [DB]
    • drop table [table]
drop database test;

  • TRUNCATE
    • DROP의 경우 테이블의 데이터만을 삭제
truncate table user;

truncate의 사용할 경우 table은 유지
drop을 할경우 table 자체가 제거

  • ALETER
    • 생성한 테이블의 객체를 변경
alter table user add name varchar(32) NOT NULL;

컬럼 추가

alter table user drop name;

컬럼 제거

 

3. DML(Data Manipulation Language)

  • 데이터를 조작할 때 사용하는 언어
  • INSERT 
    • insert into user values([값1], [값2]...)
insert into user values(1)
  • SELECT
    • select [column] from [table];
select * from user;

  • UPDATE
    • update [table] set [culumn] = [수정값]... where [조건];
update user set id = 3 where id = 1;

  • DELETE
    • delete from [table] where [조건];
delete from user where id = 2;

1. 예외의 계층 구조 

Exception 계층구조

  • 객체를 예외로 전달하기 위해 Throwable형으로 되어 있다. 
  • Error의 경우 시스템이 종료되어야 할 수준의 심각한 문제. (ex. OutOfMemoryError)
  • Excepthon의 경우 로직에서 발생한 실수.(ex.IllegalArgumentException)
    • RuntimeException : 실행시 발생
    • Exception : 컴파일시 발생

2. 예외 예시 

  • try-catch
package org.example;

public class Sample {
    public void finallyPrint() {
        System.out.println("ok thanks.");
    }

    public void exceptionPrint() {
        System.out.println("excpetion.");
    }

    public static void main(String[] args) {
        Sample sample = new Sample();
        int c;
        try {
            c = 4 / 0;
        }
        catch (ArithmeticException e) {
            c = -1;
            sample.exceptionPrint();
        }
    }
}
  • try-catch-finally
package org.example;

public class Sample {
    public void finallyPrint() {
        System.out.println("ok thanks.");
    }

    public void exceptionPrint() {
        System.out.println("excpetion.");
    }

    public static void main(String[] args) {
        Sample sample = new Sample();
        int c;
        try {
            c = 4 / 0;
        }
        catch (ArithmeticException e) {
            c = -1;
            sample.exceptionPrint();
        }
        finally {
            sample.finallyPrint();  // 예외에 상관없이 무조건 수행.
        }
    }
}

 

3.  사용자 정의 예외 

  • Exception을 상속 받음.
  • throw를 통해 예외를 강제로 발생 
package org.example;

class FoolException extends Exception {
}

public class Sample {
    public void sayNick(String nick) throws FoolException {
        if("fool".equals(nick)) {
            throw new FoolException();
        }
        System.out.println("당신의 별명은 "+nick+" 입니다.");
    }

    public static void main(String[] args) {
        Sample sample = new Sample();
        try {
            sample.sayNick("fool");
            sample.sayNick("genious");
        } catch (FoolException e) {
            System.err.println("FoolException이 발생했습니다.");
        }
    }
}

 

 

'개발 > JAVA' 카테고리의 다른 글

인터페이스(interface)-JAVA  (0) 2023.02.06

+ Recent posts