java

    Spring Request 데이터를 List 형태로 받으면 @Valid 체크가 안되는 현상 해결 방법

    Spring Request 데이터를 List 형태로 받으면 @Valid 체크가 안되는 현상 해결 방법

    Spring does not check valid when list data is databinding다음과 같은 예시가 있습니다.스프링에서 Controller 로 데이터가 넘어올 때 [java.util.List] 형태의 데이터만 넘어와서해당 List에 맞게 DTO를 만들어서 List로 데이터를 받는데,List 안의 데이터에 대해서 분명히 조건 체크를 하게 했는데 Null로 데이터가 넘어온 데이터로 작업하게 되어 에러가 발생한다 ?????위 문제로 인해 저도 여러 해결 방법을 찾아봤는데요특히, "Custom Validator를 만들어서 체크하면 된다" 하는 글이 대부분이었습니다.위 Custom Validator가 아닌 방법으로 좀 더 손쉽게 해결 가능하도록 해봅시다.우선 이유부터 알아봅시다.왜 ? 도대체..

    객체 지향, 오브젝트와 의존 관계의 이해

    Connection을 통한 오브젝트와 의존관계의 이해 public class UserDao { public void add(User user) throws ClassNotFoundException, SQLException { Class.forName("com.mysql.cj.jdbc.Driver"); Connection c = DriverManager.getConnection( "jdbc:mysql://localhost/springbook","spring","book"); PreparedStatement ps = c.prepareStatement( "insert into users(id, name, password) values(?, ?, ?)"); ps.setString(1, user.getId());..

    API 명세서 뜯어보기 - StringTokenizer Class

    Package java.lang.Object java.util.StringTokenizer What is StringTokenizer The string tokenizer class allows an application to break a string into tokens. The tokenization method is much simpler than the one used by the StreamTokenizer class. The StringTokenizer methods do not distinguish among identifiers, numbers, and quoted strings, nor do they recognize and skip comments. 문자열 토크나이저 클래스를 사용하면..

    API 명세서 뜯어보기 - Functional interface

    Package java.util.function What is Functional Interface? This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference. 이것은 함수 인터페이스이므로 람다 식 또는 메소드 참조에 대한 할당 대상으로 사용할 수 있습니다. Functional Interfaces Function Predicate Consumer Supplier BiConsumer BinaryOperator etc ... Function T - the type of the input to the function ( 함수의 매개변수 값의 타..

    API 명세서 뜯어보기 - StringBuilder && StringBuffer Class

    Package java.lang.Object java.lang.StringBuilder java.lang.StringBuffer StringBuilder 란? A mutable sequence of characters. This class provides an API compatible with StringBuffer, but with no guarantee of synchronization. This class is designed for use as a drop-in replacement for StringBuffer in places where the string buffer was being used by a single thread (as is generally the case). Where p..

    API 명세서 뜯어보기 - String Class

    Package java.lang.Object java.lang.String String이란? *String은 프로그램 작성시 가장 기본이 되며 가장 많이 사용하는 클래스다. The String class represents character strings. All string literals in Java programs, such as "abc", are implemented as instances of this class. String Class는 문자열(char)을 대표한다. 모든 자바 프로그램의 문자열 리터럴은, 이 클래스의 인스턴스로 "abc"와 같이 구현된다. ex) String a = "Example"; 상수 : 변하지 않는 변수 == 위 예시의 a 의미 리터럴 : 변하지 않는 데이터 == ..

    자바 기초 다지기 -7 (네트워크, Java7, Java8)

    네트워크 프로그래밍 네트워킹이란? 장비와 장비가 데이터를 주고 받는 작업을 일컫는다 네트워크의 일반적인 레이어 애플리케이션 레이어(HTTP, ftp, telnet. ...) HTTP, ftp, telnet은 모두 TCP 통신을 한다. 트랜스포트 레이어(TCP, UDP, ...) 네트워크 레이어(IP, ....) 링크 레이어(device driver, ...) TCP 통신이란? "연결 기반 프로토콜", 데이터를 수신하는 상대가 데이터를 받았는지 확실히 보장한다. UDP 통신이란? 데이터를 제대로 받았는지 보장 없이 보내기만 한다. TCP와 UDP로 나뉘어 존재하는 이유는? 반드시 모든 데이터가 전송이 보장될 이유가 없고, 필요 없는 상황도 있다. TCP는 UDP에 비해 느리고 비싸다. "포트"란? 16비트..

    자바 기초 다지기 - 6 (Thread, Syncronized, Serializable, IO, NIO)

    Thread와 Runnable Thread는 하나의 프로세스 안에서 여러 개 생성되고 고객이 필요에 따라 이 Thread를 사용하고 작업이 끝날 경우 반납한다고 생각하면 되겠다. Runnable : Thread의 인터페이스 Thread Class: Runnable의 구현체 Thread의 실행 방법 run() 메소드로 구현이 가능하며 start()로 실행이 가능하다. Thread에 주요 메소드 Thread.sleep(1/1000초) : 쓰레드를 잠재운다. Thread.join() : 쓰레드가 끝날 때까지 기다린다. Thread.interrupt() : 쓰레드를 정지 시키고자 할 때 사용하는 메소드로서, 쓰레드가 일시 정지 상태일 경우 에러를 발생시켜 run() 메소드를 정상 종료 시킨다. Thread De..