1. 시간복잡도와 공간복잡도가 무엇인지 설명해 주실 수 있을까요?✔️ 요약 답변 시간복잡도(Time Complexity)란 'n개의 입력 데이터에 대하여 알고리즘이 문제를 해결하는 데에 얼마 큼의 시간이 걸리는지?'를 뜻한다. 절대적인 시간(분, 초)을 측정하는 것이 아니라 알고리즘이 실행될 때 동작하는 모든 연산의 횟수가 몇 번인지 세는 것이다. 알고리즘의 실행 시간을 알고리즘 수행에 필요한 스텝(step)의 수로 정의하고, 실행 시간을 점근적 표기법으로 단순하게 표현한다. 공간복잡도(Space Complexity)란 프로그램을 실행시킨 후 완료하는 데 필요로 하는 자원 공간의 양을 뜻한다. 총 공간 요구 = 고정 공간 요구 + 가변 공간 요구이다. 고정 공간 (알고리즘과 무관한 공간): 코드 저장 공..
🔑 Q. query parameter, query string, path variable * API의 endpoint를 어떻게 설계할지, GET method를 통해 데이터를 넘길 경우에 Path Variable 와 Query Parameter 중 뭐가 더 적합한가? 1. Query Parameter 함수에 사용되는 parameter인데 path parameter에 없는 파라미터 from fastapi import FastAPI app = FastAPI() fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}] @app.get("/items/") async def read_item(skip: int = 0, lim..
🔑 Q. callback, promise, async/await 1. Callback이란? 다른 함수가 실행을 끝낸 뒤 실행되는 함수. 코드를 통해 명시적으로 호출하는 함수가 아니라 함수를 등록해놓은 후 어떤 이벤트가 발생했거나 특정 시점에 도달했을 때 시스템에서 호출하는 함수를 말한다. 파라미터로 함수를 전달 받아 함수의 내부에서 실행된다. callback ex) function add5(a, callback) { setTimeout(() => callback(a + 5), 100) // 100ms가 지난 후 함수로 입력받은 callback에 a + 10값을 다시 입력하여 callback함수 호출 } add5(10, function (res) { // add5가 입력받는 callback함수 정의 부분 ..
SSR(Server Side Randering) Q : 서버 사이드 렌더링을 왜 쓸까? A: 서버 사이드 렌더링을 쓰는 목적은 크게 "검색 엔진 최적화"와 "빠른 페이지 렌더링"입니다. 검색 엔진 최적화란 구글, 네이버와 같은 검색 사이트에서 검색했을 때 결과가 사용자에게 많이 노출될 수 있도록 최적화 하는 기법입니다. 특히, SNS에서 링크를 공유했을 때 해당 웹 사이트의 정보를 이미지와 설명으로 표시해주는 OG(Open Graph) Tag를 페이지 별로 적용하기 위해서는 서버 사이드 렌더링이 효율적입니다. Session과 Token의 차이점 1. 세션과 토큰을 사용하는 이유 유저가 로그인을 시도할 때 서버상에서 일치하는 유저 정보를 찾았다면 인증 확인의 표시로 서버에서 클라이언트로 세션이나 토큰을 발..