개발자 기술 면접/기타 질문16 [기타] TCP/IP란? TCP/IP TCP/IP란 전송제어 프로토콜(Transmission Control Protocol)/인터넷 프로토콜(Internet Protocol)의 약자로서, 인터넷에서 사용되는 표준 통신 프로토콜입니다. 즉, 서로 다른 시스템을 가진 컴퓨터들을 서로 연결하여 데이터가 의도된 목적지에 닿을수 있도록 보장해주는 통신 규약입니다. TCP/IP는 하나의 프로토콜이 아닌 TCP와 IP를 합쳐서 부르는 말인데, 이것을 사용하겠다는 것은 IP 주소 체계를 따르고 IP Routing을 이용해 목적지에 도달하며 TCP의 특성을 활용해 송/수신자의 논리적 연결을 생성하고 신뢰성을 유지할 수 있도록 하겠다는 것을 의미합니다. [참고] https://velog.io/@fore0919/TIL-WEB-TCPIP-%EA%B0.. 2024. 3. 7. [기타] 세션 기반 인증 방식과 토큰 기반 인증 방식의 차이 세션 기반 인증 방식 세션 기반 인증을 위해 Session 과 Cookie 가 사용됩니다. 다음 Flow로 인증 절차가 진행됩니다. 유저가 로그인을 하고 세션이 서버 메모리 상에 저장됩니다. 이 때 세션을 식별하기 위한 Session Id를 기준으로 정보를 저장합니다. 브라우저에 쿠키로 Session Id가 저장됩니다. 쿠키에 정보가 담겨있기 때문에 브라우저는 해당 사이트에 대한 모든 Request마다 HTTP Cookie Header에 Session Id를 담아 전송합니다. 서버는 클라이언트가 보낸 Session Id와 서버 메모리로 관리하고 있는 Session Id를 비교하여 Verification을 수행합니다. 세션 기반 인증 방식 장단점 장점 세션 기반 인증 방식은 구현이 상당히 명확하다는 장점이.. 2023. 12. 31. [기타] 모놀리식, 마이크로서비스 아키텍처 모놀리식(Monolithic) 아키텍처 하나의 서비스 또는 애플리케이션이 하나의 거대한 아키텍처를 가질 때, 이를 모놀리식 아키텍처라고 합니다. 마이크로서비스(Microservice) 아키텍처 하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처를 말합니다. 2023. 12. 30. [기타] OAuth 2.0이란? OAuth 2.0 보안된 리소스에 액세스하기 위해 클라이언트에게 권한을 제공하는 프로세스를 단순화한 표준 인증 프로토콜입니다. 간단하게 설명하면, 어떤 서비스를 만들 때 사용자 개인정보와 인증에 대한 책임을 지지않고 신뢰할 만한 타사 플랫폼에 위임하는 것입니다. 개인정보 관련 데이터를 직접 보관하는 것은 리스크가 크고, 보안적으로 문제되지 않도록 안전하게 관리해야 하며 ID/PW에 관련된 지속적인 해킹 공격 등 여러 가지 신경써야 할 부분이 많습니다. 따라서, OAuth 2.0을 사용해 신뢰할 수 있는 플랫폼(구글, 페이스북, 네이버, 카카오 등)에 개인정보, 인증 기능을 맡기면 서비스는 인증 기능에 대한 부담을 줄일 수 있습니다. 2023. 12. 30. [기타] 가상머신(VM)과 컨테이너의 차이 가상머신 호스트 하드웨어에서 실행하는 프로그램으로서, 하이퍼바이저라는 소프트웨어를 통하여 호스트 OS와 분리하여 자체 게스트 OS 및 애플리케이션을 갖춘 격리된 환경을 제공하는 소프트웨어입니다. 컨테이너 호스트 OS상에 논리적인 구획(컨테이너)을 만들고, 어플리케이션을 작동시키기 위해 필요한 라이브러리나 어플리케이션 등을 하나로 모아, 마치 별도의 서버인 것처럼 사용할 수 있게 만든 것입니다. 2023. 12. 30. [기타] 옵저버 패턴 옵저버 패턴(Observer Pattern) 어떤 대상 객체(관찰 대상 객체)의 상태 변화가 있을 때마다 대상 객체는, 그 객체에 의존하는 다른 객체(대상 객체를 관찰하는 객체)들에게 알림을 보내고 알림을 받은 객체들은 그에 따른 행동을 취하는 디자인 패턴입니다. 주로 이벤트 기반 시스템에 사용하며 MVC 패턴에도 사용됩니다. [참고] https://cocococo.tistory.com/entry/%EC%98%B5%EC%A0%80%EB%B2%84Observer-%ED%8C%A8%ED%84%B4-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EA%B5%AC%ED%98%84-%EB%B0%A9%EB%B2%95Java-JavaScript 2023. 12. 30. [기타] JWT Token이란? JWT Token(JSON Web Token) 모바일이나 웹의 사용자 인증/인가를 위해 사용하는 암호화된 Claim 기반의 토큰을 말합니다. Claim이란, 사용자 정보나 데이터 속성 등을 의미합니다. 따라서, Claim 기반의 토큰이라고 하면 토큰 안에 사용자 정보나 데이터 속성들을 담고 있는 토큰을 말합니다. 2023. 12. 30. [기타] GET과 POST의 차이 GET 클라이언트에서 서버로, 어떠한 리소스의 정보를 요청하기 위해 사용되는 메소드입니다. 즉, 서버에서 어떤 데이터를 가져와서 보여줄 때 값이나 내용, 상태 등을 바꾸지 않는 경우에 사용합니다. 요청을 전송할 때, 필요한 데이터를 Body가 아닌 쿼리스트링을 통해 전송합니다. Header(헤더). 중요 정보가 URL에 모두 노출되기 때문에 보안에 취약하다는 단점이 존재합니다. 캐싱이 가능합니다. POST 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는데 사용되는 메소드입니다. 서버 상의 데이터 값이나 상태를 바꾸기 위해서 사용합니다. GET과 달리 전송할 데이터를 HTTP 메세지의 Body에 담아서 전송합니다. Body(바디). URL에 데이터가 노출되지 않기에 기본적인 보안은 보장됩니다. 캐싱.. 2023. 12. 30. [기타] URI와 URL의 차이 URI URI는 특정 리소스를 식별하는 통합 자원 식별자(Uniform Resource Identifier)를 의미합니다. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스입니다. URL URL은 흔히 웹 주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약입니다. URI의 서브셋(하위 집합)입니다. 2023. 12. 30. [기타] HTTP Method란? HTTP Method 클라이언트와 서버 사이에 이루어지는 요청과 응답 데이터를 전송하는 방식을 일컫습니다. 즉, 서버에 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정하는 요청을 보내는 방법입니다. ※ HTTP Method의 주요 메소드로는 GET, POST, PUT, PATCH, DELETE가 있습니다. GET: 리소스 조회. POST: 요청 데이터 처리, 주로 등록에 사용. PUT: 리소스를 대체(덮어쓰기), 해당 리소스가 없으면 생성. PATCH: 리소스 부분 변경(PUT이 전체 변경, PATCH는 일부 변경). DELETE: 리소스 삭제. 2023. 12. 30. 이전 1 2 다음 반응형