웹 브라우저에서 다양한 주소를 입력하고, 클릭하며 상호작용 하고 있습니다. 그렇게 다양한 웹 사이트에 접속하는데 이 주소의 핵심이 바로 도메인 이름입니다. 인터넷에 연결된 모든 컴퓨터가 가지는 고유한 IP주소는 무작위의 숫자 '192.0.1.2' 혹은 '2001:DB8:15A4:6124:0000:1338:03B1" 같은 무작위 주소입니다. 이러한 숫자들은 기억하기 어렵고, 시간마다 변경되는 경우도 있습니다. 이런 주소는 사용자 입장에서 상당히 번거롭기 때문에 이런 숫자대신 'naver.com' 'google.com' 같은 도메인 이름을 사용합니다. 도메인 이름 구조 도메인 이름은 여러 부분으로 구성되어 있습니다. 가장 기본적인 구성요소는 TLD(Top-Level Domain), 도메인의 이름이 가장 오른..
도메인 이름 시스템(Domain Name System)은 사람의 전화번호를 찾는 것 처럼, 컴퓨터 또한 DNS를 사용하여 웹사이트의 주소를 찾습니다. DNS는 "google.co.kr" 같이 기억하기 쉬운 주소를 이름으로 컴퓨터가 네트워크에서 서로를 식별하는데에 사용하는 IP주소로 변환됩니다. 왜 DNS를 사용하는가, 철저하게 유저입장에서 192.0.0.1 라는 규칙없는 번호를 기억하는 대신 'localhost.com' 을 기억하면 됩니다. DNS의 작동 과정 1. 사용자의 요청 : 브라우저에 URL을 입력 2. 브라우저 캐시 확인 : 도메인의 IP 주소를 이미 알고 있는지 캐시를 확인, 알고있다면 과정 종료 3. 운영 체제 캐시 확인 : 브라우저가 해당 정보를 모른다면 OS는 캐시를 확인 4. 라우터 ..
웹 브라우저 작동 방식 브라우저 화면에 google.com을 입력하면 구글 페이지가 표시될 때까지에 어떤 동작을 하는지 알 수 있습니다. 브라우저는 기본적으로 선택한 웹 리소스를 서버에 요청하여 브라우저 창에 표시하는 것입니다. 리소스의 위치는 사용자가 URI를 사용하여 지정합니다. 브라우저에서 HMTL 파일을 해석/표시하는 방법은 지정되어 있습니다. 웹 표준 기구(W3C) 에서 관리하고 있습니다. 보통 모든 방법을 지키진 않았고, 자체 확장 프로그램을 개발했는데 이는 지금 호환성의 문제들이 생긴 이유이기도 하다. 허나 브라우저의 공통 부분들 ( 뒤로가기 버튼, 주소표시줄, 북마크 기능 )은 공식 가이드문서에 있는 사항이 아니다. 그럼에도 동일한 부분들이 많은 이유는 수년간 사용했던 UX, UI가 고착화..
HTTP란 HTTP란 클라이언트와 서버가 서로 통신하는 방식을 표준화한 통신 프로토콜입니다. 인터넷을 통해 컨텐츠가 요청, 전송되는 방식을 정의합니다. TCP 포트는 80을 사용하지만, HTTPS는 443 포트를 사용합니다. HTTP는 컴퓨터가 아닌, 사람이 읽을 수 있게 간단하게 고안됐습니다. HTTP/2 에서 조금 더 복잡해 졌지만, 여전히 간결함을 유지하고 있습니다. 사람이 읽고 이해하기 쉬우며, 테스트하기 쉽게, 초심자의 진입장벽을 많이 낮췄습니다. 동일한 연결 상에서 연속하여 전달된 두 개의 요청에는 연결고리가 전혀 없습니다. 쇼핑 바구니처럼, 일관된 방식으로 페이지와 페이지간에 상호작용을 원할 때 문제가 됩니다. 하지만 HTTP 쿠키는 상태를 저장하는 세션을 만들도록 해줍니다. HTTP 연결은..
인터넷이 작동하는 원리 네트워크란, 서로 연결된 컴퓨터나 장치의 그룹을 뜻합니다. 이렇게 서로 연결된 컴퓨터나 장치의 그룹이 다시 한번 결합되는 것을 인터넷이라고 합니다. 즉, 인터넷이란 네트워크간의 네트워크입니다. 인터넷은 표준화된 프로토콜을 사용해서 작동합니다. 장치, 네트워크 간에 정보가 교환되는 방식을 정의함으로써 안정적이고 안전하게 전송되는 것을 보장합니다. 핵심은 서로 다른 장치와 시스템이 트래픽을 전달할때 담당하는 상호 연결된 라우터의 네트워크입니다. 인터넷을 통해서 데이터를 보내면 패킷으로 나누어 장치 -> 라우터로 전송되는데, 라우터는 이 패킷을 검사하여 다음 라우터로 전달하는 반복을 최종 목적지로 전달할 때 까지 계속하게 됩니다. 패킷이 올바르게 전송되고 수신되도록 하기 위해서 인터넷 ..
https://roadmap.sh/backend Backend Developer Roadmap: What is Backend Development? Learn what backend development is, what backend developers do and how to become one using our community-driven roadmap. roadmap.sh 인터넷 인터넷이란 https://nelapham.tistory.com/146 인터넷이란? 인터넷이 작동하는 원리 네트워크란, 서로 연결된 컴퓨터나 장치의 그룹을 뜻합니다. 이렇게 서로 연결된 컴퓨터나 장치의 그룹이 다시 한번 결합되는 것을 인터넷이라고 합니다. 즉, 인터넷이 nelapham.tistory.com HTTP란 htt..
OAuth2LoginSuccessHandler 수정사항 해당 메서드의 대해서 jwtProvider에 메서드에 대해서 매치하지 않는 부분들을 수정했습니다. @Slf4j @Component @RequiredArgsConstructor public class OAuth2LoginSuccessHandler implements AuthenticationSuccessHandler { private final JwtProvider jwtProvider; private final UserRepository userRepository; @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, ..
OAuth2 로직 구현 중에 해당 오류 문구가 발생했다. org.springframework.dao.DataIntegrityViolationException: not-null property references a null or transient value : com.thecp.dev.user.entity.User.name; nested exception is org.hibernate.PropertyValueException: not-null property references a null or transient value : com.thecp.dev.user.entity.User.name null을 허용하지 않는 entity 개체에 null 값이 들어가서 오류가 발생하는 것으로 보인다. null이 가능..