DB성능테스트: Prototype

하연·2022년 1월 3일
0

인턴십

목록 보기
5/7
post-thumbnail

기술 스택

JAVA Springboot + HTML/CSS/JS + MS SQL + Git

프로젝트 플로우

Model: MS SQL로 더미데이터를 받고 임의로 쿼리를 작성한다, 작성한 쿼리의 실행 속도를 재서 MIN, MAX, AVG 값을 구한 후 FLOAT 배열로 리턴한다.
Controller: VIEW에서 부르면 Model을 불러 FLOAT 배열을 받아 DTO 형태로 전환하여 View로 넘겨준다.
View: 버튼 클릭시 axios로 controller를 불러 받아온 값을 화면에 보여준다.

겪었던 문제점/ 배운점

1. CORS에러

-SOP(Same-Origin Policy): 어떤 출처(프로토콜, 호스트, 포트의 조합을 한 출처라고 한다)에서 불러온 문서, 스크립트, 리소스가 다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 보안 방식으로 잠재적으로 해로울 수 있는 문서를 분리하여 공격받을 수 있는 경로는 줄이는 것을 의미한다.
-CORS(Cross-Origin Resource Sharing): 추가 HTTP 헤더를 사용하여, 한 출처에서 실행중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제

CORS에러를 해결하기 위해 크게 2가지 방법을 쓸 수 있었다.
1) WebConfig.java
WebMvcConfigurer를 상속한 설정 파일에서 addCorsMapping을 재정의하는 것으로 CORS 매핑을 설정할 수 있다.
2)Controller 또는 메소드단에서 annotation을 통해 적용

@RequestMapping("/somePath")
@CrossOrigin(origins = "*", allowedHeaders = "*")
public class SomeController {
}

참조: https://oopsys.tistory.com/266

2. 127.0.0.1 과 localhost의 차이

127.0.0.1 : 거의 모든 컴퓨터환경에서 자기 자신을 접근하는(loopback 이라고 한다고 함) 경우가 잦아 OS 자체적으로 제공하고 , 항상 고정되어 있는 IP(127.0.0.1) 과 호스트네임(localhost)을 갖는다. 비유적으로 localhost 는 www.naver.com 이고 127.0.0.1 은 125.209.222.141(네이버 ip주소) 이다.

3. 스프링에서 @Controller 와 @RestController 의 차이

전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용하지만 Spring MVC의 컨트롤러에서도 Data를 반환해야 하는 경우도 있다. Spring MVC의 컨트롤러에서는 데이터를 반환하기 위해 @ResponseBody 어노테이션을 활용해주어야 한다. 이를 통해 Controller도 Json 형태로 데이터를 반환할 수 있다.

@RestController는 Spring MVC Controlle에 @ResponseBody가 추가된 것입니다. 당연하게도 RestController의 주용도는 Json 형태로 객체 데이터를 반환하는 것이다.

0개의 댓글