java 28

[Java]데이터 타입을 분리해서 알아두기(기본 타입, 참조 타입)

📌개요 https://mooonstar.tistory.com/entry/JAVA-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%9D%98-%EA%B8%B0%EB%B3%B8%ED%83%80%EC%9E%85-%EC%B0%B8%EC%A1%B0%ED%83%80%EC%9E%85 [JAVA] 데이터의 기본타입, 참조타입 ⚡️프로그램의 구성 개발자는 프로그램을 구성할 때 프로그램 내에서 사용될 데이터를 정의하고 정의된 데이터를 바탕으로 기능을 구현합니다. 데이터가 어떻게 정의되느냐에 따라 프로그램 mooonstar.tistory.com 👺과거에 같은 주제로 포스팅을 한 적이 있었습니다. 추가할 내용이 있어 새로 포스팅 하려 합니다. 📌데이터 타입의 구분(기본 타입, 참조 타입) 개발자는 프로그램을 구성할 때..

Languages/Java 2023.03.21

[Java]함수형 인터페이스(Functional Interface) 사용해보기

📌함수형 인터페이스(Functional Interface) 사용해보기 함수형 프로그래밍(Functional Programming)은 순수 함수들로 조합하여 기본 원칙에 따라 소프트웨어를 구성하는 것을 말합니다. 쉽게 말하면 프로그래밍의 상태, 상태를 변경시키는 구문의 관점에서 연산을 설명하는 명령형 프로그래밍이 아닌, 결과에 중점을 두고 필요한 것을 추출하기 위해 구조를 세워나가는 선언형 프로그래밍을 따른다. JAVA 8 버전 이 후로 함수형 인터페이스와 람다의 도입으로 함수형 프로그래밍이 가능하게 되었지만, 완전한 함수형 프로그래밍이라고 볼수는 없다. 📌프로그래밍 패러다임 프로그래밍 패러다임란 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 한다. 각 프로그래밍 언어들을 보면 절차지향, 객체지향 ..

Languages/Java 2023.02.08

[Java]SecureRandom 클래스를 이용한 임시 비밀번호 생성 방법

우리가 특정 웹사이트의 비밀번호를 잊어버렸을 경우 회원 정보 확인 후 로그인을 위한 임시 비밀번호를 제공받는다. 이러한 임시 비밀번호는 어떻게 생성이 되는 것일까? 바로 Java의 강력한 암호화 난수 생성기를 제공하는 SecureRandom 클래스를 사용하여 구현이 가능하다. 하지만 SecureRandom 클래스 외에 그냥 Random 클래스 또한 존재하지만 잘 사용하지 않는다. 이것의 이유 또한 알아보자. Random VS SecureRandom 우선 이 두 개의 클래스를 비교하기 위해서는 seed에 대한 개념을 알고 있어야 한다. seed는 난수를 발생시키는 기준 값을 의미한다. Random, SecureRandom의 가장 큰 차이는 이 seed의 값이 다르다. Random 클래스는 시스템 시간을 기..

Languages/Java 2023.02.03

[Java]Java 8 이후의 도입된 현재의 날짜 및 시간 가져오기

📌Java 8 이후의 도입된 현재의 날짜 및 시간 가져오기 Java에서는 날짜와 시간을 다루는 java.util.Date, java.util.Calender 두 개의 클래스가 존재하였습니다. 하지만 여러 가지 이유로 사람들은 사용하길 지양하고, 별도의 오픈 소스 라이브러리를 사용하여 시간, 날짜를 표현하였습니다. 하지만 이러한 문제를 해결하고자 Java 8 이후에 새로운 클래스들이 등장하였습니다. 🟥Calender, Date의 사용을 지양하는 여러 가지 이유 - 아래 링크 확인 🟥출처 : https://d2.naver.com/helloworld/645609 📌새로운 클래스의 등장 - Java 8 이후 java.time.LocalDate java.time.LocalTime java.time.LocalDat..

Languages/Java 2023.02.02

[Spring]DTO와 VO의 모호한 사용, 확실하게 사용하기

개발을 하면서 데이터를 담을 객체로 DTO와 VO를 사용하게 됩니다. DTO와 VO에 대한 이론적인 차이는 알고 있었지만, 스스로 조차 혼용해서 사용하고 있었고 확실하게 용도에 맞게 사용하는 것이 맞다고 생각하여 이번 포스팅에서 정리하려고 합니다. DTO(Data Transfer Object)란? DTO는 Layer 간 데이터 전송을 목적으로 하는 객체이다. 오로지 getter, setter 메서드만 가지고 있으며, 애초에 전송 목적을 위한 객체이기 때문에 이외에 메서드는 가질 수 없다. public class TestDto { private String name; public String getName() { return name; } public void setName(String name) { th..

WEB/Spring 2023.01.30

[Java]toString() 메서드는 왜 만들어졌을까?

toString() 메서드는 왜 만들어졌을까? 객체를 문자열로 리턴하기 위해 사용한다고 알고 있던 toString() 메서드에 대해 의문이 생겨 이 글을 작성하게 되었다. toString()의 반환 결과 Java에 모든 클래스들은 최상위 클래스 Object를 상속받는다. 따라서 Object의 정의된 메서드 또한 사용이 가능하다. toString() 메서드 또한 Object에 정의된 메서드 중 하나로 반환 형식은 다음과 같다. getClass().getName() + '@' + Integer.toHexString(hashCode()) toString() 예시 코드 class Blog { private Strintg name; private int count; } package moon; public cla..

Languages/Java 2023.01.30

[Java]Map의 요소를 반복하는 다양한 방법

Map의 요소를 반복하는 다양한 방법 ⚡️keySet을 통해 순환 Map map = new HashMap(); for (String key : map.keySet()) { map.get(key); } ⚡️entrySet을 통해 순환 Map map = new HashMap(); for (Map.Entry entry : map.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); } ⚡️iterator을 통해 순환 Map map = new HashMap(); Iterator keys = map.keySet().iterator(); while (keys.hasNext()) { String key = keys.next(); map..

Languages/Java 2023.01.26

[Java]상속(Inheritance)과 super, super() 완벽 이해하기

super, super() 완벽 이해하기 Java 코드를 보다보면 super 키워드는 자주 등장합니다. 이번 포스팅에서는 super, super()에 대해 다뤄보려고 합니다. 하지만 위의 키워드를 이애하기 위해서는 객체지향프로그래밍 언어인 Java에 상속에 대해 먼저 알아야 합니다. 상속(Inheritance)이란? 상속(Inheritance)은 기존 클래스의 멤버변수와 메서드를 이어 받아 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미합니다. 위의 그림을 보면 부모 클래스로 부터 상속받아 생성된 자식 클래스가 부모 클래스를 포함하고 있는 것을 볼 수 있으며, 부모 클래스에 없는 추가된 멤버를 정의한 것을 확인할 수 있습니다. 상속(Inheritance) 예제 class Parent { ..

Languages/Java 2023.01.19

[Java]삼항 연산자(조건 연산자)로 불필요한 IF 문 줄이기

삼항연산자란? 삼항 연산자는 피연산자의 갯수가 3개인 조건부 연산자이다. 기본 구문은 아래 그림을 보면 확인할 수 있습니다. 이 연산자는 if-else 구문을 압축한 형태이며, 간결한 코드를 작성할 수 있습니다. 조건식의 결과 가 True인 경우 두 번째 항의 값 또는 연산식이 반환되며 반대로 조건식의 결과가 False인 경우 세 번째 항의 값 또는 연산식이 반환됩니다. IF -ELSE 구문 기본 형태 if (조건식) { System.out.println("조건식은 참입니다."); } else { System.out.println("조건식은 거짓입니다."); } 위의 IF-ELSE 구문은 조건식의 결과에 따라 다음 프로세스를 진행합니다. 하지만 이렇게 작성한 코드는 5줄 입니다. 이러한 구문에서 삼항 연..

Languages/Java 2023.01.18

[Javascript]화살표 함수(Arrow Function) 사용하기

화살표 함수(Arrow Function) 사용하기 이번 포스팅에서 다룰 화살표 함수(Arrow Function)는 ES6부터 함수를 만들 수 있는 새로운 문법으로 등장했습니다. 이러한 문법이 왜 등장하였고, 원래의 함수 생성 방식과 어떤 점이 다른지에 대해 알아보도록 하겠습니다. 일반 함수 생성 방식 //1번 function moonstar() { console.log("티스토리 블로그입니다.") }; //2번 var moonstar = function() {console.log("티스토리 블로그입니다.")} 화살표 함수(Arrow Function) 사용 var moonstar = () => console.log("티스토리 블로그입니다."); 화살표 함수(Arrow Function)를 사용하면 기존의 함..