Backend/Java

· Backend/Java
UUID란? 네트워크 상에서 고유성이 보장되는 id를 만들기 위한 표준 규약이다. UUID는 Universally Unique IDentifier의 약어이고 범용 고유 식별자라고 한다. 자바에서 UUID (UUID 4버전) -Java5 부터 UUID(Universally Unique IDentifier)를 생성하는 것이 가능 언제? 프로젝트를 수행하면서 S3이미지 서버에 저장할 파일 이름, 로그를 찍을때 쓰레드 아이디를 만들때 사용했다. 정리해보자면 고유성이 보장되는 id와 같은 것을 생성할 때 쓰인다. 1. 업로드된 파일명의 중복을 방지하기 위해 파일명을 변경할 때 사용. 2. 첨부파일 파일다운로드시 다른 파일을 예측하여 다운로드하는것을 방지하는데 사용. 3. 일련번호 대신 유추하기 힘든 식별자를 사용..
· Backend/Java
정적(Static) 이란? 정적(static)은 고정된이란 의미를 가지고 있습니다. Static이라는 키워드를 사용하여 Static변수(정적 필드)와 Static메소드(정적 메소드)를 만들 수 있습니다.( 이 둘을 합쳐 정적 멤버 또는 클래스 멤버라고 합니다.) 정적 필드와 정적 메소드는 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버입니다. 정적 멤버 생성 Static 키워드를 통해 생성된 정적멤버들은 메모리 구조상에서 Data영역에 저장되며 이는 메모리상에 한번 할당되면 프로그램이 종료될때 해제된다는 것을 의미한다. Class가 여러번 생성되어도 클래스 내부 Static변수는 딱 한번만 생성된다. 주로 클래스들이 할당 Garbage Collector가 관여하지 않음 모든 객체가 메모리를 ..
· Backend/Java
들어가기 전에 서버에서 서버로 RestTemplate을 이용하는데 Json에서 Dto로 변환할 때(역직렬화) 이슈가 있었다. 이때 직렬화, 역직렬화에 대한 개념을 정리하고 과정에서 생긴 이슈를 분석하고자 한다. 여기에서 사용된 코드는 실제 회사에서 사용한 코드는 아니며, 포스팅을 위해 최대한 유사하게 만들어진 별도의 샘플 코드이다. 스프링에서의 직렬화와 역직렬화란? 스프링 HTTP 요청 / 응답 과정에서 자바 객체 ↔ JSON 간에 변환을 하는 것이 직렬화와 역직렬화이다. HTTP 응답은 서버 → 클라이언트 흐름이기 때문에 자바 객체 → JSON 변환인 직렬화 과정이고, HTTP 요청은 클라이언트 → 서버 흐름이기 때문에 JSON → 자바 객체 변환인 역직렬화 과정이다. 즉, ResponseDto를 HT..
· Backend/Java
비교 == (동일성 identity 비교) 객체의 주소값 비교로 같은 메모리 공간을 가리키는지 확인 equals (동등성 equivalence 비교 ) 객체의 내부 값이 같은지 비교한다. 객체 지향 프로그래밍(OOP)에서 인스턴스(instance)는 해당 클래스의 구조로 컴퓨터 저장공간에서 할당된 실체를 의미한다. 여기서 클래스는 속성과 행위로 구성된 일종의 설계도이다. OOP에서 객체는 클래스와 인스턴스를 포함한 개념이다.(위키피디아) 그렇기 때문에 정확히 표현하면 인스턴스겠지만 여기서는 객체라고 하겠다. equals() public class Money { int amount; String currencyCode; public Money(int amount,String currencyCode){ th..
· Backend/Java
String의 null과 빈 값(””)처리 null이나 빈 값이 들어올때 어떻게 처리해야하는지 고민했다. String의 값이 어떤 값이 들어올때 처리를 안해주는지 정의해준다. null 빈 값(””) white space //1. String name=null; //널 System.out.println(name==null); //true //2. String name2=""; //빈 값 String name3=" "; //공백 System.out.println(name2.isEmpty()); //true System.out.println(name2.equals("")); //true System.out.println(name3.isEmpty()); //false System.out.println(name3..
· Backend/Java
https://help.gooddata.com/cloudconnect/manual/date-and-time-format.html Data and Time Format A formatting string describes how a date/time values should be read and written from(to) string representation (flat files, human readable output, etc.). A format can also specify an engine which CloudConnect will use by specifying a prefix (see below). Th help.gooddata.com 1. @JsonFormat @JsonFormat은 Ja..
· Backend/Java
HashMap 클래스 HashMap 클래스는 Map 컬렉션 클래스에서 가장 많이 사용되는 클래스 중 하나이다. JDK 1.2부터 제공된 HashMap 클래스는 해시 알고리즘(hash algorithm)을 사용하여 검색 속도가 매우 빠르다. HashMap 클래스는 Map 인터페이스를 구현하므로, 중복된 키로는 값을 저장할 수 없다. 하지만 같은 값을 다른 키로 저장하는 것은 가능하다. HashMap 클래스는 키와 값의 쌍을 저장하는 데 사용되는 "Map" 기반의 컬렉션 클래스로, HashMap 로 표시된다. 이 클래스는 맵의 순서를 보증하지 않는다. 이 클래스는 비동기(unsynchronized)이며 null 키/값을 허용한다는 점을 제외하면 Hashtable 클래스와 유사하다. HashTable 클래스 ..
호_두씨
'Backend/Java' 카테고리의 글 목록