728x90

2023/11 7

Spring - REST API 간단한 연습 (RestController 사용)

지금까지 프로젝트를 진행하면서 REST API에 대한 반환값으로 String 즉, View로 전달하는 방식을 많이 사용하였다. @RestController를 사용하는 방법 또한 크게 다른점은 없지만 많이 사용해보지 않았기 때문에 익숙함을 위해 연습하기 위한 작은 프로젝트다. - ERD - RestaurantApi.java @RequiredArgsConstructor @RestController public class RestaurantApi { private final RestaurantService restaurantService; @GetMapping("/restaurants") public List getRestaurants() { return restaurantService.getAllRestau..

Programming/Spring 2023.11.27

Project - 돈 갚아라 ( 문제 해결 / TMP)

** - post 전송 시 crsf 까먹지 말기!! ** 1024 포트 이하 sudo 꼭 붙여서 실행하기 1. git bash에서 프로젝트 폴더로 가서 ./gradlew build 를 통해 jar 파일을 생성한다. - plain은 사용하지 않는다. - java 설치해야한다. - 보안 그룹 확인 잘하기 - 앱 계속 유지되게 하기위해 사용한다. - 애플리케이션 끄는 방법 - 뭔 aws에 배포할 때 return 앞에 /money/moneyForm처럼 /를 맨앞에 붙이게되면 //로 인식되어 오류가 발생한다!!! 조심!!! - filed를 통해 값을 전달 할 수 있다. object 이름이랑 전달 받는 객체명이랑 같으면 매핑되서 전달된다. - 주소값이 다르기 때문에 문자열이 서로 다른 것으로 인식되기 때문에 equ..

Spring Test Code 관련 - (MockMvc 등... 여러가지)

- MockMvc - MockMvc 1. Spring MVC 컨트롤러를 테스트하기 위해 사용된다. 이를 통해 웹 애플리케이션의 HTTP 요청과 응답을 시뮬레이션하고 테스트하는 것이 가능하다. - @AutoConfigureMockMvc 1. Mock 객체를 자동 주입하기 위해 사용한다. @SpringBootTest @AutoConfigureMockMvc public class MyControllerTest { @Autowired private MockMvc mockMvc; // 테스트 코드 작성 } 2. 위와 같이 MockMvc를 주입 받아 테스트 코드를 작성 할 수 있다. - ObjectMapper 1. JSON 데이터와 Java 객체 간의 변환을 수행하는 데 사용되는 라이브러리다. @Test @Disp..

Programming/Spring 2023.11.19

Spring - 페이징, Querydsl RE

- Page - Pageable - PageRequest - 페이징 구성 예시 - Querydsl - JpaQueryFactory - Querydsl 추가 및 예시 - 페이징, Querydsl 적용 - Page - Page는 페이징된 데이터와 페이징 정보를 포함하는 객체이다. 쿼리 결과의 일부 데이터를 나타내며, 페이지 정보, 총 항목 수, 페이지 번호, 데이터 목록 등을 포함한다. getContent() 현재 페이지의 데이터 목록을 반환한다. getTotalPages() 총 페이지 수를 반환한다. getTotalElements() 전체 항목 수를 반환한다. getNumber() 현재 페이지 번호를 반환한다. getSize() 페이지 크기 (한 페이지당 항목 수)를 반환한다. - Pageable - Pa..

Programming/Spring 2023.11.14

CodingTest - Recursive, Tree, Graph(DFS, BFS 기초)

1. 재귀 함수 2. DFS 깊이 우선 탐색 2.1. 스텍 프레임 3. BFS 레벨, 너비 우선 탐색 - 재귀 함수 - 재귀 함수는 자기 자신을 호출하는 함수를 말한다. - 기본적으로 if else를 통해 특정 조건에 자기 자신을 호출하여 원하는 값을 도출해낸다. - 재귀 함수를 이용한 팩토리얼 import java.util.Scanner; class Main { public int DFS(int v) { if (v == 1) { return 1; } else { return v * DFS(v - 1); } } public static void main(String[] args) { Main main = new Main(); Scanner scanner = new Scanner(System.in); in..

CodingTest - Sorting and Searching(정렬, 이분 검색과 결정 알고리즘)

1. 선택 정렬 2. 버블 정렬 3. 삽입 정렬 4. 삽입 정렬 예제 5. 이분 검색, 결정 알고리즘 6. 이분 검색, 결정 알고리즘 예제 - 선택 정렬 1. 선택 정렬은 정렬 알고리즘 중 하나이다. 2. n(n-1)/2번, 즉 O(n^2)의 시간 복잡도를 가지므로 대규모 데이터에 대해 효율적이지 않다. - 버블 정렬 1. 버블 정렬은 정렬 알고리즘 중 하나이다. 2. 시간 복잡도가 O(n^2)의 시간 복잡도를 가지므로 선택 정렬과 마찬가지로 대규모 데이터에 대해 효율적이지 않다. for(int i=0; itmp) arr[j+1]=arr[j]; else break; } arr[j+1]=tmp; } return arr; 1. 배열의 두번째 인덱스를 기준으로 잡는다. 2. 기준 인덱스보다 작은 인덱스 중 기..

CodingTest - HashMap, TreeSet (해쉬, 정렬지원 Set)

4.1 map.put(x, map.getOrDefault(x, 0)+1); - map.get()하면 해당 key의 value 값을 가져오는데 getOrDefault를 하면 해당 key의 value가 없으면 defalut로 지정한 값이 입력된다. (위에서는 0에 해당한다.) for (char key : map.keySet()) { // System.out.println(key + " " + map.get(key)); if (map.get(key) > max) { max = map.get(key); answer = key; } } - 향상된 for문을 이용하여 map의 key값을 순회하고 싶아면 keySet() 함수를 사용하면 된다. System.out.println(map.containsKey('A'));..

728x90