프로그래밍/Spring 63

[Spring error] Class not found [config set: /web-context]

Class not found [config set: /web-context] error 해결 방법 1️⃣ 패키지명과 클래스명 확인해보기 2️⃣ jar 파일이 제대로 있는지 확인해보기 3️⃣ 둘 다 아니라면 Remove Spring Project Nature => Add Spring Project Nature를 해주기 1. 프로젝트 선택 후 우클릭 2. Sping Tools 클릭 3. Remove Spring Project Nature 클릭 4. 프로젝트 빌드 완료 후 Spring Tools 메뉴에서 Add Sping Project Nature 클릭

[Spring error] WARN : org.springframework.web.servlet.PageNotFound - No mapping for GET or POST error

WARN : org.springframework.web.servlet.PageNotFound - No mapping for GET 에러가 뜨는 경우 1️⃣ 해당 URI를 처리하는 메소드를 생성 안한 경우 2️⃣ 해당 URI를 처리하는 메소드를 만들었지만 해당 클래스에 @Controller 어노테이션을 안 쓴 경우 3️⃣ 프로젝트 명 변경 시 프로젝트 명만 변경하고 프로젝트 안에 프로젝트 명 설정 부분을 모두 변경하지 않은 경우

[OAuth] 구글 소셜 로그인 구현 (2) - javascript로 연동

javascript로 google login 하기 💡OAuth 클라이언트 ID, Secret 생성에 대해 알고싶다면 이전글 확인 기존 방식을 사용해서 하다보면 migration 하라는 에러를 만날 수 있기에 수정된 버전으로 구현해보자😊 구현 중 여러 오류들을 만났고, 이를 해결한 최종 코드 공유👍 1️⃣ body안에 script 태그 삽입 2️⃣ 원하는 위치에 구글 로그인 달기 3️⃣ 로그인 정보를 가져오기 위한 handleCredentialResponse 함수 생성 function handleCredentialResponse(response) { // decodeJwtResponse() is a custom function defined by you // to decode the credential r..

[OAuth] 구글 소셜 로그인 구현 (1) - OAuth 클라이언트 ID, Secret 생성

구글 소셜 로그인의 흐름 구글 로그인 버튼 클릭 👉 구글 로그인 페이지로 이동 👉 로그인 하기 👉 웹으로 리다이렉션 되고 로그인 상태로 변함 클라이언트에서 이해하기 로그인 버튼 클릭 시 구글 페이지로 이동 👉 로그인 후 URI에 나오는 인가 코드를 서버로 보냄 👉 서버에서 받은 유저 정보를 마이페이지에 렌더링 서버에서 이해하기 인가 코드를 받음 👉 인가 코드로 엑세스 토큰을 받음 👉 엑세스 토큰을 가지고 구글 API에 유저 정보를 요청 👉 유저 정보를 받아 프론트로 보내줌 소셜 로그인 구현 로직 1. OAuth 동의 화면 구성 만들기 Step 1. [좌측 상단 ≡ > API 및 서비스 > OAuth 동의 화면]을 클릭 후 새 프로젝트 생성 Step 2. OAuth 동의 화면에서 User Type '외부'..

[Spring] Maven Project 생성 및 pom.xml의 이해

Maven Project 생성 ✔️ WorkSpace에서 우클릭 > New > Other... > Maven Project 선택 > Next 클릭 ✔️ Create a simple project 체크 > Next 클릭 ✔️ Group Id와 Artifact Id 작성 > Finish ❓ Group Id와 Artifact Id Group Id - 하나의 큰 프로젝트(지하철) Artifact Id - 그 안의 각각의 프로젝트(1호선) Maven 프로젝트 생성 완료🎊 pom.xml 파일 설정 pom.xml이란? Maven의 빌드 정보를 담고 있는 파일(필요한 모듈을 가져오기 위한 파일) POM(Project Object Model)을 설정하는 부분으로 프로젝트 내 빌드 옵션을 설정하는 부분 pom.xml 파일..

[Spring] 리다이렉트(rediredt)와 인터셉터(interceptor)

리다이렉트 컨트롤러에서 뷰를 분기하는 방법 지금의 페이지에서 특정 페이지로 전환하는 기능 사용 예시 👇 public String testMethod(){ return "redirect:/"; } 인터셉트(리다이렉트를 조금 더 편리하게 사용하는 가능) 컨트롤러 실행 전/후에 특정 작업을 가능하게 하는 방법 리다이렉트를 사용하는 경우가 많을 때 HandlerInterceptor를 이용할 수 있음 HandlerInterceptor 인터페이스 구현시 순서👇 preHandle() 컨트롤러 작동 전에 작업(가장 많이 쓰임) postHandle() 컨트롤러 작동 후에 작업 afterCompletion() 컨트롤러와 뷰가 다 작동한 후 작업

[Spring] Session과 Cookie

Connectionless Protocol 서버의 부하를 줄일 수 있는 장점은 있으나, 클라이언트 요청 시마다 서버와 매번 새로운 연결이 생성되기 때문에 일반적인 로그인 상태 유지, 장바구니 등의 기능을 구현하기 어려움 이러한 불편함을 해결하기 위해 세션과 쿠키를 이용함 세션과 쿠키는 클라이언트와 서버의 연결 상태를 유지해주는 방법으로 세션은 서버에서 연결 정보를 관리하는 반면 쿠키는 클라이언트에서 연결 정보를 관리하는데 차이가 있음 더보기 ❓세션, 쿠키를 사용하는 이유 클라이언트와 서버의 연결 상태를 유지시켜주기 위함 세션 사용 방법 1️⃣ HttpServletRequest 2️⃣ HttpSession 둘의 차이점은 거의 없으며, 단지 세션객체를 얻는 방법에 차이가 있음 💡 HttpServletRequ..