- 시간복잡도와 공간복잡도가 무엇인지 설명해주실 수 있을까요?
- 재미있게 공부한 알고리즘이 있다면 설명해주실 수 있을까요?
- 포트폴리오에서 시간복잡도를 낮춘 사례가 있다면 설명해주실 수 있을까요?
- 이분탐색이 무엇이고 시간복잡도는 어떻게 되며 그 이유는 무엇인가요?
- 시간복잡도가 높은 경우 취할 수 있는 일반 전략을 3가지 정도 설명해주실 수 있을까요?
- 공간복잡도가 높은 경우 취할 수 있는 일반 전략을 3가지 정도 설명해주실 수 있을까요?
- 좋아하는 자료구조가 있다면 이유와 함께 설명해주실 수 있을까요?
- 스택, 큐에 대해 설명해주실 수 있을까요?
- 배열, 링크드리스트를 비교하여 설명해주실 수 있을까요?
- 해시테이블의 원리, 충돌 해소 전략에 대해 설명해주실 수 있을까요?
- 우선순위 큐의 시간복잡도는 어떻게 되며 그 이유는 무엇인지 설명해주실 수 있을까요?
- 인덱스란 무엇이고 일반적인 원리는 어떠한지 설명해주실 수 있을까요?
- 모든 요소에 인덱스를 걸지 않는 이유는 무엇일까요?
- 복합 인덱스란 무엇인지 원리를 설명해주실 수 있을까요?
- 트랜잭션이란 무엇이고 원자성, 일관성, 고립성, 지속성이란 무엇인지 설명해주실 수 있을까요?
- 정규화란 무엇이고 대표적인 장점과 단점은 무엇이 있을까요?
- HTTPS의 원리를 설명해주실 수 있을까요?
- TCP 3 way handshake란 무엇인지 설명해주실 수 있을까요?
- TCP 와 UDP 를 비교하여 설명해주실 수 있을까요?
- CORS란 무엇이고 어떻게 구현할 수 있나요?
- Base64 인코딩이란 무엇인가요?
- 사용자 패스워드를 전송하고 보관하는 방법을 설명해주실 수 있을까요?
- 프로세스와 스레드를 비교하여 설명해주실 수 있을까요?
- 동기와 비동기를 비교하여 설명해주실 수 있을까요?
- Call by reference란 무엇이고 보통 어떻게 쓰이나요?
- 동시성과 병렬성을 비교하여 설명해주실 수 있을까요?
**Migrate 명령어 입력시 어떤일이 발생하는지 아시나요?
- Migrate를 하면 Django에서 기본적으로 DB에 많은 테이블들이 생기는데 그중 django_migrations 테이블의 역할이 무엇인지 아시나요?
- django_migrations
- app_name, migrations, datetime
- 프로젝트 폴더에 migrations 폴더안의 파일들 열어봤는지? 어떤내용이 있는지 아시나요?
- migrate --fake 기능아시나요?
- 실제로 migrations을 하지 않음, 로그만 남김
- sqlmigrate 써보셨나요?
- migrate 되는 내용을 sql문으로 보여줌
- insert 등 sql문을 보여줌
- 데이터 5천만개를 DB에 넣어야되는데 어떻게 넣을수 있을까요?
- bulk write를 사용해서 데이터를 끊어서 집어 넣을 수 있습니다
- 인덱싱은 조회를 위한 것 데이터를 쓸 때는 효율적이지 않음
-
인덱싱을 다 제거
-
5천만개
-
Db에서 일어나는 트렌잭션에 대해 설명해주세요
- ex) 내 통장에 있는 5000원을 출금해서 친구에게 전달한다
- 5000원을 출금한다 → 친구에게 보낸다
- forms.py 에 대 한 이해
- 8.번에 연계되어서 DRF 시리얼라이져에 대한 이해
- 개발초기 admin에 등록하여 개발에 유용하게 쓸 수 있는 팁(admin 사용법)
- FBV, CBV 연습
- def logn(): # FBV
- request.type == “post”: ~
- class Login(): # CBV
- def post(self): ~
- 테스트 주도 개발시 테스트부터 먼저 작성할때 어떤 테스트 코드를 작성해야할지?
- 테스트 코드 이전에 아키텍처가 먼저 작성되어야 함
-
django-debug-toolbar, django-extensions 활용 팁
-
클레스 뷰 작성법
- 장고 미들웨어의 역할
- settings.py 안에 MIDDLEWARE = [~~~~]
- 사용자가 request를 보내면 views.py에서 받아서 처리
- 사용자의 request → django middleware → views.py → django middleware → response
- 유저의 활동 로그 (방문기록 / 결제 등)을 남기는 기능을 구현할 때 어떤식으로 할 지
- def user_logging(event, user):
- 로그 적재 코드
- @logging
- def payment()
- 클라이언트에서 비동기 동기로 보냈는데 동기식으로 개발된 장고에서 이를 처리하는데 이슈가 없었던 이유가 무엇인지 아는가?(원리 설명)
- views.py
- race condition
- db에 있는 값을 가져와서 +1을 한다음 다시 저장해주세요
- 리퀘스트를 동시에 두번 보냄
- db 안에 1이라는 값이 있을 때, 3이 되어야 함
- 둘 다 1이라는 값을 가져오고 1을 더해서 2가 될 수도 있음
- 개발한 기능을 구체적으로 설명해 주시오(구체적이라 하면 어떤 설명을 원하는 것인지... 어떤식으로 설명하는 것이 구체적인 걸까요???)
- 보통 프로젝트는 팀프로젝트로 함
- 내가 어떤 역할을 했고, 어떤 기능을 구현했다
- 싱글프로젝트라면?
- 왜 이 프로젝트를 기획하게 됐는지
- 개발 할 때 어떤 어려움이 있었는데 어떻게 해결해 나갔는지
- 이 프로젝트는 어떤걸 위해 개발 된 프로젝트고, 어떤 기능들이 구현 돼 있는지
- 백엔드 개발자는 어떤 개발자인가?
- 도커로 서버 배포할 때 파이썬 버전차이? 관리 / 파이썬 버전이 달라서 에러가 났는데 정리가 안 되서 어려웠습니다. 호환되는 버전관리가 더 정확한 질문같습니다.
- docker 이미지에서 python 버전을 지정해 줄 수 있음
- 패키지는 pip freeze > requirments.txt
근데 재수없으면 os때문에 이슈가 발생할 수 있어요
- DB 트래픽 과부하 해결 방법
- 어디서 과부하가 발생하는지 알아야 함
- 쿼리에 문제가 없는지 검토 해야 함
- indexing : 사용자를 저장 할 때 id abc 순으로 저장함
- redis : ram에서 동작함, 얘로 캐싱을 할 수 있음**