Java 10

DTO VS VO

DTO 와 VO의 차이는 무엇일까? 결론! DTO VO 목적 계층간 데이터 전달 값 자체 표현 동등성 필드값이 같아도 같은 객체 X 필드값이 같으면 같은 객체 가변성 setter 존재 시 가변 setter 없을 시 불가변 불변 로직 getter/setter 이외 로직이 필요 X 이외 로직이 있어도 무방 1. DTO(DataTransfer Object) : 계층 간 데이터 교환을 하기 위해 사용하는 객체 DTO는 로직을 가지지 않는 순수한 데이터 객체(Java Beans) * DTO는 Getter, Setter 메서드만 가진 클래스 * DB에서 데이터를 얻어 service or controller 등으로 보낼 때 사용 public class UserDTO { private String name; priva..

언어/자바 2023.05.12

getter, setter 사용 이유 및 지양해야 하는 이유

getter 와 setter은 데이터를 보호하기 위해 사용한다. -> 외부에서 직접적으로 접근할 경우, 잘못된 값 입력 시 객체의 무결성이 깨지는 일이 발생. -> 이를 방지하기 위해 필드를 private로 만들어 외부의 접근을 제한한 후, setter을 사용해 사용해 파라미터를 내부에서 가공해 필드에 넣어주는 방식을 사용. getter을 사용해 본 필드의 값을 숨긴 채(정보 은닉) 내부에서 가공된 값을 꺼냄 getter : 변수를 반환 setter : 파라미터를 받아 변수에 할당 * SETTER , GETTER 사용 방법 public class User{ private String name; private int age; private String eamil; public String getName()..

언어/자바 2023.05.11

[JAVA] String.format()

* String.format() - 리턴되는 문자열 형태를 지정하는 메소드 - 문자열 앞에 %를 붙여 문자열에 사용 시, 그 위치의 변수값을 형식화 하여 대입가능. public class stringFormatTest{ public static void main(String[] args){ String s = "HelloWorld"; int n = 12345; String test="" test= String.format("문자열=%s,%S",s,s); //문자열=HelloWorld , HELLOWORLD test= String.format("정수=%d",n); //정수=12345 } } * 포맷 지정 서식 서식 분류 설명 'b' ,'B' 참/거짓 boolean 값 'h',H' 16진수 16진수 표시 '..

언어/자바 2023.04.19

[JAVA]Stream이란

* Stream이란? : 스트림은 파일이나 키보드, 모니터 등 입출력 장치나 네트워크, 메모리 등으로부터 데이터를 입출력할 때 사용하는 처리를 정의 한 것. 자바에서는 모든 입출력에서 스트림이라는 개념을 사용한다. FIFO(First-In-First-Out) 구조이며 단방향 구조. * Stream 종류 1. 노드 스트림 : 직접 파일에 연결되는 스트림 ex> InputStream , System.in 2. 필터스트림 : 노드 스트림에 연결하여 다른 처리를 도와주는 스트림 데이터를 저장소로부터 하나씩 가져오면 노드 스트림을 통과하게 된다. 이렇게 가져온 데이터는 순수 바이트로 바로 사용하기에는 문제가 있을 수 있다. 예를 들면 한글이다. 한글 1글장에 2바이트기 때문에 깨지는 현상 발생. 그러므로 노드 스..

언어/자바 2023.03.31

[JAVA IO]FileInputStream & FileOutputStream

-FileInputStream : Byte 단위로 파일을 기록하는 클래스 (파일을 읽어올 때 사용한다.) 생성자 설명 FileInputStream(File file) File 객체가 가리키는 파일을 바이트 스트림으로 읽기 위한 FileInputStream 객체를 생성 FileInputStream(String file) 주어진 이름이 가리키는 파일을 바이트 스트림으로 읽기 위한 FileInputStream 객체를 생성 import java.io.FileInputStream; import java.io.IOException; pulic class test { public static boolean input(String filePath){ FileInputStream in = null; try{ in = n..

언어/자바 2023.03.09

[자료구조] List, Set, Map

1. List : 순서가 있다. 중복을 허용한다. 크기가 가변적이다. LinkedList ArrayList 구조 양방향 포인터 구조 단방향 포인터 구조 데이터 삽입&삭제 빠름!!! 느림 검색 느림 빠름!!! 2. Map : key -value의 한 쌍으로 이루어진 데이터 집합 key에 대한 중복 X 검색속도 빠름 HashMap HashTable ConcurrentHashMap Thread-safe X O O key와 value Null 값 허용 O X X Synchronized(동기화) X O O * HashMap은 동기화를 보장하지 않아 데이터를 탐색하는 속도가 빠르며 Thread-sefe를 하지않기에 싱글 쓰레드 환경에서 사용하는것이 좋음. * 반면, HashTable 은 동기화를 보장하여 탐색속도가..

자료구조/자바 2022.11.22

[자료구조] 배열(Array)와 리스트(List)

1. 배열(Array) : 같은 타입의 여러 변수들을 하나의 묶음으로 다루는 것. 고정된 크기를 가진다. 인덱스(index)를 가지며 각 원소번호는 0부터 시작. * Array 사용 예시 int[] array = {1,2,3}; String[] weeks = new String[3]; week[0] = "일"; week[1] = "월"; week[2] = "화"; * 배열의 장점 1. 인덱스를 통한 검색 용이. 2. 연속적으로 메모리 관리가 편리. *배열의 단점 1. 크기가 고정되어 있어 한 element가 삭제되면 삭제된 상태를 빈 공간( 메모리 낭비 ) 2. 정적으로 배열의 크기를 컴파일 전 정해야하며 컴파일 후에는 크기를 변동할 수 없음. 2. 리스트(List) : 배열의 단점을 보완한 것. 고정된..

자료구조/자바 2022.11.22

TLSv1.3 오류

API 통신 중, 아래와 같은 TLSv1.3이라는 오류가 발생하여 몇시간을 삽질한 결과, 저 오류는 서버간 SSL 보안 등급이 맞지않아 발생되는 것 같다. java.lang.IllegalArgumentException: TLSv1.3 at sun.security.ssl.ProtocolVersion.valueOf(ProtocolVersion.java:215) ~[?:?] at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:264) ~[?:?] at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:145) ~[?:?] ..

웹개발/오류 2022.11.09