OSI 7계층 - 응용 계층 - 프리젠테이션 - 세션 - 트랜스포트 TCP/UDP - 네트워크 IP - 데이터링크 - 물리 보낼 때는 위에서 아래로 / 받을 때는 아래에서 위로 TCP는 상대가 데이터를 받았는지 확인을 받고 다음 데이터를 보냄. --> 신뢰성 있는 통신 UDP는 확인 안받고 그냥 쭉 보냄. --> 신뢰성 부족.
취업 준비
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2xVC4%2Fbtruee9cAEi%2F9B73xXG12fPDQlALqsHC2K%2Fimg.png)
1. 네이버는 OAuth2 Client에서 지원하지 않기 때문에 수동으로 설정해 주어야 한다. application.yml 수정 들여쓰기를 맞춰주어야 한다. # 네이버는 OAuth2.0 공식 지원대상이 아니라서 provider 설정이 필요하다. # 요청주소도 다르고, 응답 데이터도 다르기 때문이다. naver: client-id: 머시기 client-secret: 머시기 scope: - name - email - profile_image client-name: Naver # 클라이언트 네임은 구글 페이스북도 대문자로 시작하더라. authorization-grant-type: authorization_code redirect-uri: http://localhost:8080/login/oauth2/code/..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fnqrho%2Fbtrt43UyT8t%2F6WWN0YESnxj2WKGN2BWs90%2Fimg.png)
1. Meta(구 Facebook) developers에 들어가서 새 앱을 만들어준다. 없음 누르고 앱 ID 아무렇게나 입력하도 만들면 된다. 2. 페이스북 로그인 제품 추가 웹을 누르고 넘어간다. 자바스크립트가 아니라 OAuth2 클라이언트로 구현할 것이기 때문에 URL만 입력하고 나머지는 넘어간다. 3. 설정 -> 기본 설정에 들어가서 앱 ID와 시크릿 코드를 확인한다. 4. application.yml 수정 들여쓰기를 맞춰서 id와 코드를 넣어준다. https://developers.facebook.com/docs/facebook-login/web/permissions 권한 - Facebook 로그인 - 문서 - Facebook for Developers 거부된 권한 다시 요청 Facebook 로그..
1. 일반 로그인과 구글 로그인 테스트 페이지 작성 //세션정보 확인을 위한 테스트 페이지 @GetMapping("/test/login") public @ResponseBody String testLogin(Authentication authentication, // 이 방법으로는 authentication이 오브젝트 이기 때문에 캐스팅 필요 @AuthenticationPrincipal PrincipalDetails userDetails) { // DI 방식은 다형성에 의해 바로 User를 받아올 수 있음. System.out.println("==========================/test/login ==========================="); PrincipalDetails princ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQsC3P%2Fbtrtye95vdK%2FcDoaV4ddxAuTvTbdlUdKS1%2Fimg.png)
1. https://console.developers.google.com/ Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 여기 접속해서 새 프로젝트를 만들어 준다. 사용자 인증 정보에서 이름과 리디렉션 URI를 입력해준다. URI의 login부터 google까지는 고정. 만들면 클라이언트 ID와 비밀번호를 준다. 2. 스프링부트 OAuth2 Client를 pom.xml에 추가해준다. org.springframework.boot spring-boot-starter-oauth2-client 3. application.yml 수정 security: oauth2: client..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5rIsh%2FbtrtwKPalSh%2F9Xg6NRhkDPZZetfk3Yq510%2Fimg.png)
1. admin, manager 계정 만들고 권한 DB에서 바꿔주기 2. SecurityConfig 수정 package com.pure.security.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import o..
1. loginForm 수정 로그인 페이지 로그인 회원가입 /login 주소로 로그인을 실행할 것이므로 action에 /login을 넣어준다. input text의 name을 꼭 username으로 해주어야 한다. (시큐리티 기본설정이기 때문. 바꿀 수 있음.) 2. SecurityConfig 수정 package com.pure.security.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; im..
1. 로그인, 회원가입 폼 만들기 templates 아래에 loginForm.html을 만든다. 로그인 페이지 로그인 joinForm.html 회원가입 페이지 회원가입 2. User 정보를 저장할 User 오브젝트를 만든다. package com.pure.security.model; import java.sql.Timestamp; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import org.hibernate.annotations.CreationTimestamp; import lombok.Da..