Back-end 28

Spring Boot + Vue) 서버단에서 CORS 문제 해결하기

개발 환경 Vue3 Spring Boot 3.0.2 JAVA 17 Vue의 포트번호 : 3000 Spring의 포트번호 : 8080 Vue랑 Spring Boot를 처음으로 연동하여 공부를 하고 있는데 역시나 CORS에 부딪혔다. 수많은 블로그에 추천은 하지 않지만 프론트 단에서만 해결할 수도 있다고 하는데 아무리 Proxy를 설정해도 해결되지 않았다. 결국 프론트단의 proxy설정과 백엔드단의 설정이 둘다 필요했다. Vue webpack.config.js module.exports = { devServer : { proxy : { '/api' : { target:'http://localhost:8080', pathRewrite:{'^/api':''}, } } }, }; target : 위 내용은 /ap..

이클립스 안켜짐. workspace is in use or cannot be create, please choose a different one.

이클립스를 열면 다음과같은 에러메시지가 나온다. workspace is in use or cannot be create, please choose a different one. 문구 의미: 이미 해당 워크스페이스가 이클립스로 열려있으니 다른 워크스페이스를 선택해라~ 원인: 해당 워크스페이스를 연 이클립스가 이미 있어서. 상태: 이클립스가 열려있다고 문구가 뜨는데 열려있는 이클립스가 보이지 않는다. 해결방법1. 작업관리자를 열어 해당 작업을 종료한다. 작업관리자를 열어서 보면 화면으로는 보이지 않지만 이클립스가 실행되고 있는게 보인다. 이클립스를 우클릭해서 "작업끝내기"를 누른다. 다음으로 워크스페이스 폴더의 .metadata로 들어가서 .lock 퍼알울 삭제한다. 대부분 이 방법으로 하면 해결되는것같던데..

Back-end 2022.06.26

Spring) 비즈니스 계층. 서비스(Service)란?

비즈니스 계층, 서비스는 컨트롤러와 DAO사이에 위치해서 서로 의존성이 높아지는것을 방지하는 완충제 역할을 한다. 컨트롤러에서 DAO를 바로 호출할 수 있지만, 그러면 컨트롤러와 DAO가 종속되어버린다(강한결합). 그래서 컨트롤러와 DB의 다이렉트 연결을 한단계 떨어뜨려 종속되는것을 막는 것. => 외부 호출에 대한 영속계층(persistence) 종속성을 막는다. 종속성을 떨어뜨린다는건 매우쉽게 말하면 컨트롤러는 컨트롤러의 역할만 하게 하고, 그 외의 역할은 못하게 하는 것. 이렇게 하는 이유는 중간에 DB를 바꾼다거나 할때 바뀌는 부분만 갈아끼우기 형태로 바꿀 수 있기 때문이다. 종속이 되면 서로 강한결합이 되어있으니 모두 다 뜯어고쳐야 하는 상황이 발생하게된다. 1. 서비스 패키지 만들고 객체 등록..

Back-end/Spring 2022.05.02

Spring) 로그인 동작 만들기(테스트 형태)

로그인 동작 전 준비 - MemberVO - DB에 유저테이블에 유저 한명 이상 - DB연결할 dataSource, SqlSessionFactory, SqlSessionTemplate 객체Bean. 1. MemberDAO에 추상메서드로 로그인 메서드 만들어놓기 public void loginMember(String userid, String userpw); 이렇게 직접 적는것 보다 vo객체를 사용하는 것이 좋다. 이렇게 따로 정보를 가져와서 처리하는 방법은 뒤에 5번에 적어보겠다. // 로그인 동작 public MemberVO loginMember(MemberVO vo); 2. 로그인 동작 sql문 생성 src/main/resource/mappers/memberMapper.xml select * from..

Back-end/Spring 2022.04.29

Spring) Contoller 리턴 타입에 따른 매핑 방법

컨트롤러의 메서드의 리턴타입에 따라 페이지 이동 방법이 다르다. 리턴값이 없을때(void), 리턴타입이 String일때, 리다이렉트, 포워드 의 페이지 이동을 정리해보려 한다. 1. 리턴타입이 void일때 이전글에서 했던 대로 @RequestMapping("/주소") 괄호안에 적은 주소와 같은이름의 페이지를 매핑한다. @RequestMapping("/myPage") 로 하면 views/myPage.jsp 페이지를 호출. 2. 리턴타입이 String일때 형식 @RequestMapping("/doTest2") public String doTest02() { return "String리턴"; } @RequestMapping() 에는 /doTest2로 되어있지만 return된 문자열인 String리턴.jsp 페..

Back-end/Spring 2022.04.27

Spring) 스프링 Controller 개념과 페이지 연결(주소매핑)

1. 컨트롤러란? 스프링 프레임워크는 MVC패턴을 사용하고있고, 여기서 Controller는 화면(View)과 비즈니스 로직(Model)를 연결시키는 다리 역할을 한다. 쉽게 말하자면 화면에서 /aaa 로 가줘~ 하고 요청하면 주소를 받아들여 어디로 갈지 분석하고 맞는 길로 연결시켜주는 역할이다. Controller를 세부적으로 나누면 FrontController와 Controller로 나눌 수 있다. FrontController는 사용자의 모든 요청을 전달받는곳으로, 요청에따라 view페이지 또는 적절한 컨트롤러를 호출한다. 또한 원하는 작업을 수행한 결과를 가지고 다시 페이지를 이동한다. ▷ 작성하는 코드가 컨트롤러인지 어떻게 파악할까? @Controller 어노테이션으로 인해 이 클래스가 컨트롤러인..

Back-end/Spring 2022.04.27

Spring) DB연결 방법 3가지(직접, Bean객체, MyBatis)

1. 클래스에서 직접 연결하는 방법. public class DBConnectTest { private static final String DRIVER = "com.mysql.cj.jdbc.Driver"; private static final String DBURL = "jdbc:mysql://localhost:3306/springdb"; private static final String DBID = "root"; private static final String DBPW = "1234"; @Test public void 디비연결테스트() { try(Connection con = DriverManager.getConnection(DBURL, DBID, DBPW)) { Class.forName(DRIVER..

Back-end/Spring 2022.04.25

Spring) JUnit을 활용하여 테스트 코드 작성하기

스프링으로 프로젝트를 시작하기 전, DB연결은 잘 되는지, 객체 주입이 잘 되는지 등 테스트를 해보는것이 좋다고 한다. JUnit은 자바용 단위 테스트 프레임워크여서 JUnit을 통해 테스트를 실행해볼 수 있다. *JUnit은 자바 1.8버전부터 사용할 수 있다. 1. JUnit 라이브러리가 있는지 확인하기. pom.xml 파일에 가서 아래의 dependency가 있는지 찾아본다. 만약 없으면 위의 코드를 추가하거나 아래 dependencies탭에서 junit을 추가한다. pom.xml말고도 Maven Dependencies에서도 찾아볼 수 있다. 2. 테스트 클래스 작성 테스트 클래스는 src/main/java안의 패키지명과 같은 이름으로 src/test/java 안에 패키지를 만들어야한다. 클래스명은..

Back-end/Spring 2022.04.23

Spring Boot) 프로젝트 생성 시 오류 해결(Gradle sync failed 등등)

스프링 프로젝트를 생성했더니 아래와 같은 오류들이 차례로 나타났다.. 항상 처음으로 프로젝트를 생성할때는 오류를 만나는것 같다ㅎㅎ.. cause: invalid entry CRC failed to create jar file Gradle sync failed Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed 우선 나는 자바17버전으로 프로젝트를 생성했고, 11버전도 큰 차이는 없다. 1. 프로젝트가 해당 자바 버전으로 맞춰졌는지 확인한다. 1) build.gradle 파일 sourceCompatibility = 해당 버전 17이면 17, 11이면 11등 버전을 확인한다. 2) 프로젝트 JDK F..

Spring Boot) IntelliJ + Spring Boot시작하기

아래 링크로 들어가서 스프링 부트 기반으로 Spring 프로젝트를 만든다. https://start.spring.io/ 전에는 빌드도구로 Maven을 많이 사용했지만 요즘은 Gradle로 하는 추세라고 한다. Spring Boot 버전은 뒤에 괄호()가 없는 제일 최신 버전을 선택하면 된다. Group : 기본 패키지 이름을 설정. 보통 회사의 도메인명으로 한다. Artifact : 프로젝트 명 Java 버전은 각자 사용할 버전을 선택하면된다. Dependencies : 스프링부트로 스프링 프로젝트를 시작할때 어떤 라이브러리를 가져와 쓸건지 선택. 여기서는 웹 프로젝트를 만들것이기 때문에 Spring web과 HTML을 구성해주는 Template Engines를 선택한다. 설정을 다 마쳤으면 하단의 Ge..

반응형