전체 글(129)
-
Optional<T>
강의 학습 중, Optional 이 자주 사용되고 있어 알아보고자 한다. java.util public final class Optional A container object which may or may not contain a non-null value. If a value is present, isPresent() returns true. If no value is present, the object is considered empty and isPresent() returns false. Additional methods that depend on the presence or absence of a contained value are provided, such as orElse() (returns..
2024.02.23 -
웹 개발 방식_API
MVC + 템플릿 엔진을 통해 view를 반환할 때엔, Controller 에서 Model에 값을 담아 String 문자열을 반환 -> ViewResolver 를 통해 해당 템플릿을 찾고 거기에 데이터들을 바인딩해서 노출했었음. 그런데, 서버 - 서버 의 통신 등에서는 View 등이 있을 필요가 없음. 서버끼리 화면 보여줄 일 있음? 없음. 위의 예시처럼, 화면이 필요 없는 경우도 더러 있음. 이럴 땐 데이터만 있으면 되고, 데이터만 넘겨주면 됨. Http 프로토콜의 Body부에 값을 직접 때려박을 수 있음. 방법? Controller 에서 메서드에 @ResponseBody 애노테이션을 달아주면 됨. 이를 통해 반환되는 값이 HttpResponse 의 body에 바로 담기게 됨. @ResponseBody..
2024.02.21 -
@RequestParam
@GetMapping("study-mvc") public String studyMvc(@RequestParam(value = "name", required = false) String name, Model model) { model.addAttribute("name", name); return "studyMvc-template"; } 이전 글에서 위와 같은 코드를 작성 했었음. @RequestParam 이 뭐지? 위의 메서드에서 @RequestParam은 Get 방식 요청 URL에 입력한 값을 매개변수에 묶어주는 역할을 함. localhost:8080/study-mvc?name=Param @RequestParam(value = "name") 을 통해 위의 localhost:8080 ~~?name=para..
2024.02.21 -
웹 개발 방식_MVC + 템플릿 엔진 방식
MVC 방식이란? Model, View , Controller 으로 3개의 계층으로 관심사를 나누어 개발하는 방식임. 여기에 동적인 데이터 할당을 위해 템플릿 엔진을 곁들여 주는 것이 MVC + 템플릿 엔진 방식임. 템플릿 엔진? 템플릿 엔진은 템플릿 양식(변수 따위)에 특정 데이터를 넣어 결과 문서를 출력하는 엔진임. 현재 학습상에서 템플릿 엔진은 thymeleaf 임. thymeleaf 는 Server Side Randering 방식임. 일단 그런 게 있다는 걸 알아두고 심화는 나중에 해볼 예정. 아무튼, mvc + 템플릿 엔진 개발 방식 = 관심사를 크게 3개(model, view, controller)로 나누고, 템플릿 엔진을 통해 특정 데이터들을 렌더링해서 view에 뿌려주는 방식임. 렌더링? ..
2024.02.21 -
웹 개발 방식_정적 컨텐츠 전달
웹 개발 방식에는 - 정적 컨텐츠 전달 - MVC + 템플릿 엔진 - API 등 이 있음. 정적 개발 방식은 클라이언트에서 온 요청에 대해 내용이 정해진 컨텐츠를 전달하는 방식임. @GetMapping("/helpMe") public String help() { return "helpMe"; } 이전 글에서 썼듯, Controller에서 문자열을 반환하면 ViewResolver 를 통해 resources/static/helpMe.html 이 반환된다. 아래 html이 그대로 전달 됨. 정적 컨텐츠. 내용에 변함이 없는 클라이언트한테 전달
2024.02.21 -
컬렉션_TreeSet
TreeSet TreeSet은 범위 탐색, 정렬에 특화 돼 있다. 이진 탐색 트리(binary search tree)로 구현 돼 있다. 이진 트리는 모든 노드가 최대 2개의 하위 노드를 갖는다. 각 요소(Node)가 나무(tree) 형태로 연결된다.(LinkedList 의 변형으로 생각하면 편함) class TreeNode{ TreeNode left; Object element; TreeNode right; } 링크드 리스트랑 비슷하다 private static class Node { E item; Node next; Node prev; } LinkedList 의 Node는 이전, 이후 노드 정보를 갖지만, TreeSet 의 Node 는 Left, Rgiht 로 하위 노드를 갖는다. (하위 Node에서 ..
2024.02.20