본문 바로가기

분류 전체보기122

[Spring] DI : Dependency Injection DI 를 사용하는 이유와 생성자 주입을 선호하는 이유는 여러가지가 있지만 본 예제에서 DI 사용 이유는 테스트 코드를 작성함에 있어 MemoryMemberRepository() 의 객체 생성이 MemberSerivice 와 MemberSeriviceTest 에서 각각 생성되고 있는데, 새로운 객체를 만들어 테스트 하는 것이 아닌 만들어진 객체를 가져와 테스트 하기 위해 즉, 테스트 대상을 하나로 일체화 시키기 위함이다 import ... public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); //private final MemberRepository memberRep.. 2021. 8. 28.
[백준 풀이_Java] 4344 평균은 넘겠지 내가 푼 방법 BufferedReader 와 StringTokenizer 을 사용한 풀이이다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int C = Integer.parseInt(in.readLine()); // 테스트케이스의 개수C StringTok.. 2021. 8. 27.
[Java] StringTokenizer 백준에서 BufferedReader 로 입력 받아서 문제풀다가 띄어쓰기로 구분해서 입력받고 싶어서 찾아본 개념이다 StringTokenizer 은 클래스로 문자열을 지정한 구분자를 기준으로 파싱할 때 사용한다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class No2_StringTokenizer { public static void main(String[] args) throws IOException { // StringTokenizer 생성 및 입력받기(이번엔 BufferedReader) BufferedRe.. 2021. 8. 26.
[Spring] Optional <T> Optional 는 NPE: NullPointerException 을 피하기 위한 클래스이다 Optional 는 null이 될 수 있는 값을 감싸는 Wrapper 클래스로, null 이 오더라도 NPE가 발생하지 않게 해주고, Optional는 클래스이기 때문에 다양한 메소드를 제공한다 어떤 데이터가 null이 올 수 있는 경우 해당 값을 Optional 로 감싸고, orElse 또는 orElseGet 메소드를 사용해 값이 없는 경우라도 NPE를 발생시키지 않고 값을 가져올 수 있다 // Optional의 value는 값이 있을 수도 있고 null 일 수도 있다. // getName() 은 값이 있을 수도, null 일 수도. Optional optional = Optional.ofNullable(get.. 2021. 8. 26.
[Java] Collections(2)_Map 인터페이스 Map 컬렉션 클래스들은 '키: 값' 의 쌍으로 저장하는 방식이다 순서는 고려하지 않으며, 값의 중복은 가능하지만 키의 중복은 불가하다 대표적인 클래스는 HashMap, Hashtable, TreeMap 이 있고 선언 시 Map map = new HashMap(); 이런 식으로 Map 으로 객체 생성을 하지 않는 이유는 Map 은 인터페이스이기 때문에 Map 을 상속받은 자식클래스로 객체를 생성하기 때문이다 HashMap import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class No19_HashMap { public static void main(String[] args) { Map hm = new Has.. 2021. 8. 24.
[Spring] 정적컨텐츠, MVC와 템플릿엔진, API 정적컨텐츠 값의 변화 없이 저장된 파일을 웹브라우저에 띄운다(그냥 내린다) // 컨트롤러 @GetMapping("hello") public String hello(Model model){ model.addAttribute("data", "hello!!"); return "hello"; } ※ 컨트롤러에서 data의 속성값 hello!! 을 직접 받고 html로 전달되어 화면에 나타남 // hello.html 정적페이지 반환 ※ th:text 에서 입력한 값으로 바뀌므로 p태그 사이의 입력값은 무시해도 좋음 MVC와 템플릿엔진 외부(웹)에서 파라미터를 받아 컨트롤러에 전달되고 Model에 담은 후 템플릿으로 넘어가면 값이 치환된다 뷰를 통해 렌더링 후 변환된 html 을 웹브라우저에 띄운다 @GetMapp.. 2021. 8. 23.