🥸 CS 면접 스터디
CS 면접 스터디 정리 3회차
AOP가 무엇인가요? 먼저 oop를 간단하게나마 설명드리자면 oop는 클래스입니다. 코드에는 변수나 함수 등이 작성되는데 이것을은 클래스라는 묶음 안에 들어가게 됩니다. 이러한 묶음을 oop, 즉 객체라고 하고, 이러한 객체들로 이루어져있는 코드를 객체지향적 코드라고 합니다. oop를 먼저 설명드린이유는 aop는 이런 oop를 기반으로 작성된 코드를 지키면서 아주 살짝만 변형되기 때문입니다. 예를들어 결제, 로그인, 게시글 3가지의 클래스를 작성했다고 생각해봅시다. 이 3가지에는 로그인이 되었는가? 인가에 대한 코드가 들어갈 수 있고, 제대로 실행이 되었는지 확인하는 로깅 관련 코드도 들어갈 수 있습니다. 하지만 이러한 코드들은 무조건 필요하지만 서비스 로직의 명확성에 일치하지 않고, 중복된 코드가 여럿..
CS 면접 스터디 2회차
제네릭이란 무엇이고, 프로젝트에 적용사례가 있다면 설명해주세요. 제네릭이란 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법입니다. 저희 프로젝트에서 외부에서 같은 목적을 가지고 있는 클래스가 중복이 되는 경우가 있었습니다. 따라서 저희는 중복되는 클래스를 합치는데 서로 다른 인자를 받고있기에 가장 최상위 타입인 Object를 매개체로 사용한 클래스를 만들었었습니다. 하지만 들어오면 안되는 다른 오브젝트 타입이 왔을 때 에러가 나지 않았습니다. 저희의 코드의 목적과 일치하지 않았던 겁니다. 따라서 저희는 타입이 안전해지지 않는 상황을 해결하기 위해서 제네릭을 사용했습니다. JWT토큰 인증에 대해 아는 만큼 설명해 주시겠어요? JWT토큰은 인증인가 즉 로그인 기능에 사용됩니다. 여기서 인가(Au..
CS 면접 스터디 정리 1회차
CORS란 무엇이고 어떻게 허용할 수 있나요? CORS란 브라우저에서 다른 출처의 리소스를 공유하는 방법입니다. CORS가 없이 모든 곳에서 데이터를 요청할 수 있게 된다면, 다른 사이트에서 원래 사이트를 흉내 낼 수 있게 됩니다. 만약 기존 사이트와 완전히 동일하게 동작하도록 하여 사용자가 로그인을 하도록 유도하고, 로그인했던 세션 또는 토큰을 탈취하여 악의적으로 정보를 꺼내오거나 다른 사용자의 정보를 입력하는 등 해킹을 할 수 있게 됩니다. 이런 공격을 할 수 없도록 브라우저에서 보호하고, 필요한 경우에만 서버와 협의하여 요청할 수 있도록 하기 위해서 CORS가 필요합니다. CORS를 허용(사용)할 수 있는 방법에는 두 가지가 있습니다. simple request인 경우와 preflight 요청일 경..