Spring Boot CORS header 'Access-Control-Allow-Origin' 에러
코딩/스프링 [JAVA] 2021. 3. 4. 01:49

Spring Boot를 사용하면서 Rest API 방식을 구현하다보면, Postman같은 프로그램에서는 잘만 작동되는데 실제 실행에서는 에러가 발생할 때가 있다. React (Node.js) : http://localhost:3000 Spring boot : http://localhost:8081 두 Origin 간에 프로토콜, 포트, 호스트가 같아야 Same - Origin - Policy 정책을 만족시키는데, 실제로 Origin이 다른 경우가 허다하기 때문에 서버측에서 CORS를 이용하여야 한다. 위 에러는 CORS(Cross-Origin Resource Sharing)를 하기 위해 header에 보내는 키(Access-Control-Allow-Origin)이 없다는 뜻이다. 우선 나는 검색을 통해 ..

React-Native Network Request Failed Error [Android]
코딩/안드로이드 2021. 2. 16. 12:38

리액트 네이티브로 만든 안드로이드 어플리케이션에서 Rest 통신을 할 일이 생겼다. 다음과 같이 AndroidManifest.xml에서 Internet 퍼미션을 주고 간단하게 fetch를 사용해서 요청하려고 했지만 Network Request failed 오류가 발생했다. const getMessageFromApi = () => { return fetch('http://127.0.0.1:5000/message', {method:'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body : JSON.stringify({message : dummyVal}) }) .then((response) => res..

MySQL 시작하기
코딩/꿀팁 2021. 1. 17. 23:50

설치, 환경변수 설정 MYSQL 홈페이지에 접속해서 -> https://dev.mysql.com/downloads/installer/ OS에 맞게 다운로드한다. 설치가 끝나면 환경변수 설정을 해준다. 내컴퓨터 속성 > 고급시스템설정 > 환경변수 여기서 시스템변수에서 path에 MYSQL SERVER 설치 경로를 추가해준다. 설치시 기본 경로는 C:\Program Files\MySQL\MySQL Server 8.0\bin이다. 환경변수가 잘 설정되었는지 확인하기 위해서, cmd로 명령 프롬포트를 킨 다음 mysql --version으로 확인해본다. 이제 mysql에 접속은 다음과 같이 한다. mysql -u root -p >>Enter password: 이때 Password는 초기에 서버 설치 시설정한 비..

Form 데이터 검증 [ Spring, Validator, @Valid, hibernate ]
코딩/스프링 [JAVA] 2021. 1. 14. 14:30

아이디나 비밀번호 입력, 이메일 입력 등에서의 제약조건 (대,소문자,10글자 등)은 보통 js나 jquery로 Client에서 수행하는데, 이 작업을 서버(JAVA)단에서도 할 수 있는 것이다. 폼에서 전달되는 데이터를 위의 커맨드 객체(데이터 객체)에 담아 컨트롤 객체에 전달하는데, 이때 유효성 검사를 할 수 있다. Validator 인터페이스 유효성 검사를 수행해주는 객체는 다음과 같다. 우선 Validator 인터페이스를 구현하는 클래스를 만든다. validate는 유효성 검사, supports는 지원하는지에 대해 체크하는 메소드이다. Error 객체의 rejectValue 메소드를 통해 에러정보를 추가할 수 있다. public class MemberValidator implements Valida..

Form 데이터 주고 받기 [Spring, HttpServletRequest]
코딩/스프링 [JAVA] 2021. 1. 14. 01:22

본 게시글은 Seoul wiz의 신입SW인력을 위한 실전 자바(Java) 스프링(Spring)을 참고하여 작성한 글입니다. Form태그, 즉 View의 데이터를 Server로 주고 받는 방식에 대해 알아보자. HttpServletReqest HttpServletRequest에 사용자가 요청한 데이터가 남겨 있고, 이를 통해 데이터를 주고 받을 수 있다. 우선 home.jsp에 다음과 같이 id와 pw를 입력받아 제출할 수 있는 양식을 만든다. action을 보면 /com/sample로 request하게 하였고, post방식을 사용하였다. 로그인 이제 Controller를 살펴보면, HttpServletRequest 객체를 받아 id와 pw에 해당하는 파라미터를 처리하고, 결과페이지로 전송함을 확인할 수 ..

스프링 컨트롤러 [Spring, RequestMapping]
코딩/스프링 [JAVA] 2021. 1. 14. 00:45

본 게시글은 Seoul wiz의 신입SW인력을 위한 실전 자바(Java) 스프링(Spring)을 참고하여 작성한 글입니다. 컨트롤러 컨트롤러는 요청작업 후 뷰로 데이터 전달하는 역할을 한다. @Controller로 클래스 생성 -> @RequestMapping으로 경로 지정 -> 처리 메소드 구현 -> 뷰 이름 리턴 한번 컨트롤러를 만들어보자. HomeController의 위치 옆에 SampleController.java를 만들었다. @Controller public class SampleController { @RequestMapping("/sample") //요청 경로 public String samplecontent(Model model) { //데이터 넣기 model.addAttribute("id..

Spring MVC [Controller, servlet-context, eclipse]
코딩/스프링 [JAVA] 2021. 1. 12. 03:48

본 게시글은 Seoul wiz의 신입SW인력을 위한 실전 자바(Java) 스프링(Spring)을 참고하여 작성한 글입니다. 웹 애플리케이션 제작에 사용되는 스프링 MVC는 다음과 같다. Client에서 요청 -> DispatcherServlet에서 최초로 요청을 받는다. 이제 이 DispatcherServlet에서 요청을 Controller로 보내고, (중간에 HandlerMapping, HandlerAdapter도 들린다.) Controller에서는 처리하여 다시 DispatcherServlet으로 응답한다. 그럼 이제 다시 이 DispatcherServlet에서 ViewResolver에 보내여 사용자에게 View가 보이게 된다. MVC에서 (Model, View, Controller) Model은 이..

AOP (Aspect Oriented Programming) [Spring]
코딩/스프링 [JAVA] 2021. 1. 11. 01:43

본 게시글은 Seoul wiz의 신입SW인력을 위한 실전 자바(Java) 스프링(Spring)을 참고하여 작성한 글입니다. 자바는 객체 지향 프로그래밍, OOP (Object Oriented Programing) AOP는 Aspect, 관점 지향. 시점을 중요시 여긴다는 뜻이다. (oop와 반대되는 말이 아님) 프로그래밍을 하면서 공통적인 기능 (ex) Log) 등이 많이 있는데, 상속을 통해 모든 모듈에 적용하는데, 근데 자바에서는 다중 상속이 불가능. 그리고 구현에 핵심 기능과 공통 기능이 섞이면 효율성이 떨어진다. 여기서 AOP가 등장한다. 공통 기능과 핵심 기능을 분리해놓고, 핵심 기능에 적용하는 공통 기능을 적용하는 방식이다. [용어] Aspect : 공통 기능 Advice : Aspect의 기..

외부 환경 파일 설정 (Environment, Property)[Spring]
코딩/스프링 [JAVA] 2021. 1. 8. 02:41

본 게시글은 Seoul wiz의 신입SW인력을 위한 실전 자바(Java) 스프링(Spring)을 참고하여 작성한 글입니다. 외부에 따로 저장해놓은 세팅 (ID, PW, DB설정 등등)을 스프링 내에서 사용할 일이 종종 생긴다고 한다. 외부 파일의 내용을 Spring으로 가져와 사용하는 방법을 살펴보자. (주로 초기에 설정해야 할 때) 외부 파일로 환경설정 하는 법 (Environment 사용) 우선 대략적인 방법은 다음과 같다. Context로부터 -> Environment (환경설정)객체를 생성한다. 이제 이 Environment 객체 내에는 PropertySource라는 객체 형식으로 사용 할 정보들이 존재한다. 이 PropertySource 객체들을 빼서 사용하면 된다. 일단 properties라고..

컨테이너 생명 주기 [Spring]
코딩/스프링 [JAVA] 2021. 1. 8. 02:30

본 게시글은 Seoul wiz의 신입SW인력을 위한 실전 자바(Java) 스프링(Spring)을 참고하여 작성한 글입니다. 컨테이너 생명 주기 스프링에서 컨테이너의 생명 주기는 다음과 같다. [생성-> 설정 -> 사용 -> 종료] public static void main(Strig[] args){ //스프링 컨테이너 생성 GenericXmlApplicationContext ex = new GenericXmlApplicationContext(); //컨테이너 설정 ex.load("classpath:XML경로"); ex.refresh(); //컨테이너 사용 Example example = ex.getBean("Example",Example.class); /*사용하기 . . .*/ //컨테이너 종료 ex.c..