A ship in harbor is safe, but that is not what ships are built for.

개발일지/기술 면접 대비 6

2023.01.08 TIL(Django Q&A 정리)

1. django가 무엇인지 설명하시오 파이썬을 기반으로 웹을 개발하기 위해 만들어진 웹 프레임워크 입니다. (프레임워크는 프로그램을 개발하기 위해 사용되는 틀을 제공하는 프로그램) (라이브러리는 개발자가 개발하는데 필요한 것들을 모아둔 도구들의 나열로 필요할 때 사용하는 방식) 웹 프레임워크는 웹 프로그램을 만들기 위한 스타터 키트 2. Django를 백엔드 스택으로 선정한 이유는 무엇입니까? 다른 언어들보다 직관적인 인터프리터 방식인 파이썬을 기반으로 하는 프레임워크중에서 가장 대표적으로 쓰이며, DB와 Admin페이지, ORM등 기본적으로 많은 기능들을 제공하고 기능들이 편리하여 개발에 유용하기 때문입니다. 3. Django에는 어떤 장점이 있습니까? ORM, Admin, permission등 내부..

2023.01.07 TIL(자료구조 CS Q&A 정리)

자료구조 좋아하는 자료구조가 있다면 이유와 함께 설명해주실 수 있을까요? 스택, 큐에 대해 설명해주실 수 있을까요? 스택 - 쌓다의 의미를 가진 스택은 후입선출[LIFO (Last In First Out)] 입니다. 한 방향으로만 입력할 수 있으며 구조 중간에 값을 끼어 넣어 저장할 수 없는 한쪽이 막힌 상자와 같습니다. 같은 크기의 자료를 정해진 한 방향으로만 Push, Pop이 가능합니다. 자료를 넣을때가 Push이고, 자료를 뺄때가 Pop입니다.. 예를 들자면 웹 서핑을 한다는 가정하에 방문한 페이지에 로그가 남을 것입니다. 마지막에 방문한 페이지에서 뒤로가기를 했을때 바로 전 페이지로 이동하는게 스택 입니다. 무언가 실행취소(Ctrl+Z) 또한 같은 예 입니다. 큐 - 대기줄 이라는 의미를 가진 ..

2023.01.06 TIL(네트워크 CS Q&A 정리)

💭 HTTPS HTTP는 클라이언트 (웹 브라우저) ↔ 서버 사이의 요청/응답 프로토콜 HTTPS는 하이퍼 텍스트 전송 프로토콜 보안, HTTP 프로토콜의 보안 버전 SSL을 사용하면 암호화를 할 수 있고, 통신하려는 상대를 보증할 수 있다. HTTPS는 SSL(Secure Socket Layer)을 이용한 HTTP 통신 방식 SSL 통신과정 CA(Certificate authority)란? Client Server 통신에 앞서 Server는 CA에서 인증서를 받는다. 공인된 기관에서 Server가 믿을 수 있는 서버인지 보증하는 SSL 보증서를 발급한다. 자체 CA (사설 CA)로도 SSL 인증서를 발급할 수 있다. 사설 CA도 HTTPS 통신이지만 브라우저 입장에서는 안전하지 않다고 판단한다. 통신과..

2023.01.05 TIL(Django Q&A 정리)

16. Django의 기본 기능을 사용하는 것과 JWT를 사용하여 로그인 기능을 구현하는 것에는 어떤 차이점이 있습니까? 1. Django의 기본 기능을 이용한 로그인 세션 방식 기본 세팅을 통해 내장함수를 이용한 간단한 로그인 구현 논쟁의 여지가 있지만 세션로그인은 쿠키라는 접근 가능한 곳에 저장한다는 점에서 안정성이 떨어짐 이에 대한 대안으로 세션 쿠키에 접근을 차단 2. JWT를 이용한 로그인 JWT(JSON Web Token)를 이용한 토큰 방식 로컬스토리지에 저장 settings.py에 jwt 토큰을 이용한 인증을 하겠다는 설정 필요 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_simplejwt.authentica..

2023.01.03 TIL(알고리즘 CS Q&A 정리)

1. 시간복잡도와 공간복잡도가 무엇인지 설명해주실 수 있을까요? 어떤 알고리즘이 있을 때, 우리는 해당 알고리즘의 성능을 평가할 필요가 있다. 우리는 이러한 알고리즘의 성능을 '복잡도(Complexity)'의 척도를 사용해 평가한다.(당연히 복잡도가 낮으면 good, 높으면 bad) 이러한 복잡도의 종류에는 아래와 같이 2가지가 있다. 시간 복잡도 : 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간 공간 복잡도 : 작성한 프로그램이 얼마나 많은 공간(메모리)을 차지하는지를 분석 각각에 대해서 조금 더 자세히 살펴보자. 1) 시간 복잡도 시간 복잡도란 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간이다. 이것은 실제로 프로그램을 실행해보아야 알 수 있지만 많은 사람들은 프로그램을 짜기 전이나 짜는 ..

2023.01.02 TIL(데이터베이스 CS Q&A 정리)

💭 인덱스(Index)란? https://mangkyu.tistory.com/96 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아 보는것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index는 책의 색인과 같다. 데이터베이스에서 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 돕는다. 인덱스를 활용하면, 데이터를 조회하는 SELECT 외에도 UPDATE나 DELETE의 성능이 함께 향상된다. 만약 index를 사용하지 않은 컬럼을 조회..