Programming language/Java
-
DTO를 타입으로 갖는 리스트에서 String 타입의 리스트로 변환하는 예제입니다. CoffeeDTO.java package com.java.dto; public class CoffeeDTO { private String name; private int price; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public CoffeeDTO(String name, int price) { this.name = na..
[Java]Stream 활용 : List<DTO> -> List<String> 2022. 7. 16. -
자바8부터 지원되는 stream은 기존 배열,컬렉션을 다루는 방법을 보다 간결하게 표현할 수 있도록 도와줍니다. 최근에 stream을 사용하는 일이 많아지면서 시간이 날 때마다 정리를 해야겠다는 들었습니다. 아래는 두 리스트간 중복되거나 중복되지 않는 값만 추출하는 예제입니다. list2.stream().noneMatch(Predicate.isEqual(old))) Predicate 함수형 인터페이스의 isEqual() 함수를 이용해 인자값으로 전달된 객체(old : list1의 아이템)와 같은지 비교할 조건식을 만듭니다. list1의 스트림 객체에서 해당 조건식을 만족하는 값만 필터링합니다.(list1 : list2의 값이 다른것만) 그리고 collect() 함수를 이용해 Stream의 아이템들을 리스..
[Java]Stream 활용 : 두 리스트의 중복값 찾기 2022. 6. 1. -
요즘 이직을 앞두고 이곳저곳 면접을 보는 중입니다.오늘은 면접 중에 나온 질문에 대해 포스팅을 남겨보려고 합니다.추상클래스하나 이상의 추상 메소드를 포함하는 경우 이것을 추상 클래스라고 말합니다. 다만 추상 클래스에 반드시 추상 메소드가 있어야 하는 것은 아닙니다.추상 클래스는 abstract로 정의되어 사용됩니다.추상 메소드는 선언만 되어 있고 구현되어 있지 않은 메소드를 말합니다. 그렇기 때문에 추상 클래스는 인스턴스화가 불가능합니다. 여기 리그오브레전드라는 게임을 예제로 만들어봤습니다.게임 리그오브레전드는 플레이할 챔피언과 스펠이라는 옵션을 선택해 플레이하게 된다. 이 예제에서는 탑, 미드, 바텀 포지션 클래스를 만들고 Champion 클래스를 상속받도록 해보겠습니다. Champion이라는 추상 클..
[Java]추상클래스와 인터페이스 2021. 11. 9. -
오늘 포스팅할 내용은 자바를 이용한 이미지 포맷을 변환하는 방법입니다. 아래 사이트를 참고하여 코딩했고, 소스를 분석한 내용을 정리해봤습니다. 자바에서는 ImageIO 클래스를 이용해 이미지를 컨트롤할 수 있습니다. 이미지 포맷 변환 프로세스는 다음과 같습니다. 사용자가 파일 저장 서버단에서 파일 전송 후 PNG 파일인 경우 파일 포맷을 변경(PNG to JPG) 변환된 JPG 파일 저장 아래 소스에서 사용된 ImageIO의 메소드는 read와 write입니다. File beforeFile = new File(PATH + fileName + "_" + fileUploadTime + "." + fileType); File afterFile = new File(PATH + fileName + "_" + fi..
[Java]이미지 포맷 변환 / Convert PNG to JPG 2020. 11. 5. -
브라우저 체크를 할 때마다 매번 구글링을 해가며 커스텀해서 사용하곤 했었는데 정리를 한번 해두면 좋을 것 같아 포스팅을 남깁니다. 브라우저 체크의 핵심은 User-Agent입니다. 클라이언트에서 서버로 요청하는 HTTP 헤더에는 다양한 정보가 있는데 그 중, User-Agent 라고 하는 필드에는 요청에 기반한 사용자 브라우저 및 운영체제 정보를 포함하고 있습니다. 예제 소스는 다음과 같습니다. indexOf 메소드를 사용하여 각각의 브라우저를 구분할 수 있는 문자를 체크하여 그 결과를 리턴하는 구조입니다. (* indexOf 메소드는 특정 문자열의 위치를 반환(첫 발견된 인덱스값)하는데 해당 문자가 없다면 -1을 반환합니다) 소스를 복사하여 테스트해보면 브라우저별로 어떤 정보가 담겨있는지 확인이 가능합..
[Java]User-Agent를 이용한 브라우저 체크 2020. 10. 29. -
YYYYMMDD 형태로 문자열을 입력받았을 때, 날짜를 계산할 수 있는 코드입니다. 공통 함수로 뽑아 사용하면 좋을 듯 합니다. package com.company; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Locale; public class DateTest { public static void main(String[] args) { Calendar cal = new GregorianCalendar(Locale.KOREA);// 국제표준시(한..
[Java]날짜 계산하기 2019. 12. 31. -
오늘은 Gmail을 이용한 메일 보내는 기능을 구현해봤습니다.자바에서 메일을 보내기 위해서는 SMTP 서버가 있어야 합니다.SMTP는 "Simple Mail Transfer Protocol"의 약자로 전자 메일 전송을 위한 표준 프로토콜입니다. 아래 그림과 같이 우리가 보낸 메일은 SMTP 서버로 전송이 되고 SMTP 서버가 해당 메일 주소로 메일을 전송해주는 역할을 합니다. 때문에 자체적인 SMTP 서버가 없다면 외부의 SMTP 서버를 이용하는 방법이 있습니다. 본 포스팅에서는 Gmail의 SMTP 서버를 이용한 메일 보내기를 해볼 것입니다.먼저 메일을 보내기 위해서는 mail.jar 라이브러리가 필요합니다.☞ https://mvnrepository.com/artifact/javax.mail/mail/..
[Java]Gmail SMTP를 이용한 메일 보내기 2018. 11. 16. -
자바에서 문자열을 비교할 때 주로 사용하는 "=="와 "equals"는 비교할 때 사용된다는 점에서 공통점이 있지만 비교 방식에는 차이가 있다. ==는 객체의 주소를 비교하는 연산자이며 equals는 객체의 값을 비교하는 함수이다. String aDrink = new String("Americano"); String bDrink = new String("Americano"); String cDrink = "Americano"; a의 아메리카노, b의 아메리카노, c의 아메리카노가 있다고 할 때 "equals" 함수는 각각의 "아메리카노"라는 값을 비교하는 것이다. 따라서 아래 코드는 true를 반환한다. 만약 b의 "레몬에이드"였다면 false를 반환했을 것이다. if(aDrink.equals(bDrin..
[Java]==와 equals 2018. 9. 3.