백기선님의 <더 자바, 애플리케이션을 테스트하는 다양한 방법>을 듣고 정리하는 글 입니다.@TestInstance(TestInstance.Lifecycle.PER_CLASS)모든 테스트 메소드가 하나의 클래스 안의 값을 공유@TestMethodOrder(Metho
예제를 위해 Classes 클래스에 Progress라는 reference 타입의 필드를 추가하고구동 App의 경우 생성 Classes 생성자에서 Progress 인스턴스를 주지 않은 상황이다.이런 상황에서 위와 같은 코드를 실행하면 progress가 null이라며 NP
이미지 출처 : https://steady-coding.tistory.com/309Stream의 가장 큰 특징 중 하나는 원본 데이터를 Source로 하지만원본 데이터를 변경(수정/삭제)하지 않고 별도의 데이터 흐름(Stream)을 만든다는 것 이다.위의 코드
람다와 로컬/익명 클래스가 다른 하나는 변수의 범위(scope)에 대한 부분이다.람다 : 람다가 속한 메소드와 같은 범위로 인식된다.로컬/익명 클래스 : 로컬/익명 클래스와 속한 메소드의 범위가 다르다.이와 같은 차이는 위 Code에서 보다시피 같은 이름의 변수 선언
함수형 인터페이스는 내부에 추상 메소드를 하나만 가지는 인터페이스를 의미하며2개 이상이 되면 @FunctionalInterface 어노테이션에 의하여 컴파일 에러가 발생한다.(static 메소드나 default 메소드는 추가로 가져도 상관없음)기존의 함수형 인터페이스
정상 종료하면 0을 리턴하고, 에러가 발생하면 에러를 리턴 exit()와 같이 쓰레드를 종료할 때 사용하는 함수 쓰레드들의 실행간에 순서를 정하고 싶은 때 pthread_join()을 사용 pthread_join()이 없으면 main/thread1/th
명령어로 하던 서버작업을 자동화하는 것에 가장 많이 쓰이며적어도 작성된 쉘스크립트를 읽고 이해하는 수준은 되어야 함 반복적이고 일상적인 작업(로그 정리)은 자동화하는 것이 용이쉘스크립트 파일은 실행권한(x)이 필요하므로 없는 경우 chmod 777로 권한부여 후 실행e
UNIX 기반 OS의 커널은 C 언어로 만들어졌기 때문에커널에 명령을 내리는 시스템콜 또한 C 언어 명령을 내리면 된다.사용자 영역(응용 프로그램)이 C 언어로 만들어졌다면 바로 시스템콜 사용이 가능하다.int 0x80(system_call()) 함수를 실행 > eax
cp : cp 원본 복사본원본파일을 원하는 복사본 이름으로 복사(-rf 옵션과 함께 주로 사용 / r : recursive, f : 강제(Y))ln(엘엔 - 아이엔 아님!) : ln 원본 링크 파일에 대한 링크를 생성 ln(하드링크)는 같은 inode(같은 파일)의 접
& 명령어를 통해 background에서 원하는 프로세스를 실행 가능 Ctrl+ z 명령으로 foreground에서 실행중인 프로세스를 **Stopped 상태로 backgroun
기본적으로는 terminal(console)에 출력되는 것이 기본필요에 따라 표준 입출력을 파일으로 할 수도 있다 이렇게 흐름을 바꾸는 것이 리다이렉션ls의 output인 파일 목록이 greb의 input으로 들어오고 이중 issue라는 키워드를 찾음
Shell 명령어는 하나하나 쳐보면서 익숙해지는 것이 필요cd ~ : 현재 사용자의 기본 디렉토리 이동cd - : 바로 이전에 있던 디렉토리 이동\-R : Recursive -> 하위의 폴더에도 같은 설정을 지정more 이후에 enter(한줄)나 space(한페이지)로
리눅스는 요즘 클라우드 기술과 결합하여 클라우드 서버로도 활용된다클라이언트(사용자)는 WINDOWS나 MAC OS를 사용하는 경우가 많다.(MAC OS도 LINUX와 같이 UNIX가 조상이라고는 할 수 있다.)리눅스는 GNU 프로젝트와 연계하여 발전했기 때문에 GNU
하나의 하드웨어에 가상 머신으로 여러개의 컴퓨터처럼 동작하게 하는 프로그램TYPE1(Bare Metal, KVM(AWS))하드웨어 바로 위에 VMM를 설치하여 복수의 가상머신을 구동시키는 방식 TYPE2(VMWare)OS 위에 하나의 application처럼 VMM을
파일시스템운영체제가 저장매체에 파일을 쓰기 위한 자료구조 또는 알고리즘4kb 크기의 블록 단위로 데이터를 관리 -> 관리해야 할 데이터가 점점 커짐 \-> 복수의 블록들을 포함하는 파일이라는 개념이 탄생외부단편화연속된 공간에 파일들을 저장하면 중간에 저장된 파일의 사이
만약 RAM이 8GB라면 프로세스를 2개 밖에 사용하지 못한다.그래서 필요한 것이 가상메모리!마치 CPU가 프로세스 간을 Switching 하듯이RAM에서 프로세스(Code)를 바꿔가면서 메모리에 올려서 사용한다.전체 프로세스의 Code를 한 시점에 모두 필요한 것이
쓰레드의 가장 큰 특징이자 장점은 프로세스 안에 동시 실행이 가능하면서도프로세스안의 데이터를 모두 접근 가능하다는 점이다.쓰레드를 가장 간단하게 이해하자면 한 프로세스 안에 여러개의 Stack을 가지는 것이라고 할 수 있다.위와 같이 된다면 Data는 공유하되 각 실행
IPC(InterProcessCommunication)프로세스 간 통신방법으로 기본적으로는 프로세스 간 공유는 위험하나여러 프로세스를 동시에 만들어 실행하면(병렬처리) 성능적으로 우수하므로 IPC가 필요fork() 시스템콜프로세스를 복사하는 함수로 실행할때마다 같은 프
컨텍스트 스위칭스케쥴러가 CPU에서 실행되고 있는 프로세스를 변경할 때 각각의 프로세스에해당하는 컨텍스트(ProgramCounter(PC)/StackPointer(SP) 등의 레지스터)를 변경하는 것빈번하게(10ms) 일어나므로 오버헤드가 있을 수 있어 어셈블리어로 실