목록전체 글 (302)
elevne's Study Note

관리명령어란 프로세스, 메모리, 파일시스템 관리를 위한 명령어이다. 시스템 운영을 위해 필요하다. crontab crontab 은 정기적으로 지정한 시간에 실행하고 싶은 명령어를 등록한다. (스크립트를 등록해도 된다) 이는 등록된 계정의 사용자로 실행되고, 다른 사용자의 crontab 을 등록하려면 -u 옵션을 이용한다. crontab 을 등록할 때는 실행하고자 하는 주기와 명령어를 입력한다. 주기는 분, 시, 일, 월, 요일의 형태로 입력한다. ( * 는 모두를 의미하며, (매분, 매시, 매일, 매월, 모든 요일) 에 실행하고자 할 때 사용) crontab -e 로 crontab 명령을 입력해주고 crontab -l 로 내용을 확인해볼 수 있다. (밑의 crontab 은 매 1분마다 time.sh 를 ..

Gson 은 Java Object 를 JSON 으로 변환하는데 사용할 수 있는 Java 라이브러리이다. JSON 문자열을 동등한 Java 객체로 변환하는데에도 사용할 수 있다. 우선 아래와 같이 간단하게 User 클래스를 작성해본다. package test_classes2; public class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } } 위 클래스를 JSON 문자열로 변환하는 것은 매우 간단하다. 아..

운영체제란 컴퓨터 하드웨어와 소프트웨어 사이에서 소통을 도와주는 인터페이스이다. 대표적인 예로 유닉스, 리눅스, MS 윈도우, OS X, 안드로이드 등이 있다. 이 중에서 유닉스는 AT&T 벨 실험실에서 개발된 운영체제로, 간결하면서도 유연한 명령어 구성으로 이루어져있으며 이식성이 강한 개방형 시스템이라고 한다. 시분할 시스템으로 멀티 유저의 접근을 허용하며, 멀티태스킹 시스템으로 동시에 여러 프로세스를 처리한다. 리눅스는 유닉스 계열의 운영체제이다. 핀란드 헬싱키 대학의 리누스 토발즈가 대형 컴퓨터에서 사용하는 유닉스 소스 코드를 수정하여 개인 PC 에서도 사용할 수 있게한 것이다. 리눅스는 각종 회사, 커뮤니티에서 만든 배포판이 여러가지 존재하는데, 이 배포판은 리눅스 커널, 쉘, 오픈소스 소프트웨어..

Enum (열거체, Enumeration Type) 에 대해서 알아보았다. C 언어와 C++ 에서는 열거체를 사용할 수 있었지만, JDK 1.5 이전의 Java 에서는 Enum 을 사용할 수 없었다고 한다. 하지만 JDK 1.5 이후로는 C 언어의 열거체보다 더욱 향상된 성능의 Enum 클래스를 사용할 수 있게되었다고 한다. 자바의 Enum 은 열거체를 비교할 때 실제값 뿐만 아니라 타입까지도 체크하며, 열거체의 상수값이 재정의되더라도 다시 컴파일할 필요가 없다는 장점이 있다. 우선 아래와 같이 매우 간단한 Enum 클래스를 생성해보았다. package test_classes; public enum TestEnum { RED, BLUE, GREEN } 위 TestEnum 내에 RED, BLUE, GREE..

이번에는 Java 의 Functional Interface 에 대해 알아보았다. Functional Interface 란 단 하나의 추상 메서드를 가지는 인터페이스를 말한다. (단 default 메서드는 제외한다) @FunctionalInterface 메서드가 사용될 수 있는데 이는 인터페이스가 Functional Interface 라는 것을 명시해주며, 이를 사용할 시 부적절한 메서드를 추가하거나 다른 인터페이스를 상속받으면Compile error 을 발생시킨다. Functional Interface 를 사용하는 이유는 무엇일까? 함수형 개발 방식은 행위에 해당하는 부분도 값으로 취급이 가능해졌다는 뜻이다. 코드의 재활용 단위가 클래스에서 함수 단위로도 가능해진 것이며, 이는 개발을 더 유연하게 할 수..
Spring IoC 기능의 대표적인 동작원리는 주로 의존성 주입이라고 불린다. Spring 이 여타 프레임워크와 차별화돼서 제공해주는 기능은 의존성 주입이라는 용어를 사용할 때 분명하게 드러난다고 한다. 두 개의 클래스, 또는 모듈이 의존관계에 있다고 말할 때는 항상 방향성을 부여해줘야 한다. (즉 누군가 다른 누군가에게 의존하는 관계에 있는 것) 의존한다는 것은 B 가 변할 때 그것이 A 에 영향을 미친다는 것이다. 지금까지 작성한 UserDao 를 보면 이는 ConnectionMaker 에 의존하고 있는 형태인 것을 확인할 수 있다. ConnectionMaker인터페이스가 변하면 그 영향을 UserDao 가 직접적으로 받게되는 것이다. 하지만 ConnectionMaker 을 구현한 클래스 (NewCo..
import math math.radians(30) Radian 각도의 값을 반환한다. type(1) #int type(12.1) #float type("Hello") #str type 반환한다. x1 = 3 id(x1) #2297624160624 x2 = "Hello" id(x2) #2297710128304 객체의 주소값을 반환한다. x1 = 3 x12 # x2/(2**2) = 2 shift 연산자이다. name = "Harry" name.lower() # 'harry' x = 1 y = 2 (1 ^ 0) # XOR lower() 메서드와 XOR 연산자이다. abs(-33) # 절대값 33 # 문자열 "%s * %s = %s"%(3, 3, 3*3) # 정수형 "%d * %d = %d"%(3, 3, 3*..
지금까지 UserDao 를 리팩토링하면서, 마지막에는 Main 메서드 내에서 어떤 ConnectionMaker 구현클래스를 사용할지를 결정하는 기능을 부여하였다. UserDao 가 ConnectionMaker 인터페이스를 구현한 특정 클래스로부터 완벽하게 독립할 수 있도록 UserDao 의 클라이언트인 UserDaoTest (Main) 가 그 수고를 담당하게 된 것이다. 이 역할 또한 분리해줄 필요가 있는 것이다. 분리시킬 기능을 담당할 클래스를 하나 생성한다. 이 클래스의 역할은 객체의 생성 방법을 결정하고 그렇게 만들어진 오브젝트를 리턴하는 것인데, 이런 일을 하는 오브젝트를 흔히 Factory 라고 부른다. 팩토리 역할을 맡을 클래스를 DaoFactory 라고 이름붙이고 아래와 같이 작성해준다. p..