![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7cGYH%2FbtrBDmsw7nF%2Fk62r71NK5OnF1b6IKs0VRk%2Fimg.png)
[OAuth] 구글 소셜 로그인 구현 (1) - OAuth 클라이언트 ID, Secret 생성
2022. 7. 21. 20:28
프로그래밍/Spring
구글 소셜 로그인의 흐름 구글 로그인 버튼 클릭 👉 구글 로그인 페이지로 이동 👉 로그인 하기 👉 웹으로 리다이렉션 되고 로그인 상태로 변함 클라이언트에서 이해하기 로그인 버튼 클릭 시 구글 페이지로 이동 👉 로그인 후 URI에 나오는 인가 코드를 서버로 보냄 👉 서버에서 받은 유저 정보를 마이페이지에 렌더링 서버에서 이해하기 인가 코드를 받음 👉 인가 코드로 엑세스 토큰을 받음 👉 엑세스 토큰을 가지고 구글 API에 유저 정보를 요청 👉 유저 정보를 받아 프론트로 보내줌 소셜 로그인 구현 로직 1. OAuth 동의 화면 구성 만들기 Step 1. [좌측 상단 ≡ > API 및 서비스 > OAuth 동의 화면]을 클릭 후 새 프로젝트 생성 Step 2. OAuth 동의 화면에서 User Type '외부'..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlrL2t%2FbtrzkpSx9SH%2FYKfzci2hfPmnq5O3rrUhXK%2Fimg.png)
[Spring] Maven Project 생성 및 pom.xml의 이해
2022. 7. 19. 20:39
프로그래밍/Spring
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)
2022. 3. 4. 20:18
프로그래밍/Spring
리다이렉트 컨트롤러에서 뷰를 분기하는 방법 지금의 페이지에서 특정 페이지로 전환하는 기능 사용 예시 👇 public String testMethod(){ return "redirect:/"; } 인터셉트(리다이렉트를 조금 더 편리하게 사용하는 가능) 컨트롤러 실행 전/후에 특정 작업을 가능하게 하는 방법 리다이렉트를 사용하는 경우가 많을 때 HandlerInterceptor를 이용할 수 있음 HandlerInterceptor 인터페이스 구현시 순서👇 preHandle() 컨트롤러 작동 전에 작업(가장 많이 쓰임) postHandle() 컨트롤러 작동 후에 작업 afterCompletion() 컨트롤러와 뷰가 다 작동한 후 작업
[Spring] Session과 Cookie
2022. 3. 3. 20:57
프로그래밍/Spring
Connectionless Protocol 서버의 부하를 줄일 수 있는 장점은 있으나, 클라이언트 요청 시마다 서버와 매번 새로운 연결이 생성되기 때문에 일반적인 로그인 상태 유지, 장바구니 등의 기능을 구현하기 어려움 이러한 불편함을 해결하기 위해 세션과 쿠키를 이용함 세션과 쿠키는 클라이언트와 서버의 연결 상태를 유지해주는 방법으로 세션은 서버에서 연결 정보를 관리하는 반면 쿠키는 클라이언트에서 연결 정보를 관리하는데 차이가 있음 더보기 ❓세션, 쿠키를 사용하는 이유 클라이언트와 서버의 연결 상태를 유지시켜주기 위함 세션 사용 방법 1️⃣ HttpServletRequest 2️⃣ HttpSession 둘의 차이점은 거의 없으며, 단지 세션객체를 얻는 방법에 차이가 있음 💡 HttpServletRequ..
org.springframework.beans.factory.BeanCreationException 해결 방법
2021. 12. 31. 20:02
프로그래밍/Spring
org.springframework.beans.factory.BeanCreationException 에러 해결 방법 내부망으로 접속을 해야 하는데 외부망으로 해당 프로젝트 사이트에 접속하는 경우 발생할 수 있는 에러 👉 내부망으로 변경하여 접속을 하면 에러가 해결될 수도 있음 그 외 다른 해결 방법 👉 프로젝트 클린 후 서버 재실행 👉 나의 경우 .project 파일을 잘라내기 한 후 clean → 다시 붙여넣고 clean하니 실행됨
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA8KXR%2FbtrigC89wxT%2FIcvSSsqMFPzhJ9b0zr2A9k%2Fimg.png)
스프링 pom.xml 설정(+ 스프링 구조)
2021. 10. 22. 20:39
프로그래밍/Spring
pom.xml 설정 pom.xml 파일은 메이븐 설정파일로 메이븐은 라이브러리를 연결해주고, 빌드를 위한 플랫폼임 필요한 모듈을 가져오기 위한 파일 👇 4.0.0 spring basicSpring 0.0.1-SNAPSHOT 1️⃣ dependencies와 bulid 태그를 추가해 줌 4.0.0 spring basicSpring 0.0.1-SNAPSHOT org.springframework spring-context 4.1.0.RELEASE maven-compiler-plugin 3.1 1.8 1.8 utf-8 2️⃣ 프로젝트에 아래처럼 x가 생긴다면 프로젝트의 JRE라이브러리 버전이 메이븐 설정파일에 명시되어 있는 버전과 일치하지 않아서 발생하는 것으로 프로젝트를 업데이트하면 됨 3️⃣ 메이븐 프로젝트 ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZvBuK%2FbtrifnSdwVl%2FaZKhZUzv3biAzzKDOMKBb0%2Fimg.png)
스프링 프로젝트 생성
2021. 10. 21. 20:32
프로그래밍/Spring
스프링 프로젝트 생성 1️⃣ 이클립스 실행 2️⃣ Maven Project 생성 왼쪽 창에서 우클릭 > New > maven 검색 > Maven Project 생성 > 아래처럼 체크 후 Next 3️⃣ Group Id와 Artifact Id 입력 후 Finish Group Id - 전체 큰 프로젝트를 감싸고 있는 이름 - 모든 프로젝트 중 프로젝트를 식별하게 해주는 식별자 - groupId는 Java의 패키지 이름 규칙을 따라야 함 즉 제어하는 도메인 이름의 반대로 시작 ex ) org.apache.maven, org.apache.commons - 만약 프로젝트가 다중 모듈 프로젝트인 경우 부모의 groupId에 새 식별자를 추가해 사용 ex ) org.apache.maven, org.apache.mav..
스프링 컨테이너(IoC)
2021. 10. 19. 20:31
프로그래밍/Spring
스프링 컨테이너(IoC) 스프링 컨테이너는 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공하는 역할을 함 여기서 말하는 자바 객체를 스프링에서는 빈(Bean)이라고 부름 IoC와 DI의 원리가 이 스프링 컨테이너에 적용됨 👉스프링에서 객체를 생성하고 조립하는 컨테이너(container)로, 컨테이너를 통해 생성된 객체를 빈(Bean)이라 부름 개발자는 new 연산자, 인터페이스 호출, 팩토리 호출 방식으로 객체를 생성하고 소멸시킬 수 있는데, 스프링 컨테이너가 이 역할을 대신해 줌 즉, 제어 흐름을 외부에서 관리 또한, 객체들 간의 의존 관계를 스프링 컨테이너가 런타임 과정에서 알아서 만들어 줌 DI는 생성자, setter, @Autowired를 통해 적용함 참고자료 👇 ..