전체 글386 오픈소스 터미널 에뮬레이터(PuTTY, Termius, MobaXterm) ㅁ PuTTY: 오픈소스 터미널 에뮬레이터SSH, Telnet, Rlogin과 같은 원격 프로토콜을 지원한다. macOS는 기본 터미널로 SSH접속이 가능하지만, Windows 같은 경우는 불가능해서 Windows에서 SSH 접속을 위해 많이 사용한다. 그래서 네트워크 관리자, 개발자, 시스템 관리자 등이 원격 서버에 접속하고 관리하는 데 자주 사용된다.※ Windows 10부터는 cmd로도 SSH접속이 가능하다고 한다 근데 그렇다고 해서 맥북이 PuTTY를 무조건 설치 안 해도 되는 것이 아니다. PuTTY와 같은 툴을 사용하면 얻을 수 있는 이점이 많다.PuTTY와 같은 툴 설치의 이점:세션 관리:PuTTY는 다양한 세션 프로파일을 저장하고 관리할 수 있는 기능을 제공합니다. 이를 통해 여러 서버에 .. 2024. 9. 4. [UNIX/Linux] ep0) 시스템 프로그래밍의 이해 UNIX, 그야말로 운영체제계의 goat모든 운영체제가 UNIX에 영향을 받았다고 해도 과언이 아니다. 심지어 Windows 까지도 분명 UNIX에 영향을 받은 부분이 무조건 있을 것이다. (Windows는 오픈소스가 아니라서 자기네들의 코드를 공개하지 않는다) 서버의 운영체제는 요즘 90%가 다 Linux를 쓴다. 그래서 금융권에서는 UNIX를 Linux로 대체하는 U2L(UNIX to Linux)이 확산되고 있다. ※ 리눅스 시스템에서 라이브러리는 보통 /usr/lib 에 위치한다정적 라이브러리: 프로그램을 컴파일할 때 같이 적재되어 실행 파일을 구성한다공유 라이브러리: 실행 파일에 포함되지 않아 메모리를 효율적으로 사용하기 위해 사용한다 [파일시스템 - 파일과 디렉터리]절대 경로(absolute .. 2024. 9. 4. 썸머타임과 타임존 계산 ㅇ썸머 타임(일광 절약 시간: DST, Daylight Saving Time)보통 3월에서 10월은 태양이 일찍 뜨고, 나머지는 태양이 상대적으로 늦게 뜬다. 시간도 여기에 맞추어 1시간 앞당기거나 늦추는 제도를 썸머 타임이라 한다. ㅇ타임존 계산세계는 다양한 타임존으로 나뉘어져 있으며, 각 타임존은 UTC(협정 세계시)로부터의 시간 차이로 정의된다.UTC (Coordinated Universal Time, 협정 세계시): 원자 시계를 사용하여 측정한 국제적으로 합의된 시간 체계. 지구의 자전 속도가 변화하는 것을 고려하여 윤초를 추가하거나 빼는 방식으로 시간을 조정함으로써, 보다 정확한 시간을 유지한다. 따라서 정밀한 시간 측정과 국제적인 표준에 관해서는 UTC가 선호된다.기준 시간: UTC+0전 세.. 2024. 8. 28. [Java API] 날짜와 시간 라이브러리 https://claremont.tistory.com/entry/%EC%8D%B8%EB%A8%B8%ED%83%80%EC%9E%84%EA%B3%BC-%ED%83%80%EC%9E%84%EC%A1%B4-%EA%B3%84%EC%82%B0 썸머타임과 타임존 계산ㅇ썸머 타임(일광 절약 시간: DST, Daylight Saving Time)보통 3월에서 10월은 태양이 일찍 뜨고, 나머지는 태양이 상대적으로 늦게 뜬다. 시간도 여기에 맞추어 1시간 앞당기거나 늦추는 제도를 썸claremont.tistory.com(참고) Java의 날짜와 시간 라이브러리 역사https://claremont.tistory.com/entry/%EC%88%98%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9E%90%EC%84%B.. 2024. 8. 27. 수용하는 자세에 대해서 자바의 표준 ORM 기술인 JPA의 역사를 아는가? 과거 자바가 제공하던 표준 ORM 기술은 매우 매우 불편했다. 이에 대응해 누군가가 하이버네이트라는 ORM 오픈 소스를 만들었는데, 이 기술이 자바 표준 ORM 기술보다 더 널리 사용되었다. 썬 마이크로시스템즈는 결국 하이버네이트를 만든 개발자를 데려와 새로운 자바 ORM 표준을 만들었고, 이것이 바로 오늘날의 JPA가 되었다. 자바의 java.time 패키지도 이와 비슷하다. 자바가 처음 표준으로 제공했던 Date와 Calendar 라이브러리는 사용성이 떨어지고, 여러 문제점이 많았다. 이러한 문제를 해결하기 위해 Joda-Time이라는 오픈소스 라이브러리가 등장했다. Joda-Time은 뛰어난 편리함과 사용성 덕분에 크게 대중화되었다. 이 상황.. 2024. 8. 25. [Java API] enum 주요 메서드 정리 타입 안전 열거형 패턴 - Type-Safe Enum Pattern ㅁenum 열거형: 타입 안전성을 제공하고, 코드의 가독성을 높이며, 예상 가능한 값들의 집합을 표현하는 데 사용정해진 객체만 사용할 수 있기 때문에, 잘못된 값을 입력하는 문제를 근본적으로 방지해 준다. (런타임 에러 아닌 컴파일 에러로 사전 차단)※ enum은 enumeration의 약자이다 (특징)1. 외부 생성도 컴파일 에러로 차단해준다.2. 열거형은 java.lang.Enum 를 자동(강제)으로 상속받는다..3. 열거형은 이미 java.lang.Enum 을 상속받았기 때문에 추가로 다른 클래스를 상속을 받을 수 없다. 4. 열거형은 인터페이스를 구현할 수 있다.5. 열거형에 추상 메서드를 선언하고, 구현할 수 있다. (이 경.. 2024. 8. 24. [Java API] Math 클래스, Random 클래스 ㅇMath 클래스: 다양한 수학적 연산을 위한 정적 메서드를 제공하는 유틸리티 클래스따라서 객체를 생성하지 않고 클래스 이름을 통해 직접 메서드를 호출할 수 있다package lang.math;public class MathTest { public static void main(String[] args) { System.out.println("max(1, 3): " + Math.max(1, 3)); // 최대값 System.out.println("min(1, 3): " + Math.min(1, 3)); // 최소값 System.out.println("abs(-1): " + Math.abs(-1)); // 절대값 System.out.println();.. 2024. 8. 23. [Java API] System 클래스 ㅇSystem 클래스: Java 프로그램 기본 시스템 기능에 접근할 수 있는 유틸리티 클래스e.g. 자바 프로그램의 표준 입력, 표준 출력, 시스템 속성, 환경 변수, 시간 측정 등의 기능을 제공※ 이 클래스는 상속할 수 없으며, 모든 메서드와 필드는 정적(static)으로 선언되어 있어 객체를 생성하지 않고 사용할 수 있다 (예시 코드)package lang.system;import java.util.Arrays;public class SystemMain { public static void main(String[] args) { // 현재 시간(ms)을 가져온다 long currentTimeMillis = System.currentTimeMillis(); S.. 2024. 8. 23. [OOP] 리플렉션(reflection) ㅇ리플렉션(reflection): OOP에서 런타임에 프로그램의 구조를 검사하고 조작할 수 있는 메커니즘프로그램이 실행 중에 자신에 대한 정보를 탐색하거나, 구조를 동적으로 변경할 수 있다. 예를 들어, 클래스의 메타 정보를 기반으로 클래스에 정의된 메서드, 필드, 생성자 등을 조회하고, 이들을 통해 객체 인스턴스를 생성하거나 메서드를 호출하는 작업을 할 수 있다. 이런 작업을 리플렉션이라 한다. 또 추가로 애노테이션 정보를 읽어서 특별한 기능을 수행할 수도 있다. 최신 프레임워크들은 이런 기능을 적극 활용한다. ※ reflection은 자아성찰이라는 뜻을 갖고 있다 리플렉션의 기본 개념메타데이터 접근: 리플렉션을 사용하면 클래스, 인터페이스, 메서드, 필드 등의 메타데이터(데이터에 대한 데이터)에 접근.. 2024. 8. 23.