본문 바로가기

반응형

분류 전체보기

(237)
[Linux] PID, PPID 1. PID, PPID - PID PID 는 Process ID 의 줄임말로 운영체제에서 프로세스를 식별하기 위해 부여하는 번호를 의미한다. 프로세스는 실행 중인 프로그램을 의미한다. 메모리에 적재되어 있으며, 프로세스의 상태 정보, PCB 를 포함한 개념이다. PID 의 최대값은 32768 이다. 32768 인 이유는 16bit signed integer 를 사용하기 때문이다. PID 의 ID 할당 방식은 최근 할당된 PID 에 1을 더한 값으로 할당한다. 순서대로 1씩 할당되다가 32768 을 넘어가면 다시 1부터 시작한다. - PPID PPID 는 Parent Process ID 의 줄임말로 부모 프로세스의 PID 를 의미한다. 부모 프로세스는 현재 실행 중인 프로세스 (자식 프로세스) 를 시스템 ..
[JAVA] Calendar & Date 1. Calendar & Date Calendar 와 Date 는 java 초창기부터 제공되어진 클래스들이다. 초창기에 만들어진만큼 단점도 많지만 그만큼 많이 사용된다. 이러한 단점들을 보완하여 나온 것이 JDK1.8 의 java.time 패키지이다. 이번 장에서는 Calendar 와 Date 클래스의 사용 예제에 대해서 알아본다. - Calendar & GregorianCalendar Calendar 는 추상 클래스이기 때문에 직접 객체를 생성하여 사용할 수 없다. Calendar 클래스를 상속받은 GregorianCalendar 와 BuddhistCalendar 를 사용하여 객체를 생성하여 사용한다. 대부분의 국가에서는 그레고리력을 사용하기 때문에 GregorianCalendar 를 사용하면 되지만 ..
[JAVA] try-with-resources statement try-with-resources statement try-with-resources 구문은 하나 또는 복수 개의 자원을 선언하는 try 문이다. 각 자원들은 사용이 끝나면 close 되어야 하는데, try-with-resources 구문은 try 문을 탈출할 때 선언된 자원들을 모두 닫아준다. 기존의 try 문에서는 catch 블럭이나 finally 블럭 등에서 자원을 닫아주었어야 하는데, 이를 자동으로 처리해주기 때문에 편리하다. 자원으로 사용할 수 있는 객체들은 java.lang.AutoCloseable 인터페이스의 구현체에 한정된다. 기존의 try-catch 문과 동일하게 catch 블럭이나 finally 블럭을 사용할 수 있다. // 기존의 try-catch 문 // finally 블럭에서 자원..
[JAVA] Serialization & Deserialization 1. Serialization & Deserialization 자바 직렬화, Serialization 이란 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 기술이다. 이와 반대되는 기술로 바이트로 변환된 데이터를 다시 객체로 변환하는 기술을 역직렬화, Deserialization 이 있다. 시스템적으로 이야기하자면 JVM(Java Virtual Machine 이하 JVM)의 메모리에 상주(힙 또는 스택)되어 있는 객체 데이터를 바이트 형태로 변환하는 기술과 직렬화된 바이트 형태의 데이터를 객체로 변환해서 JVM으로 상주시키는 형태를 같이 이야기한다. - Serialization 자바에서 직렬화는 객체를 직렬화하여 전송 ..
[JAVA] java.util 패키지 1. java.util.Objects Object 클래스의 보조 클래스로 Math 클래스처럼 모든 메서드가 static이다. 객체의 비교나 null check 에 유용하다. // 객체가 null 인지 아닌지 확인하여 결과를 반환 static boolean isNull(Object obj) static boolean nonNull(Object obj) // 해당 객체가 null 인지 아닌지 판단하여 null 인 경우에 NullPointerException 을 발생시킨다. static T requireNonNull(T obj) static T requireNonNull(T obj, String message) static T requireNonNull(T obj, Supplier messageSupplier..
[Python] Magic method - 속성 관리 1. object.__getattr__(self, name) 객체의 attribute 에 접근이 실패하여 AttributeError 가 발생하면 호출된다. AttributeError 는 해당 attribute가 객체나 클래스에 존재하지 않는 경우 __getattribute__() 메서드 등에 의해 발생한다. 이때 예외처리를 통해서 특정한 속성 값을 반환할 수도 있고, 따로 처리가 없는 경우 동일하게 AttributeError를 반환하도록 할 수도 있다. 만약 정상적으로 attribute 가 반환되는 경우에는 __getattr__() 메서드가 호출되지 않는다. 만약 attribute 접근에 대한 완전한 조작을 하기 위해서는 아래의 __getattribute__() 메서드를 사용하면 된다. 2. object..
[Python] Magic method - 객체 표현 1. object.__repr__(self) 자바의 toString() 메서드와 같이 객체의 공식적인 문자열 표현을 수행하는 built-in 함수이다. 해당 객체를 인간이 이해할 수 있는 형태로 표현해주는 메서드로 repr의 결과를 통해서 같은 값을 가지는 새로운 객체를 만들 수 있는 python 표현이나, 해당 객체에 대한 설명 등을 얻을 수 있다. 보다 개발자 친화적인 결과를 반환하는데 사용된다. 만약 __str__() 이 정의되어 있지 않은 경우에 __repr__() 이 객체의 정보에 대한 표현에도 사용된다. 주로 디버깅에 사용된다. 2. object.__str__(self) str(object)나 format(), print() 등의 함수를 호출 시에 사용되는 객체의 표현법이다. 반환 타입은 st..
[Python] Magic method - 객체 생성, 초기화 1. object.__new__(cls [, ...]) __new__() 는 클래스 cls 의 새 인스턴스를 만들기 위해 호출된다. __new__()는 static method 로 첫번째 인자로는 만들려고 하는 인스턴스의 클래스가 전달된다. 나머지 인자들은 객체 생성자에 전달되는 것들이다. 일반적으로 super().__new__(cls [, ...]) 에 적절한 인자들을 전달하는 방법으로 super class 의 __new__() 를 호출해서 새 인스턴스를 만든 후, 해당 인스턴스를 반환하기 전에 수정을 진행한다. __new__() 가 객체 생성 시에 호출되고 cls 클래스의 인스턴스를 반환한다면 __init__(self [, ...]) 를 호출하는데, 이때 self 에는 새로 생성된 인스턴스가 전달되며..

반응형