본문 바로가기

Java66

자바 지네릭 지난번에 enum 설명에 이어서, enum과 마찬가지로 자바 1.5에서 등장한 지네릭에 대해서 이야기해보려고 한다. 지네릭은 클래스나 메서드에서 사용할 데이터 타입을 제한한다. 이렇게 함으로써 타입 안전성을 제공하고, 변수 사용 시에 타입 체크나 타입 캐스팅을 수행하지 않아도 되는 이점이 있다. 사용 방법지네릭 클래스지네릭 클래스는 클래스 이름 뒤에 "타입 변수 T"를 명시해 준다. public class A { T item; public T getItem() { return item; } public void setItem(T item) { this.item = item; }} A a = new A();a.setItem("abc");String s.. 2024. 5. 19.
enum 어떻게 잘 활용할까? 자바 1.5 버전부터 도입된 enum은 여러 상수들을 한 곳에서 정의하기 위해 사용하는 타입이다. 벌써 자바 21 버전이 등장했지만 아직도 enum의 매력을 모르는 이들을 위해 enum을 소개하려고 한다. 먼저, enum의 특징에 대해 간단히 정리하고 활용법을 설명하겠다. Enum의 특징enum은 상수 이름, 멤버 변수, 생성자, 메서드로 구성된다.public enum Sns { // 상수의 이름과 필드에 해당하는 값들 NAVER("naver", "네이버"), KAKAO("kakao", "카카오"), GOOGLE("google", "구글"), APPLE("apple", "애플"), X("x", "트위터"), INSTAGRAM("instagram", "인스타그램"); .. 2024. 5. 8.
PSYThinktank 프로젝트 mustache 도입기 작년 말, 현재 운영 중인 사이드 프로젝트 중 하나인 PSYThinktank에 mustache를 도입했던 것을 회고해보려고 한다. 도입 이유 기존 프로젝트는 Java 1.8과 JSP를 사용하고 있었다. 하지만, 자바 최신 21 버전이 출시된 마당에 제일 오래된 LTS인 자바 8 버전은 너무 낡았다고 생각했다. 특히, 자바 11과 17을 거치면서 불변 컬렉션과 레코드 등 트렌드에 맞는 최신 문법을 사용할 수 없는 단점이 있었다. 그래서 자바 버전을 올리기로 결정하였다. 버전 상향을 결정하면서, 또 하나 결정해야 할 것이 있었다. 바로 패키징 방식을 war로 할 것이냐, jar로 할 것이냐였다. 기존에 외장 톰캣을 사용하고 있었기에 war로 패키징 후 톰캣 디렉터리에 파일을 추가해 주는 방식으로 배포하고 있.. 2024. 1. 7.
날짜, 시간, 포맷팅 Date, Calendar Date - JDK 1.0부터 있던 클래스 Calendar - Date를 보완한 클래스. JDK 1.1부터 제공됨. Calendar Calendar 사용 시에는 static 메서드인 getInstance()로 생성. (GregorianCalendar, BuddhistCalendar 등 시스템 설정에 맞춰 알맞은 구현 클래스 반환해 줌) 현재 날짜를 설정할 때에는 Date 클래스가 여전히 필요하다. Date date = new Date(); Calendar calendar = Calendar.getInstance(); calenar.setTime(date); get(Calendar 상수들)로 날짜 시간 요소 가져올 수 있음. 차이 구할 때는 getTimeMillis()로 계산 후.. 2023. 7. 11.
728x90