IETF(Internet Engineering Task Force, 국제 인터넷 표준화 기구) 인터넷 기술의 작동 방식을 설계하고 기술 표준 문서를 만드는 단체 ICANN(Internet Corporation for Assigned Names and Number, 인터넷 주소 관리 기구) 도메인 네임, IP주소, 일부 프로토콜 정보와 같이 인터넷이 작동하려면 고유하게 유지돼야하는 이름과 번호를 할당한다. 도메인 네임 등록 대행 업체에 권한을 승인하고 대행업체는 개인이나 단체에 도메인 이름을 할당한다. 도메인 네임 시스템(DNS) 최상위 도메인: .com, .edu, .us (국가 코드) princeton.edu -> 서브 도메인(하위 도메인) 고전학과 classics.princeton.edu 컴퓨터 학과..
Spring Security의 Security Session 기반의 인증 방식을 사용하여 로그인을 구현하려고 했지만, 프론트와 합치는 과정에서 Session이 전달되지 않는 오류가 발생했다. WithCridential 설정도 바꿔주고 서브도메인을 서버 IP와 연결시켜 cors 에러도 하나하나 해결하였지만 JWT로 구현하자는 의견이 많아 결국 JWT를 구현하게 되었다. 일단 Spring과 React를 합친 프로젝트를 분석했당 SecurityContextHolder HTTP 통신 왜 갑자기 HTTP에 대해서 나오는지 궁금할 수 있다. "로그인" 이라는 과정은 서버와 클라이언트가 데이터를 주고 받는 통신 방법이 필요하다. -> HTTP는 connectless/stateless 속성이 필요하다. 토큰 방식 (클..
https://tecoble.techcourse.co.kr/post/2020-09-20-entity-lifecycle-2/ Entity Lifecycle을 고려해 코드를 작성하자 2편 이번 편에서는 전편에서 해결하지 못한 부분이었던 “Spring Boot에서는 기본적으로 OSIV의 설정 값이 true인데도 불구하고 LazyInitializationException… tecoble.techcourse.co.kr @Component @Configuration public class OpenEntityManagerConfig { @Bean public FilterRegistrationBean openEntityManagerInViewFilter() { FilterRegistrationBean filterFil..
세션 로그인 방식을 구현하고, OAuth 방식으로 Google 로그인을 구현 시작했다. login.html html -> "/oauth2/authorization/google" OAuth Client 라이브러리에서 정해놓은 주소이기 때문에 주소를 지정해야함. 구글 로그인이 완료된 뒤의 후처리가 필요함. 1. 코드받기(인증) 2. 엑세스 토큰(권한) -> 코드가 아님, (엑세스 토큰 + 사용자 프로필 정보) 3. 사용자 정보 가져오기 4. 회원가입 자동 진행 / 추가적인 정보가 필요할 경우, 회원가입 창 WebSecurityConfig 의 SecurityFilterChain .oauth2Login() .loginPage("/user/login") .userInfoEndpoint() .userService(..
회원가입 구현 1. Controller에 PostMapping 설정 2. 회원가입 예외처리 설정 어떤 곳에서 발생한 오류인지 구분하기 위한 Enum ExceptionClass를 필드로 가지는 Constants 생성 public class Constants { public enum ExceptionClass { LOGIN_USERNAME("로그인 아이디"), LOGIN_PASSWORD("로그인 비밀번호"), SIGNUP_USERNAME("회원 가입 아이디"), SIGNUP_PASSWORD("로그인 패스워드"), SIGNUP_PASSWORDCHECK("로그인 패스워드 확인"); private String exceptionClass; ExceptionClass(String exceptionClass) { th..
파일시스템이란? 파일 시스템이란, 파일의 이름을 정하고 저장, 검색을 위해서 논리적으로 어디에 위치시켜야 하는지에 대한 방법을 구성한 시스템이다. 저장 매체의 공간이 증가 할수록 파일의 수 또한 점점 증가하게 되어 별도의 관리 시스템이 필요하게 되었다. 파일 시스템으로 인해 파일에 대한 접근이 효율적으로 수행되고 파일들이 서로 간섭하지 않도록 조정할 수 있게 되었다. 파일 시스템의 특징 계층적 디렉터리 구조를 가진다. 파일이나 폴더들을 효율적으로 관리 및 읽고 쓰게 한다. 파일 시스템의 역할 파일 관리 보조 저장소 관리 : 저장 공간 할당 파일 무결성 메커니즘 : 파일이 의도한 정보만 포함하고 있음을 의미 접근 방법 : 저장된 데이터에 접근할 수 있는 방법 제공 파일 시스템의 구조 메타 영역 : 데이터 ..
지수 복잡도(expnential) 복잡도. 2^N의 비율로 일의 양이 빠르게 증가. 암호 기법에 사용되는 알고리즘은 특정 계산 과제를 수행하는 일이 지수 복잡도를 갖도록 하는데 기반을 둠. 하나하나 푸는데 계산상으로 불가능할 정도로의 큰 N을 기반으로 복호화를 방지 지수복잡도의 대표적인 예 하노이의 탑 한 번의 하나의 원판만 이동할 수 있다. 맨 위의 있는 원판만 이동이 가능하다. 크기가 작은 원판위에 큰 원판이 쌓일 수 없다. 중간의 막대를 임시적으로 이용할 수 있으나 앞의 조건들을 지켜야 한다 재귀를 이용한 피보나치 수열 def fibo(n): if n==1 : return 1 if n==2 : return 1 return fibo(n-1)+fibo(n-2) P, NP문제 답이 YES 아니면 NO로 ..
게시글 API 기능 Method URL request response 로그인 토큰 전체 게시글 목록 조회 API GET / Page X 게시글 작성 API POST /posts Post Post O 게시글 수정 API PUT /posts/{id} id, Post id O 게시글 삭제 API DELETE /posts/{id} id O 게시글 눌러보기 GET /posts/{id} post.html X 검색어를 포함하는 게시글 목록 조회 API GET /search?query= String query Page X 회원관리 API 기능 Method URL request response 로그인 토큰 회원가입 페이지 GET /user/signup - singup.html X 회원가입 POST /user/signup..