목록코딩공부 (37)
슈코딩
⭐46. Django 프로젝트를 배포할 때, 시크릿키를 노출하지 않는 방법에 대해서 설명하시오 .env에 시크릿키와 database정보들을 작성하고 settings.py에서는 .env파일의 정보를 가져와서 사용합니다. 그리고 .env를 .gitignore에 포함시켜 github에 push되지 않도록 하고 EC2서버에 따로 .env파일을 업로드합니다. 같은 방식으로 local_settings.py라는 파일을 생성해서 하는 방법도 있습니다. ⭐47. Django 프로젝트 진행 시 발생하는 CORS 오류를 처리하는 방법에 대해서 설명하시오 CORS는 Cross Origin Resource Sharing의 약자로 도메인 또는 포트가 다른 서버의 자원을 요청하는 매커니즘입니다. CORS 문제는 다른 도메인의 서버..
⭐31. DRF Serializer는 무엇이며, 어떤 기능을 수행합니까? Serializer는 queryset과 모델 인스턴스와 같이 복잡한 데이터를 JSON, XML 또는 다른 콘텐츠 유형으로 변환할 수 있고, Serializer는 받은 데이터의 유효성 검사를 진행한 뒤 복잡한 타입으로의 형 변환을 할 수 있도록 Serialization을 제공합니다. ⭐32. JSON 형식으로 데이터를 받고, Serializer를 통해서 JSON형식으로 데이터를 반환하는 이유는 무엇인가요? JSON은 특정 언어의 종속 되지 않습니다. xml 보다 가볍기 때문에 최소한의 용량으로 데이터 전송이 가능합니다. xml 보다 구조정의의 용이성과 가독성이 좋습니다. ⭐33. Serializer를 통해서 특정 모델에 존재하지 않지..
⭐16. Django의 기본 기능을 사용하는 것과 JWT를 사용하여 로그인 기능을 구현하는 것에는 어떤 차이점이 있습니까? JWT를 사용하면 유저 관련 정보를 모두 base64 인코딩을 하고 유지 시간도 짧아 보안에 유리하며, 다른 프레임워크에 호환성도 높습니다. Django 기본 인증은 Django 내장인 만큼 훨씬더 간편하게 사용할 수 있는 이점이 있습니다. ⭐17. 데이터 테이블 간의 관계를 나타내는 FK, OneToOne, ManyToMany 필드에 대해서 설명하시오 FK: 다른 테이블과 관계가 있을 때 다른 테이블의 내용을 불러오고 이용할 수 있습니다. OnetoOne: 1:1의 대응 관계 테이블입니다. 예를들어 유저와 유저프로필 모델 ManytoMany: A 모델에 연관된 B 모델 필드가 여러..
⭐1. Django가 무엇인지 설명하시오 파이썬을 기반으로하는 웹 프레임워크입니다. ⭐2. Django를 백엔드 스택으로 선정한 이유는 무엇입니까? 파이썬을 기반으로 하는 프레임워크중에서 가장 대표적으로 쓰이며, DB와 Admin페이지, ORM등 기본적으로 제공하는 기능이 편리하여 개발에 유용하기 때문입니다. ⭐3. Django에는 어떤 장점이 있습니까? ORM, Admin, permission등 내부 기능이 많아서 숙지하면 빠른개발이 가능하고, Django 템플릿을 활용하여 프론트엔드 개발도 다른 기술없이 개발이 가능합니다. ⭐4. Django가 다른 Python 프레임워크와 비교되는 특징이 있다면? Django의 특징은 기본적으로 제공되는 기능이 많다는 점이고, 파이썬에서 가장 많이 쓰이는 오픈 소스..
💡관심사 분리란 무엇인지 설명해주세요 관심사 분리 하나의 관심사(함수, 기능)는 하나의 역할만 가지도록 구성하는 것 하나의 함수에 여러가지 조건들로 혼잡스러운 로직을 정리하기 위함 List 안의 숫자들에서 최댓값과 최솟값을 찾고, 구한 값을 모두 더하는 로직이 있다고 가정 했을때 그 안에서의 관심사는 최댓값 찾기, 최솟값 찾기, 모두 더하기 이렇게 3가지로 나눌 수 있다. 이렇게 각각의 관심사를 함수로 나누어서 처리를 하는 기법 💡SOLID 원칙에 대해 설명해주세요 SOLID 원칙 객체지향 프로그래밍의 가장 큰 장점인 유연성, 재사용성, 유지보수성 객체지향 5대 원칙 SRP(단일책임원칙) 클래스는 다른 책임과 관련된 코드에 영향을 미치지 않기 위해 단 한개의 책임을 가져야한다. OCP(개방-폐쇄 원칙) ..
💡Deadlock이 무엇인지 설명해주시고 해결할 수 있는 방안에 대해 알려주세요 Deadlock 교착상태란 뜻으로 서로 필요한 자원 사용을 위해 상대방의 종료를 기다리며, 무한 대기에 빠지는 상황 예방 (Prevention) 기존 Deadlock이 프로세스들끼리 자원 사용시 서로 상호 배제한단 것이 문제가 되었으니, 자원을 공유하게 하여 대기에 빠지지 않도록 함 교착상태의 필요조건을 부정함으로써 교착상태가 발생하지 않도록 미리 예방하는 방법 환형 대기, 비선점, 점유와 대기, 상호 배제 4가지 부정 회피 (Avoidance) 프로세스에 대한 교착 상태 가능성을 미리 판단하며 배제하지 않고 적절하게 피해나가는 방법 예시) 은행원 알고리즘 처럼 사전에 필요로 하는 최대 자원을 파악하여 교착상태를 최대한 피함..
💡Stack과 Queue 자료구조에 대해 말하고 차이점에 대해 설명하시오 Stack 이란? 같은 구조와 크기의 자료를 Top방향으로만 쌓는 구조 가장 최근에 삽입된 데이터가 가장 위에 쌓이며 가장 먼저 삭제 FIFO 후입선출의 구조 Queue 란? 한쪽에서는 삽입, 다른 한쪽에서는 삭제를 담당하는 구조 삽입연산이 이루어지는 Rear, 삭제연산이 이루어지는 Front의 구성 LIFO 선입선출의 구조 💡Array와 Linked List 자료구조에 대해 말하고 차이점에 대해 설명해보시오 Array (배열) 특정 크기 만큼 연속된 메모리 공간에 데이터를 저장하는 자료구조 연속된 메모리 -> 데이터의 주소를 통해서 데이터 조회 가능 데이터를 추가하는 경우, 한자리를 비워야되는데 모든자료가 한칸 밀리게 되어 추가,..
Docker 란? Docker는 애플리케이션을 신속하게 구축하고 테스트 및 배포할 수 있는 컨테이너 기반의 소프트웨어 플랫폼입니다. 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든것이 컨테이너에 포함되어 있습니다. Docker에는 Image라는 개념이 존재하는데 Docker Image는 실행환경, 실행하는 코드, 필요한 라이브러리, 설정 파일을 한곳에 모아둔 파일을 의미하고, Image를 사용하여 실행한 것이 컨테이너입니다. Docker의 장점 환경에 구애받지 않고 애플리케이션을 신속하게 배포하거나 확정할 수 있으며 코드가 문제없이 실행될 것을 확신 할 수 있습니다. 코드를 더 빨리 전달하고, 애플리케이션 운영을 표..
오늘은 JWT토큰을 발급해서 로그인하는 방식으로 django로 넘어오면서 처음 사용하게 되어서 강의때 배웠던 내용들을 간단하게 정리해보려고 한다. 기존에 사용했던 인증 방식 : 세션 인증 이번에 사용한 인증 방식 : 토큰 인증 #세션인증 기본적으로 브라우저에서 사용자가 인증을 수행하면 서버에서는 사용자의 정보를 저장하고, 그 응답으로 JSESSIONID 라는 키를 이용해 클라이언트(사용자) 브라우저의 쿠키에 세션의 정보를 저장하게됨. 이후 클라이언트는 브라우저 쿠키에 저장된 JSESSIONID 로 저장된 세션 정보를 이용해 인가(Authorization)된 정보에 접근 할 수 있게 된다. #토큰인증 토큰인증 방식은 사용자가 인증을 수행하면 서버에서는 토큰을 생성한 뒤에 저장하지 않고 토큰값을 사용자의 브..
이번 유화제작 프로젝트에서 이미지를 유화스타일로 변경하여 저장하는 기능이 있는데 이전 프로젝트 처럼 백엔드와 프론트엔드 파일이 하나로 되어있지 않고 분리되어서 작업이 진행이 되기도 하고, 로컬 파일이나 프로젝트 파일에 이미지가 저장되게 되면 EC2에 배포했을때, 유저가 많아졌을때 서버용량에는 한계가 있다고 생각을 해서 S3로 저장을하고 이미지를 가져오는 방식으로 진행을 했다. 우선 AWS에서 S3를 검색하고 버킷페이지로 온다. 버킷페이지에서 버킷생성을 누르게 되면 보이는 설정사항들이다. 버킷이름은 프로젝트 이름이랑 비슷하게 프로젝트+bucket 이나 images 이렇게 지으면 알기 쉬울것 같아서 네이빙은 그렇게 했다. 이 버킷에 관한 소유권을 지정하는 부분인 것같다. 일단은 S3에서 작업을 나만 하니까 ..