본문 바로가기

학습 내용 정리

(155)
클래스형과 함수형 프로그래밍 Q. 클래스형과 함수형의 차이를 설명해주세요. 어떤 방식을 주로 사용하였고 그 이유가 뭔지 답변해주세요. A. 클래스형 프로그래밍은 객체 지향 프로그래밍 (OOP) 패러다임을 따르고, 클래스를 사용하여 데이터와 메서드를 함께 정의하고 객체를 생성하는 방식이며, 상속과 다형성을 강조합니다. 함수형 프로그래밍은 함수를 일급 시민으로 취급하며, 함수를 변수에 할당하거나 함수의 매개변수로 전달하며, 함수를 반환할 수 있습니다. 주로 데이터를 함수로 처리하고 부작용을 최소화하기 위해 사용합니다. 클래스형 프로그래밍과 함수형 프로그래밍의 주요 차이는 접근 방식입니다. 클래스형 프로그래밍은 객체와 상태를 중심으로 하며 데이터와 메서드를 캡슐화합니다. 반면 함수형 프로그래밍은 함수와 데이터 변환을 중심으로 하며 함수를..
OAuth Q. OAuth에 대해서 설명해 주세요. A. OAuth(Open Authorization)은 인터넷 사용자가 비밀번호를 공유하지 않고 다른 웹사이트나 애플리케이션에 자신의 정보에 대한 접근 권한을 부여하는 개방형 표준이다. 이를 통해 보안과 개인 정보 보호가 강화되며, 사용자가 어떤 데이터에 대한 액세스 권한을 부여하고 있는지에 대한 투명성을 제공한다. OAuth는 주로 소셜 미디어 플랫폼에서의 로그인 및 데이터 공유, 클라우드 서비스에서의 파일 액세스 권한 부여, 다른 애플리케이션에 대한 API 호출 권한 부여 등 다양한 사례에서 활용된다.
JWT, Refresh Token, Access Token Q. JWT, Refresh, Access Token에 대해서 설명해주세요. JWT (JSON Web Token): JWT는 웹에서 사용되는 JSON 형식의 토큰에 대한 표준 규격으로, 주로 사용자의 인증 또는 인가 정보를 서버와 클라이언트 간에 안전하게 교환하고 저장하기 위해 사용된다. JWT는 세 가지 부분으로 이루어지며, 각 부분은 점 (.)으로 구분된다. 이 부분은 Header, Payload, Signature로 구성된다. Refresh Token: Refresh Token은 일부 인증 시스템에서 사용되며, 주로 원래 액세스 토큰이 만료될 때 새로운 액세스 토큰을 발급받기 위해 사용된다. 사용자는 액세스 토큰이 만료되더라도 사용자 이름과 암호를 다시 입력하지 않고도 Refresh Token을 사..
세션 기반 인증과 토큰 기반 인증의 차이 Q. 세션 기반 인증과 토큰 기반 인증의 차이에 대해 설명해 주세요. A. 세션 기반 인증은 사용자가 인증을 완료하면 서버는 인증 정보를 세션이라고 하는 별도의 공간(메모리 혹은 DB 등)에 저장하고 서버 측에서 사용자 상태를 관리합니다. 토큰 기반 인증은 사용자 상태를 서버에 저장하지 않고, 클라이언트에서 토큰을 별도의 공간 (localStorage, Cookie)에 저장한 후, 서버에서 요청(Request) 할 때마다 토큰을 함께 보내고 서버는 이 토큰을 검증하고 인가합니다. 이때, JWT(Json Web Token)와 같은 토큰 형식이 사용될 수 있습니다.
OSI 7 계층 Q. OSI 7계층에 대해 아는대로 설명해주세요. A. OSI 7 계층 = OSI 모형(Open Systems Interconnection Reference Model) 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 계층 1: 물리 계층 (Pysical layer) 네트워크의 기본 네트워크 하드웨어 전송 기술을 이룬다. 네트워크의 높은 수준의 기능의 논리 데이터 구조를 기초로 하는 필수 계층이다. 다양한 특징의 하드웨어 기술이 접목되어 있기에 OSI 아키텍처에서 가장 복잡한 계층으로 간주된다. 계층 2 : 데이터 링크 계층(Data link layer) 데이터 링크 계층(Data link layer)은 포인트 투 포인트(Point to..
GET, POST의 개념과 데이터 흐름 GET 메서드는 서버로부터 정보를 요청할 때 사용됩니다. 주로 검색 결과를 요청하거나 링크(URL)을 통해서 웹 페이지로 이동할 때 사용됩니다. 클라이언트(웹 브라우저)가 원하는 정보를 URL에 포함시켜 서버에 GET 요청을 보낸 뒤, 서버에서 요청을 받고 필요한 데이터를 검색 또는 처리한 후 클라이언트에 응답을 보냅니다. 클라이언트는 서버로부터 받은 응답을 해석하고 화면에 표시합니다. POST 메서드는 서버로 데이터를 제출(전송) 할 때 사용됩니다. 데이터는 HTTP 요청 본문(body)에 포함되며, 주로 HTML 폼(form)을 통해 입력된 데이터를 서버로 보낼 때 사용됩니다. 클라이언트에서 입력 폼을 작성하고 데이터를 서버에 전송하려고 POST 요청을 생성합니다. 데이터는 POST 요청 본문에 포함..
ORM을 사용하면서 쿼리가 복잡해지는 경우 Q. ORM을 사용하면서 쿼리가 복잡해지는 경우에는 어떻게 해결하는게 좋을까요? A. 네이티브 SQL 쿼리나 ORM의 Raw Query를 활용하거나, 사용자 정의 메서드를 활용하여 해결할 수 있습니다. 또한 데이터베이스의 저장 프로시저나 뷰를 활용하여 로직을 분리하여 복잡성을 줄일 수도 있습니다. ORM 확장 라이브러리를 사용하거나, 필요하다면 ORM을 변경하여 복잡한 쿼리에 대응할 수 있습니다.
DBMS DBMS : Database Management system 데이터를 한곳에 모은 저장소를 만들고 그 저장소에 여러 사용자가 접근하여 데이터를 저장 및 관리 등의 기능을 수행하며 공유할 수 있는 환경을 제공하는 응용 소프트웨어 프로그램을 말합니다. 공유 저장소(서버)를 구축 사용자들에게 접근정보를 공유하여 데이터를 처리할 수 있는 인터페이스를 제공 복구기능과 보안성 기능 또한 제공 튜플(Tuple) = 레코드(Record) = 로우(Row) 테이블에서 행을 의미합니다. 튜플의 수 = 카디날리티(Cardinality) 어트리뷰트(Attribute) = 칼럼(Columm) 테이블에서 열을 의미합니다. 어트리뷰트(Attribute)의 수 = 디그리(Degree) 릴레이션(Relation=Table) 관계형 데..