공부/면접 준비(30)
-
[면접준비] http, https 차이점에 대해 설명해주세요 (24/04/04)
HTTP와 HTTPS 둘은 모두 서버/클라이언트간 데이터를 주고받기 위한 통신 규약 또는 프로토콜이다. 차이점은, HTTPS는 데이터 암호화가 추가되었다는 것. HTTP HTTP는 OSI(Open System Interconnection) 네트워크 통신 모델의 애플리케이션 계층 프로토콜. 데이터를 평문 형태로 전송하기 때문에 데이터 탈취의 위험성이 존재 기본적으로 80번 포트를 사용 데이터의 민감 정보가 노출될 수 있다.(보안레벨 낮음) HTTPS에 비해 구현과 운영이 단순하다. HTTPS HTTP에 데이터 암호화가 추가된 프로토콜, 데이터를 암호화하여 전송하기 때문에 중간 공격자가 데이터를 읽거나 수정하는 것을 방지. 기본적으로 443번 포트를 사용 데이터 전송중 가로채기를 방지하기 때문에 보안 수준이..
2024.04.04 -
[면접 준비] TCP/UDP에 대해서 설명해주세요. (24/04/03)
Transmission Control Protocol(TCP)와 User Datagram Protocol(UDP) 프로토콜 스택의 전송 계층에 해당하는 프로토콜로, 둘 사이에는 데이터를 전송하는 방법에 차이가 있습니다. 패킷 인터넷 내에서 데이터를 보내기 위한 경로배정을 효율적으로 하기 위해 데이터를 여러개의 조각으로 나누어 전송하는데, 이 조각을 패킷이라고 한다. TCP(Transmission Control Protocol) 데이터를 메세지 형태로 보내기 위해 IP와 함께 사용하는 프로토 연결지향 통신을 시작하기 전에 연결을 설정하고, 종료시 연결을 끊음. 패킷 교환 방식을 사용. 데이터 신뢰성 패킷 손실시 재전송을 수행하여 실뢰성 있는 데이터 전송이 가능. 순서 보장 패킷들이 정확한 순서로 도착. 흐..
2024.04.03 -
[면접 준비] 쿠키, 세션의 개념과 차이를 설명해보세요 (24/04/03)
쿠키와 세션 쿠키와 세션은 모두 HTTP의 Connectless와 Stateless를 보장하기 위해 사용되는 기술로 웹에서 사용자의 상태를 유지하고 유저를 식별하기 위해 사용됩니다. 하지만 둘 사이에는 중요한 차이점이 존재합니다. 쿠키 key-value값으로 구성된 텍스트 파일 웹 서버는 사용자가 브라우저에 정보를 저장하도록 지시하고, 브라우저는 그 정보를 클라이언트 컴퓨터에 저장 만료 날짜가 존재하며, 만료 날짜가 없는 쿠키는 세션 쿠키로 간주하여 브라우저가 닫힐때 까지 유지 사용 목적 세션 관리 : 로그인, 사용자 정보, 접속 시간, 장바구니 등 서버가 알아야할 정보 저장 개인화 : 사용자 마다 다른 그사람에게 맞는 페이지를 보여준다 트래킹 : 사용자의 행동과 패턴을 분석하고 기록 단점 클라이언트에서..
2024.04.03 -
[면접 준비] OAuth에 대해서 설명해주세요. (24/04/02)
OAuth (2.0) 구글, 페이스북, 트위터와 같은 다양한 플랫폼의 특정한 사용자 데이터에 접근하기 위해 제3자 클라이언트가 사용자의 접근 권한을 위임(Delegated Authorization, 권한 부여)받을 수 있는 표준 프로토콜입니다. 쉽게 말하자면, OAuth를 사용하여 서비스 이용자가 타사 플랫폼 정보에 접근하기 위해 권한을 위임받는 것을 말한다. (구글, 카카오 로그인 등을 생각하면 될듯 하다.) 주요 구성 요소 주체(또는 역할) Resource Owner 리소스 소유자 또는 사용자. 구글, 페이스북 등의 플랫폼에서 리소스를 소유하고 있는 사용자. 구글, 페이스북 등을 사용하여 서비스에 접근하려 하는 유저로, OAuth 2.0는 사용자의 승인을 반드시 필요로 한다. Authorization..
2024.04.02 -
[면접 준비] JWT, Refresh, Access Token에 대해서 설명해주세요. (24/04/02)
JWT(Json Web Token) 선택적 서명과 선택적 암호화를 사용하여 데이터를 만들기 위한 표준으로, 필요한 모든 정보를 json객체에 담아 전달하는 웹 표준 입니다. 필요한 모든 정보를 담아 전달하기 때문에 JWT 한가지로 인증을 마칠 수 있으며, 웹 표준이기 때문에 대부분의 언어가 지원합니다. 헤더와 페이로드로 구성되어 있으며, 헤더에는 JWT에서 사용할 타입과 해시 알고리즘이, 페이로드에는 서버에서 보내는 인코딩된 정보가 담겨 있습니다. Access Token 클라이언트가 갖고 있는 유저 정보가 담긴 토큰 사용자가 리소스에 접근할 수 있도록 권한을 부여 인증용 토큰 클라이언트가 서버에 자원에 대한 요청을 할 때 요청과 함께 전송됨. 짧은 유효기간 만료시 리프레시 토큰을 사용. Refresh T..
2024.04.02 -
[면접 준비] ORM을 사용하면서 쿼리가 복잡해지는 경우에는 어떻게 해결하는게 좋을까요? (24/04/01)
ORM 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법으로, db와의 작업을 보다 객체지향적으로 처리할 수 있지만, 쿼리가 복잡해질 경우 성능 문제가 발생할 수 있습니다. 대응 방법 쿼리 최적화 ORM으로 생성된 쿼리를 분석하고, 필요한 경우 최적화를 진행합니다. 불필요한 join, 서브쿼리를 제거하고, 인덱스를 활용하는 등의 작업을 수행할 수 있습니다. 로우 쿼리 사용 로우 레벨 쿼리(SQL문)를 사용하는 것이 더육 효율적일 수 있다. 복잡한 쿼리의 경우 ORM을 통한 처리보다 로우 쿼리를 작성하는 것이 성능적으로 더 좋을 수 있습니다, 배치 처리 여러개의 DB작업을 한 번에 처리하여 네트워크 오버헤드를 줄일 수 있습니다. 캐싱 자주 사용되는 데이터나 쿼리..
2024.04.01