no image
[Network]HTTP 상태코드
상태코드 1xx (Informational): 요청이 수신되어 처리중 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 #1XX(Informational) ->요청이 수신되어 처리중 #2XX(successful) ->성공 (클라이언트 요청을 성공적으로 처리) 200 OK 201 Create =>(요청 성공 해서 새로운 리소스 생성) 202 Accepted =>(요청이 접수되었으나 처리가 완료되지 않았음) 204 No Content =>(요청은 성공적으로 수..
2021.05.23
no image
스택(Stack) JAVA로 구현
1.스택(Stack) 스택(stack)이란 쌓아 올린다는 것을 의미한다. #스택의 특징 스택은 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을수 있고,top으로 정한 곳을 통해서만 접근할 수 있다. top에는 가장 위에 있는 자료는 가장 최근에 들어온 자료를 가리키고 있으며,삽입되는 새 자료는 top이 가리키는 자료의 위에 쌓이게 된다. 스택에서 자료를 삭제할 때도 top을 통해서만 가능하다. 후입선출(LIFO: Last In First Out)의 자료구조이며, 접근이 목록의 끝(Top 또는 Top Pointer)에서만 일어나기 때문에 Pushdown List 라고도 합니다. 스택에서 입력은 push, 출력은 pop, Top 위치의 데이터 확인은 peek 를 사용합니다. #스택이 실제로 사용되는 경우 ..
2021.04.24
no image
[Network]URL,URI,URN의 정의
URI(Uniform Resource Identifier) URI는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다 Uniform: 리소스 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 @URL: Uniform Resource Locator 리소스가 있는 위치를 지정 URL문법 scheme://[userinfo@]host[:port][/path][?query][#fragment] EX)https://www.google.com:443/search?q=hello&hi=ko 프로토콜(https) 호스트명(www.google.com) 포트 번호(443) 패스(/search) 쿼리..
2021.04.13
Dev
no image
[JAVA]Primitive type과 Reference type
Data type이란 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야하는지를 알려주는것이다. JAVA에선 크게 기본형 타입괴 참조형 타입이 있다. 기본형 타입(Primitive type) 총 8가지의 기본형 타입(Primitive type)을 미리 정의하여 제공한다. 실제 값을 저장하는 공간으로 스택(Stack) 메모리에 저장된다. 기본값이 있기 때문에 Null이 존재하지 않는다. 만약 기본형 타입에 Null을 넣고 싶다면 래퍼 클래스를 활용한다. boolean 저장 가능한 범위 true/ false Java가 데이터를 다루는 최소 범위가 1 Byte 이기 때문에 Byte를 사용한다. char Java의 경우 Unicode를 사용, 동양의 글자의 경우 2 Byte 필요하기때문에 char..
2021.04.07
no image
자료구조_배열(Array)
데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조 파이썬에서는 리스트 타입이 배열 기능을 제공함 @배열이 필요한 이유 같은 종류의 데이터를 효율적으로 관리하기 위해 사용 같은 종류의 데이터를 순차적으로 저장 @C 언어 예: 영어 단어 저장 #include ​int main(int argc, char * argv[]){ char country[3] = "US"; printf ("%c%c\n", country[0], country[1]); printf ("%s\n", country); return 0; } @파이썬 언어 예: 영어 단어 저장 country = 'US' print (country) @파이썬과 배열 파이썬에서는 리스트로 배열 구현이 가능하다. #1차원 배열 data = [1..
2021.03.11
no image
IntelliJ 단축키(MAC)
@IntelliJ IDEA는 편집, 탐색, 리팩토링, 디버깅 등 일상적으로 수행하는 대부분의 작업에 대하여 해당 명령어의 키보드 단축키를 제공합니다. 이러한 단축키를 배우고 연습하여 기억해 두면 작업 흐름을 원활하게 유지하는 데 도움이 됩니다. 포커스 F2 다음 오류, 경고, 제안으로 점프함 Alt + 1 프로젝트 창이 열리고 포커스가 위치함 트리 탐색 및 검색에 유용 Esc를 누르면 포커스가 다시 에디터로 복귀됨 Ctrl + W / Ctrl + Shift + W 선택 영역 확장 / 축소 Ctrl + Shift + ←→ 영역 선택(단어 단위) 실행/디버깅 CTRL + D : 디버깅 CTRL + OPT + D : 여러 configuration들이 존재할때 특정 configuration 선택할 수 있는 창을..
2021.03.11
Dev
728x90

상태코드

  • 1xx (Informational): 요청이 수신되어 처리중
  • 2xx (Successful): 요청 정상 처리
  • 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요
  • 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 
  • 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함

#1XX(Informational) ->요청이 수신되어 처리중 

 

#2XX(successful) ->성공 (클라이언트 요청을 성공적으로 처리)

  • 200 OK
  • 201 Create =>(요청 성공 해서 새로운 리소스 생성)
  • 202 Accepted  =>(요청이 접수되었으나 처리가 완료되지 않았음)
  • 204 No Content  =>(요청은 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음)

#3xx (Redirection) -> 요청을 완료하기 위해 유저 에이전트의 추가 조치 필요

                                    ->웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동

   리다이렉션의 종류

  • 영구 리다이렉션 - 특정 리소스의 URI가 영구적으로 이동() /event -> /new-event )
  • 일시 리다이렉션 일시적인 변경(주문 완료 후 주문 내역 화면으로 이동,PRG: Post/Redirect/Get)
  • 특수 리다이렉션 - (결과 대신 캐시를 사용)

 

  • 300 Multiple Choices
  • 301 Moved Permanently ->리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음
  • 302 Found ->리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음
  • 303 See Other ->302와 기능은 같음, 리다이렉트시 요청 메서드가 GET으로 변경
  • 304 Not Modified ->캐시를 목적으로 사용
  • 307 Temporary Redirect ->302와 기능은 같음 ,리다이렉트시 요청 메서드와 본문 유지(요청 메서드를 변경하면 안된다. MUST NOT)
  • 308 Permanent Redirec ->301과 기능은 같음, 리다이렉트시 요청 메서드와 본문 유지(처음 POST를 보내면 리다이렉트도 POST 유지)

#4xx (Client Error) ->클라이언트 오류

  • 클라이언트의 요청에 잘못된 문법등으로 서버가 요청을 수행할 수 없음
  • 오류의 원인이 클라이언트에 있음

@400 Bad Request ->(클라이언트가 잘못된 요청을 통해서 서버가 요청을 처리할 수 없음 )

  • 요청 구문, 메시지 등등 오류
  • 클라이언트는 요청 내용을 다시 검토하고,보내야함 

@401 Unauthorized ->(클라이언트가 해당 리소스에 대한 인증이 필요함 )

  • 인증(Authentication) 되지 않음
  • 401 오류 발생시 응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설명

@403 Forbidden ->(서버가 요청을 이해했지만 승인을 거부함)

  • 주로 인증 자격 증명은 있지만, 접근 권한이 불충분한 경우
  • ) 어드민 등급이 아닌 사용자가 로그인은 했지만, 어드민 등급의 리소스에 접근하는 경우

@404 Not Found ->(요청 리소스를 찾을 수 없음)

  • 요청 리소스가 서버에 없음
  • 또는 클라이언트가 권한이 부족한 리소스에 접근할 때 해당 리소스를 숨기고 싶을 때

#5XX(Server Error) ->서버 오류

  • 서버 문제로 오류 발생
  • 서버에 문제가 있기 때문에 재시도 하면 성공 할 수도 있음

@500 Internal Server Error 

  • 서버 문제로 오류 발생, 애매하면 500 오류

 

@503 Service Unavailable

  •  서비스 이용 불가
  • 서버가 일시적인 과부하 또는 예정된 작업으로 잠시 요청을 처리할 수 없음 Retry-After 헤더 필드로 얼마뒤에 복구되는지 보낼 수도 있음

 

 

 

 

 

728x90

'Dev > Network' 카테고리의 다른 글

[Web] REST API 와 HTTP API  (0) 2022.01.04
HTTP 메서드(GET,POST,PUT,PATCH,DELETE)  (1) 2021.07.12
[Network]HTTP와 HTTPS  (0) 2021.06.21
728x90

1.스택(Stack)

스택(stack)이란 쌓아 올린다는 것을 의미한다.

 

#스택의 특징

  • 스택은 같은 구조와 크기의 자료 정해진 방향으로만 쌓을수 있고,top으로 정한 곳을 통해서만 접근할 수 있다.
  • top에는 가장 위에 있는 자료는 가장 최근에 들어온 자료를 가리키고 있으며,삽입되는 새 자료는 top이 가리키는 자료의 위에 쌓이게 된다.
  • 스택에서 자료를 삭제할 때도 top을 통해서만 가능하다.
  •  후입선출(LIFO: Last In First Out)의 자료구조이며, 접근이 목록의 끝(Top 또는 Top Pointer)에서만 일어나기 때문에 Pushdown List 라고도 합니다.
  • 스택에서 입력은 push, 출력은 pop, Top 위치의 데이터 확인은 peek 를 사용합니다.

#스택이 실제로 사용되는 경우

 

  • 운영체제(OS: Operating System)
    프로그램에서 사용되는 함수들을 스택 자료형에 저장하여 사용한다..
  • 컴파일러(Compiler)
    수학 기호들을 기계어로 변환시 사용한다.
  • 자바 가상 머신(JVM: Java Virtual Machine)
    JVM 내에서 메서드가 실행, 종료될 때 스택 프레임을 이용하여 관리한다.

JAVA로 구현한 스택 소스코드

package data_structure;

interface Stack{
    boolean isEmpty();
    boolean isFull();
    void push(char item);
    char pop();
    char peek();
    void clear();

}
public class MyStack implements Stack{
    private int top;
    private int stackSize;
    private char stackArr[];

    //스택을 생성하는 생성자
    public MyStack(int stackSize){
        top = -1; //스택 포인터 초기화
        this.stackSize = stackSize;  //스택사이즈 설정
        stackArr = new char[this.stackSize];  //스택 배열 생성
    }

    //스택이 비어 있는지 확인
    public boolean isEmpty() {
        //스택포인터가 -1인 경우 데이터가 없는 상태이므로 true 아닌 경우 false 를 리턴,
        return (top== -1);
    }

    //스택이 가득찬 상태인지 확
    public boolean isFull() {
        //스택 포인터가 스택의 마지막 인덱스와 동일한 경우 true 아닌 경우 false 를 리턴;
        return(top == this.stackSize-1);
    }
    //스택에 데이터 추가
    public void push(char item) {
        if(isFull()){
            System.out.println("stack is full");
        }else{
            stackArr[++top] = item;  //다음 스택 포인터가 가리키는 인덱스에 데이터 추가
            System.out.println("Inserted item : "+ item);
        }
    }
    //스택의 최상위(마지막) 데이터 추출 후 삭제
    public char pop() {
        if(isEmpty()){
            System.out.println("Deleting fail! Stack is empty");
            return 0;
        }else{
            System.out.println("Deleted item : "+ stackArr[top]);
            return stackArr[top--];
        }
    }
    // 스택의 최상위(마지막) 데이터 추출
    public char peek() {
        if(isEmpty()){
            System.out.println("Peeking fail! Stack is empty");
            return 0;
        }else{
            System.out.println("Peeked Item : "+ stackArr[top]);
            return stackArr[top];
        }
    }
    //스택 초기화
    public void clear() {
        if(isEmpty()){
            System.out.println("Stack is already empty!");
        }else{
            top = -1;  //스택 포인터 초기화
            stackArr = new char[this.stackSize]; //새로운 스택 배열 생성
            System.out.println("Stack is clear!");
        }
    }
    //스택에 저장된 모든 데이터 출력
    public void printStack(){
        if(isEmpty()){
            System.out.print("Stack is Empty");
        }else{
            System.out.print("Stack is element : ");
            for(int i=0; i<=top; i++){
                System.out.print(stackArr[i]+" ");
            }
            System.out.println();
        }
    }

실행코드와 결과

 public static void main(String[] args) {

            int stackSize = 5;
            MyStack arrStack = new MyStack(stackSize);

            arrStack.push('A');
            arrStack.printStack();

            arrStack.push('B');
            arrStack.printStack();

            arrStack.push('C');
            arrStack.printStack();

            arrStack.pop();
            arrStack.printStack();

            arrStack.pop();
            arrStack.printStack();

            arrStack.peek();
            arrStack.printStack();

            arrStack.clear();
            arrStack.printStack();
        }

결과

 

 

 

다음엔 큐(queue)에 대해서  정리해보겠습니다.😁🙈

728x90

'Dev > 알고리즘 ,자료구조' 카테고리의 다른 글

[Algorithm]BeakJoon_1330  (0) 2021.07.18
Insertion_Sort(삽입 정렬)  (0) 2021.06.30
Selection_Sort(선택 정렬)  (0) 2021.06.29
Bubble_Sort(거품 정렬)+JAVA로 구현  (0) 2021.06.28
자료구조_배열(Array)  (0) 2021.03.11

[Network]URL,URI,URN의 정의

ryudjae
|2021. 4. 13. 17:00
728x90

URI(Uniform Resource Identifier)

  • URI는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다
  • Uniform: 리소스 식별하는 통일된 방식
  • Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음
  • Identifier: 다른 항목과 구분하는데 필요한 정보

URL과 URN의 구조

@URL: Uniform Resource Locator

  • 리소스가 있는 위치를 지정

URL문법

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]
  • EX)https://www.google.com:443/search?q=hello&hi=ko 
  • 프로토콜(https) 
  • 호스트명(www.google.com) 
  • 포트 번호(443)
  • 패스(/search)
  • 쿼리 파라미터(q=hello&hl=ko

@scheme

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]
  • URL은 주로 프로토콜을 사용한다.
  • 프로토콜이란 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙을 의미한다.(EX:https,http,ftp등등)
  • http는 80포트 , https는 443포트를 주로 사용한다(포트는 생략가능하다)
  • https http에 보안 추가 (HTTP Secure)

@userInfo

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]
  • URL에 사용자정보를 포함해서 인증한다.
  • 거의 사용하지 않는다.

@host

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]
  • 호스트명을 의미한다.
  • 도메인명 또는 IP주소를 직접사용 가능하다.

@port

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]
  • 접속 포트이다.
  • 일반적으로 생략한다.
  • 생략시 http 80, https 443으로 정의한다.

@path

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]
  • 리소스 경로(Path),계층적 구조

@query

  • scheme://[userinfo@]host[:port][/path][?query][#fragment] 
  • key=value 형태
  • ?로 시작, &로 추가 가능 ?keyA=valueA&keyB=valueB
  • query parameter, query string 등으로 불림, 웹서버에 제공하는 파라미터, 문자 형태이다.

@fragment

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]
  • html 내부 북마크 등에 사용한다.
  • 서버에 전송하는 정보는 아니다.

@URN: Uniform Resource Name

  • 리소스에 이름을 부여
  • 위치는 변할 수 있지만 이름은 변하지 않는다.

 

 

728x90

'Dev' 카테고리의 다른 글

DataBase Engine(데이터 베이스 엔진)  (0) 2021.09.28
프록시(Proxy)란  (0) 2021.07.26
객체 지향 프로그래밍(OOP)  (0) 2021.06.16
[CS]프로세스(Process)란?  (0) 2021.06.13
IntelliJ 단축키(MAC)  (0) 2021.03.11
728x90

Data type이란 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야하는지를 알려주는것이다.

JAVA에선 크게 기본형 타입괴 참조형 타입이 있다.

 

 

기본형 타입(Primitive type)

  • 총 8가지의 기본형 타입(Primitive type)을 미리 정의하여 제공한다.
  • 실제 값을 저장하는 공간으로 스택(Stack) 메모리에 저장된다.
  • 기본값이 있기 때문에 Null이 존재하지 않는다. 만약 기본형 타입에 Null을 넣고 싶다면 래퍼 클래스를 활용한다.
  •  boolean
    • 저장 가능한 범위 true/ false
    • Java가 데이터를 다루는 최소 범위가 1 Byte 이기 때문에  Byte를 사용한다.
  •  char
    • Java의 경우 Unicode를 사용, 동양의 글자의 경우 2 Byte 필요하기때문에 char 의경우 2 Byte 이용한다
    • Java에서 유일하게 제공되는 unsigned 형태다.
      unsigned : 음수 없이 0부터 시작하여 양수 값만 가지는 데이터 형태
    •  char형은 unsigned 형식이기 때문에 맨 앞 비트를 음수 양수 형식 으로 사용하지 않는다.
  타입 메모리 크기 기본값
논리형 boolean false true,false
정수형 byte 0 -128 ~ 127
short 0  -32,768 ~ 32,767
int 0  -2,147,483,648 ~ 2,147,483,647
long 0L -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
실수형 float 0.0F (3.4 X 10-38) ~ (3.4 X 1038) 의 근사값
double 0.0 (1.7 X 10-308) ~ (1.7 X 10308) 의 근사값
문자형 char '\u0000' 0 ~ 65,535
  • VM의 피연산자 스택이 피연산자를 4 Byte 단위로 저장 하기 때문 int보다 작은 자료형의 값을 계산시int 형으로 형변환 되서 연산이 수행된다.
  • 정수형 데이터를 사용하게 되면 JVM에서 기본적으로 int형 데이터타입의 데이터로 인식을 해주게 된다.
  • int형 데이터 타입의 범위를 넘어서는 long 데이터 타입의 정수를 사용하고자 하는 경우에는 정수 데이터 맨 뒤 쪽에, 접미사 'l' 이나 'L'을 붙여줘야한다.

 

참조형 타입(Reference type)

  • 기본형 타입을 제외한 타입들이 모두 참조형 타입(Reference type)이다.
  • 빈 객체를 의미하는 Null이 존재한다.
  • 값이 저장되어 있는 곳의 주소값을 저장하는 공간으로 힙(Heap) 메모리에 저장된다.
  • 문법상으로는 에러가 없지만 실행시켰을 때 에러가 나는 런타임 에러가 발생한다. 예를 들어 객체나 배열을 Null 값으로 받으면 NullPointException이 발생하므로 변수값을 넣어야 한다.
타입 예시 기본값 할당되는 메모리 크기
배열(Array) int[] arr = new int[5]; Null 4byte(객체의 address값)
열거(Enumeration)   Null
클래스(Class) String str ="test"; Null
인터페이스(Interface)   Null

 

728x90

'Dev > JAVA' 카테고리의 다른 글

[Code] Refactoring , 리펙토링  (0) 2022.02.28
[Design Pattern] 빌더 패턴(Builder Pattern)  (0) 2021.12.02
[JAVA]Optional이란?  (0) 2021.06.17
[JAVA]상속(Inheritance)  (0) 2021.06.16
[JAVA]삼항연산자(Ternary Operator)  (0) 2021.06.15
728x90

  • 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조
  • 파이썬에서는 리스트 타입이 배열 기능을 제공함

@배열이 필요한 이유

  •  같은 종류의 데이터를 효율적으로 관리하기 위해 사용
  •  같은 종류의 데이터를 순차적으로 저장

 

@C 언어 예: 영어 단어 저장
  • #include <stdio.h>int main(int argc, char * argv[]){   
  • char country[3] = "US";   printf ("%c%c\n", country[0], country[1]);  
  • printf ("%s\n", country);       
  • return 0;
  • }
@파이썬 언어 예: 영어 단어 저장
  • country = 'US'
  • print (country)

@파이썬과 배열

  • 파이썬에서는 리스트로 배열 구현이 가능하다.

#1차원 배열
data = [1,2,3,4,5]
print(data)
  >결과값=[1, 2, 3, 4, 5]

 


#2차원 배열
data1 = [[1,2,3,],[4,5,6],[7,8,9]]
print(data1)
print(data1[1])
print(data1[1][1])
print(data1[2][2])
print(data1[2][2],data1[2][1],data1[2][0])

 결과값=

     >[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
     >[4, 5, 6]
     >5
     >9
     > 9 8 7

 

#2차원 배열

print (data_list[0])
print (data_list[0][0])
print (data_list[0][1])
print (data_list[0][2])
print (data_list[1][0])
print (data_list[1][1])

 결과값

    >[1, 2, 3]

    >1

    >2

    >3

    >4

    >5 

 

@@@연습@@@

dataset = ['Braund, Mr. Owen Harris',
'Cumings, Mrs. John Bradley (Florence Briggs Thayer)',
'Heikkinen, Miss. Laina',
'Futrelle, Mrs. Jacques Heath (Lily May Peel)',
'Allen, Mr. William Henry',
'Moran, Mr. James',
'McCarthy, Mr. Timothy J',
'Palsson, Master. Gosta Leonard',
'Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)',
'Nasser, Mrs. Nicholas (Adele Achem)',
'Sandstrom, Miss. Marguerite Rut',
'Bonnell, Miss. Elizabeth',
'Saundercock, Mr. William Henry',
'Andersson, Mr. Anders Johan',
'Vestrom, Miss. Hulda Amanda Adolfina',
'Hewlett, Mrs. (Mary D Kingcome) ',
'Rice, Master. Eugene',
'Williams, Mr. Charles Eugene',
'Vander Planke, Mrs. Julius (Emelia Maria Vandemoortele)',
'Masselmani, Mrs. Fatima',
'Fynney, Mr. Joseph J',
'Beesley, Mr. Lawrence',
'McGowan, Miss. Anna "Annie"',
'Sloper, Mr. William Thompson',
'Palsson, Miss. Torborg Danira',
'Asplund, Mrs. Carl Oscar (Selma Augusta Emilia Johansson)',
'Emir, Mr. Farred Chehab',
'Fortune, Mr. Charles Alexander',
'Dwyer, Miss. Ellen "Nellie"',
'Todoroff, Mr. Lalio']

 

>위의 dataset 리스트에서 전체 이름 안에 M 은 몇 번 나왔는지 빈도수 출력하기\

 

m_count =0

for data in dataset:
     for index in range(len(data)):
           if data[index] == 'M':
                m_count +=1
print(m_count)

 

728x90

'Dev > 알고리즘 ,자료구조' 카테고리의 다른 글

[Algorithm]BeakJoon_1330  (0) 2021.07.18
Insertion_Sort(삽입 정렬)  (0) 2021.06.30
Selection_Sort(선택 정렬)  (0) 2021.06.29
Bubble_Sort(거품 정렬)+JAVA로 구현  (0) 2021.06.28
스택(Stack) JAVA로 구현  (0) 2021.04.24

IntelliJ 단축키(MAC)

ryudjae
|2021. 3. 11. 15:59
728x90

@IntelliJ IDEA는 편집, 탐색, 리팩토링, 디버깅 등 일상적으로 수행하는 대부분의 작업에 대하여 해당 명령어의 키보드 단축키를 제공합니다. 이러한 단축키를 배우고 연습하여 기억해 두면 작업 흐름을 원활하게 유지하는 데 도움이 됩니다.

포커스

  •  F2
    • 다음 오류, 경고, 제안으로 점프함
  • Alt + 1
    • 프로젝트 창이 열리고 포커스가 위치함
    • 트리 탐색 및 검색에 유용
    • Esc를 누르면 포커스가 다시 에디터로 복귀됨
  • Ctrl + W / Ctrl + Shift + W
    • 선택 영역 확장 / 축소
  • Ctrl + Shift + ←→
    • 영역 선택(단어 단위)
  • 실행/디버깅
    • CTRL + D : 디버깅
    • CTRL + OPT + D : 여러 configuration들이 존재할때 특정 configuration 선택할 수 있는 창을 띄움
    • CTRL + SHIFT + D : 현재 커서가 있는 파일 또는 유닛테스트를 build & debug
    • 참고: 위 세가지 단축키의 D 대신 R을 입력하면 디버깅 대신 실행 모드로 동작
    • F8: 디버깅 중에 누르면 next line으로 진행
    • CMD + OPT + R : 현재 브레이크포인트에 멈춰있는 어플리케이션을 Resume
    • CMD + F8 : 현재 커서에 브레이크 포인트 토글
  • CMG + , : InterlliJ 전체 설정
  • CMD + ; : 프로젝트 설정
  • OPT + ENTER : 밑줄친 곳에서 추가액션
    • lint 적용, 오타 보정, error correction 등등 다양한 액션 가능
  • 아이템 찾기
    • CMD + (SHIFT or OPT) + O : find symbols, files
    • CMD + SHIFT + a : find actions (인텔리제이의 수많은 메뉴와 기능들을 찾기 힘들때는 이곳을 통해서 검색할것)
    • SHIFT 2회 : find all
    • CMD + E : 최근 열었던 파일 목록
  • 텍스트 찾기
    • CMD + SHIFT + F
      • text 전체 찾기
      • scope 지정 가능
    • CMD + SHIFT + R
      • text 전체 Replace
  • CMD + F12 : current file’s structure
  • 코드 찾기
    • OPT + F7 : find usage
    • CTRL + OPT + H: call hierachy
    • CTRL + H: type hierachy
    • CMD + Click: Jump to definition
    • CMD + OPT + Click: Jump to Implementation
      • interface를 구현한 구현체들을 검색해서 이동
  • CMD + DELETE : 현재 커서가있는 한줄 삭제
  • OPT + F1 → 1 : 현재파일 프로젝트 트리에서 열기
  • SHIFT + F6 : 이름 바꾸기 (refactor)
  • CMD + SHIFT + V : 클립보드 히스토리 보기
  • 네비게이션
    • CMD + [ : 뒤로 이동
    • CMD + ] : 앞으로 이동
  • 윈도우 분할해서 사용중일때
    • (단축키 없음) Move to Opposite Group 현재 열려있는 파일을 반대편 윈도우로 옮긴다.
728x90

'Dev' 카테고리의 다른 글

DataBase Engine(데이터 베이스 엔진)  (0) 2021.09.28
프록시(Proxy)란  (0) 2021.07.26
객체 지향 프로그래밍(OOP)  (0) 2021.06.16
[CS]프로세스(Process)란?  (0) 2021.06.13
[Network]URL,URI,URN의 정의  (0) 2021.04.13