ZonedDateTime LocalDateTIme, ZonedDateTime은 java.time 패키지의 API로 자바 8 부터 추가되어 날짜 및 시간을 간단히 처리할 수 있습니다. 그중에 ZonedDateTime은 시간대를 정보를 포함하는 객체로 LocalDateTime 보다 다국어 처리에 용의합니다. ▼ 전체 ZoneId 목록을 가져옵니다. ZoneDateTime을 만들기 위해서는 ZoneId 가 필요합니다. 예를 들어 서울의 경우 Asia/Seoul 이 ZoneId가 됩니다. Asia/Aden : 2022-09-29T14:20:41.657715+03:00[Asia/Aden] America/Cuiaba : 2022-09-29T07:20:41.658806-04:00[America/Cuiaba] Etc/..
JAVA 설치하기 자바 JDK를 설치하려면 오라클 계정이 있어야 합니다. 다음 URL은 오라클 웹사이트 JAVA 버전별 설치 경로입니다. 페이지는 하나이지만 화면상 어디 있는지 모를 수도 있어서 링크를 걸어놨습니다. 저는 Java 8을 다운로드해서 설치하겠습니다. Java 18 Download Java 17 Download Java 8 Download Java 11 Download 윈도우즈의 경우에는 다음과 같이 Windows 탭을 선택해서 해당 OS 버전에 맞는 설치 프로그램을 다운로드 받습니다. 리눅스나 맥 OS 의경우 압축파일로 제공하며 윈도우는 설치파일이 있어서 설치하기 편리합니다. 설치는 매우 간단하며 기본 위치인 C:\Program Files\Java\jdk1.8.0_321 에 설치됩니다. 버..
컴퓨터 프로그래밍에 제네릭이라는 용어가 있습니다. 제네릭 타입은 클래스나 인터페이스 또는 메서드를 정의할 때 타입을 파라미터로 사용합니다. 즉 가변 타입 클래스, 인터페이스, 메서드라고 생각하면 조금 알기 쉽습니다. 제네릭은 다음과 같은 두 가지 장점이 있습니다. 또한 다음의 장점은 코드의 재사용성을 높혀줍니다. 컴파일시 강한 타입 체크를 할 수 있다. (Stronger type checks at compile time) 형변환 코드를 없앤다. (Elimination of casts) ArrayList ▼ 간단한 예로 Java에서 자주 쓰는 ArrayList로 예를 들겠습니다. 다음과 같은 코드를 사용할 때 객체 생성시 타입이 String으로 정해지고 우리는 이 값을 사용하기 위해서 형변환을 하지 않습니..
컴퓨터 프로그래밍에는 프로세스라는 개념이 있습니다. 프로세스란 실행환경이라고 생각하면 됩니다. 컴퓨터에는 메모리와 CPU가 있고 특정 프로그램이 할당한 메모리 공간과 그 외 자원들을 포함한 실행 환경을 프로세스라고 합니다. 이는 분명히 프로그램이나 애플리케이션과는 조금 다른 개념입니다. 한 개의 프로그램 또는 애플리케이션에 여러 개의 프로세스가 포함될 수 있기 때문입니다. 위에서 설명한 프로세스와 비슷한 하위 개념인 스레드가 있습니다. 스레드는 다른말로 lightweight process (경량 프로세스)라고도 합니다. 이유는 프로세스를 만드는 비용에 비해 스레드를 만드는 비용이 적게 들어가기 때문입니다. 스레드들은 어떠한 프로세스에 종속되며 프로세스에 할당된 메모리 또는 파일과 같은 자원을 스레드들끼리..
예외처리(Exception)란? 처음 프로그래밍을 하게 되면 그냥 동작하는 것에 중점을 두기 때문에 예외처리는 무시하고 넘어가기 쉽습니다. 예외는 에러(Error)의 범주에 포함됩니다. 에러는 예외를 포함에 시스템의 이상, 하드웨어의 문제등을 포괄적으로 나타내는 개념입니다. 가장 대표적으로 OutOfMemoryError를 말할 수 있습니다. 말 그대로 메모리가 부족해서 시스템이 중단 되는 상황이죠. 예외처리란 예외가 발생할 것을 개발자가 미리 예측해서 이를 제어하고 비정상 종료를 피하기 위한 처리 방법입니다. 자바를 포함한 대부분의 언어들은 이러한 예외상황을 처리하고자 Try Catch 문을 사용해서 처리합니다. 다음과 같이 두 문장으로 정리를 할 수 있습니다. 메서드 내에서 오류가 발생했을때 시스템에 ..