01. source file basics :: 2021/05/28 16:59

개발자를 위한

Java Programming Style Guide (ref. Google style guide)

1. Source file basics

  • 파일
    • 소스 파일 명은 대소문자를 구분하여 정확하게 하나만 있는 최상위 클래스와 .java 확장자로 이루어져 있습니다.
  • 파일 인코딩 : UTF-8
    • 소스 파일은 UTF-8 인코딩 되어야 합니다.
  • 특수 문자
    • 공백 문자 (White space characters)
      • 라인 종결자 문자열(sequence) 제외하면, ASCII 가로 공백 문자(0x20) 소스 파일의 어디서나 사용할 있는 유일한 공백 문자입니다.
        1. 문자열(string) 문자 리터럴(character literals) 있는 모든 다른 공백 문자들은 예외(escape)입니다.
        2. (Tab) 문자는 들여쓰기(indentation) 사용하면 됩니다. 
    • 특수 확장열 (Special escape sequences)
      • 특수 확장열(special escape sequences) 가진 모든 문자의 경우, 8진수(ex. \012) 유니코드(\u000a) 특수문자 대신 해당 확장문자 (\b, \t, \n, \f, \r, \”, \’, \\) 사용합니다.
    • Non-ASCII 문자 (non-ASCII characters)
    • 나머지 non-ASCII 문자의 경우, 실제 유니코드 문자(ex.∞) 동등한 유니코드 특수문자(ex. \u221e) 사용됩니다. 유니코드 특수문자가 문자열이나 주석 외부에서 사용되는 것은 정말 권장하지 않지만, 코드를 쉽게 읽고 이해할 있도록 만들기 위한 방법이라면 선택할 있습니다.

Tip : 유니코드 특수문자의 경우, 때때로 실제 유니코드를 사용하는 것이 주석을 설명하는데 매우 유용할 있습니다.

    • Example

Example

Discussion

String unitAbbrev = "μs";

Best : 주석없이 완벽하게 명확함.

String unitAbbrev = "\u03bcs"; // "μs"

Allowed : 하지만 이렇게 작성할 이유가 없음.

String unitAbbrev = "\u03bcs"; // Greek letter mu, "s"

Allowed : 하지만 어색하고 실수하기 쉬움.

String unitAbbrev = "\u03bcs";

Poor : 독자는 이것이 무엇인지 전혀 모름.

return '\ufeff' + content; // byte order mark

Good: 인쇄할 없는 문자에는 특수문자를 사용하고, 필요한 경우 주석 추가.

Tip : 일부 프로그램에서 non-ASCII 문자를 제대로 처리하지 못할 수도 있다는 두려움 때문에 코드의 가독성을 떨어 뜨리면 안 됩니다. 만약 그런 일이 발생한다면, 해당 프로그램은 중단되고, 수정해야만 합니다.

2021/05/28 16:59 2021/05/28 16:59
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret

Basic Concept of Docker :: 2021/04/19 22:30

Docker 환경에 대한 기본 용어 정의.


namespace
이름공간 또는 네임스페이스(Namespace)는 개체를 구분할 수 있는 범위를 나타내는 말.
일반적으로 하나의 namespace에서는 하나의 이름이 단 하나의 개체만을 가리킴.

docker
컨테이너를 만들고 사용할 수 있도록 하는 컨테이너화 기술

docker engine
OS virtualization 및 컨테이너 실행 환경

image
docker engine으로 실행할 수 있는 바이너리
파일시스템을 포함하여 어플리케이션에 필요한 모든 것을 포함하고 있음.

container
docker engine에서 image가 실행된 형태.
서버의 다른 모든 프로세스들과 분리된 프로세스.

2021/04/19 22:30 2021/04/19 22:30
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret

Basic Docker Commands :: 2021/04/19 22:14

<get container image from docker hub>
docker pull {image_name}

<image list>
docker images

<container create>
docker run -i(interactive)t(pseudo-tty) -d(background) -p(hostport:containerport) hostport:containerport --name={name} image_name:tag

<container stop>
docker stop {name}
docker stop {container_id}

<container start>
docker start {name}
docker start {container_id}

<executing container process list>
docker ps

<total container list>
docker ps -a

<container connect>
docker exec -it {container_name} /bin/bash
: exec는 실행중인 컨테이너에 접속, run은 컨테이너를 신규로 생성하여 실행

<file share:host->container>
docker cp {host_file_path} {container_name}:{container_file_path}

<file share:container->host>
docker cp {container_name}:{container_file_path} {host_file_path}

<container remove>
docker rm {name}
docker rm {container_id}
docker rm {container_id}, {container_id}

<image remove>
docker rmi {image_id}

<container and image remove>
docker rmi -f {image_id}

2021/04/19 22:14 2021/04/19 22:14
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret
< PREV |  1  |  2  |  3  |  4  |  5  |  ...  214  |  NEXT >