본문 바로가기

Programming/Interview6

HTTPS는 왜 쓸까? : HTTPS 동작 과정 알아보기 아직 면접에서 질문 받은적은 없는데, 혹시 질문이 나올 수도 있을까봐 간만에 다시 공부하는 분야다. HTTPS는 왜 쓸까? HTTP랑은 뭐가 다를까? 사실 다른 점은 딱 하나다. 주고받는 데이터에 암호화를 하느냐 마느냐. 차이점이 딱 하나니까, 사용하는 이유도 당연히 저 하나의 차이에서 나온다. HTTPS는 HTTP보다 데이터를 안전하게 주고 받을 수 있다. 그렇다고 면접에서 이렇게만 대답할 순 없잖아. 오늘은 HTTPS가 안전하게 데이터를 주고받을 수 있게 해주는 암호화 / 복호화 방식을 알아보고자 한다. HTTP HTTP와 HTTPS의 차이는 주고받는 데이터에 암호화를 하냐 마냐의 하나밖에 없다고 했다. 이 말은 다시 말하면, HTTP던 HTTPS던 데이터를 주고받는데 사용된다는 것이다. 여기서 굳이.. 2024. 3. 4.
JWT 돌아보기 세션, 쿠키, 토큰의 인가 방식 중에 우리는 왜 굳이 토큰을 사용할까? 라고 물어보면 누구나 쿠키보다 보안이 뛰어나고 세션보다 서버 부하가 적다는 대답을 할 수 있다. 그럼, 왜 쿠키보다는 보안이 뛰어나고 세션보다는 서버 부하가 적을까? 이유를 알아야 '보안이 좀 더 낫고, 서버 과부하가 안와요'라고만 대답해도 찰떡같이 알아들을 수 있다. 이번 면접에서 JWT와 관련한 질문을 받았고, 해당 내용을 까먹어서 제대로 답변하지 못했다. 아쉬운 부분이다. JWT의 구조 JWT는 위와 같은 세 부분의 구조로 이루어져있다. 중요한 것은 서명, 시그니처 부분이다. JWT가 쿠키에 비해 보안적인 측면에서 좀 더 나은 이유가 된다. - Header 헤더에는 토큰의 타입과 서명에 적용된 알고리즘이 담겨있다. 형태 예시는 .. 2024. 2. 20.
난수 테스트는 어떻게 해야할까? (면접 코드 리팩토링) 이번 면접 라이브 코딩 중에는 이런 문구가 있었다. 테스트 환경을 구성하면 더 좋습니다. 테스트 환경을 구성하지는 못했지만, 그래도 기능 구현을 하면서 테스트를 어떻게 작성하면 좋을지를 계속 고민했는데, 그 과정에서 문제가 되는 사항이 있었다. 참가자의 오답률에 따라 오답이 발생합니다. 간단하게 요구사항을 설명하자면, 뭔가 게임을 하는데 참가자가 오답을 말할 확률이 존재하고 이 확률에 따라 정답 또는 오답 처리를 해야한다는 것이다. 나는 아래와 같이 코드를 작성했다. public class Player { private final String name; private final double wrongAnswerRate; Player(String name, double wrongAnswerRate) { t.. 2024. 2. 1.
String vs StringBuffer vs StringBuilder 사실 String vs StringBuffer / StringBuilder라고 적는 편이 더 나을지도 모른다. String과 나머지 두 클래스 사이에는 큰 차이가 있지만, Buffer와 Builder사이에는 큰 차이가 없다. String은 불변 객체고, 나머지 두 객체는 가변 객체다. 여기서 두 객체 사이의 큰 차이가 만들어진다. 문자열을 더하는 단순한 연산을 생각해보자. String a = "Hello"; a += " World"; System.out.println(a); // "Hello World" 불변 객체는 말 그대로 한 번 선언되면 변하지 않는다. 예를 들어 final int num = 1;에 ++연산을 하면 수행되지 않는다. final키워드를 통해 불변으로 선언했기 때문이다. 그런데 불변 객.. 2024. 1. 19.
0.1 + 1.1 != 1.2 제목에 쓰여진 수식은 참이다. 최근 면접에서 왜 저 수식이 참인지를 질문 받았었다. 아주 예전에 코딩애플님 유튜브 영상에서 봤었는데, 너무 당연한 거라고 생각해서 그냥 재밌게 보고 말았었다. 문제는 면접 때 왜 당연한지 기억을 못해냈다는건데... 게임 내 화폐나 비트코인들이 실물 화폐와 비슷한 혹은 그 이상의 가치를 지니는 경우가 종종 있다. 이런 경우를 보고 조롱 섞인, 혹은 걱정 어린 목소리를 내는 사람들이 주로 '그래서 10100110이 그렇게 비싸다 이거지?'와 비슷한 결의 말들을 하곤 한다. 이는 컴퓨터가 어떻게 데이터를 저장하는가에 대한 정확한 이해를 기반으로 하는 말이라고 할 수 있다. 컴퓨터 내의 데이터는 모두 0또는 1로 이루어져 있다. 이는 컴퓨터가 비트 단위 연산을 하기 때문이다. 비.. 2024. 1. 18.
반응형