학습목표 가상머신(VMware)과 컨테이너(Linux Container)의 차이점을 이해하고 설명할 수 있다. Hypervisor 가상화와 Container 가상화의 차이점을 이해할 수 있다. 컨테이너 가상화 기술인 도커(Docker)를 사용함으로써 얻을 수 있는 장점을 설명할 수 있다. Docker의 구조 1. Docker client와 docker server(docker engine), 2. Docker image, 3. Docker registries(docker-hub), 4. Docker container 를 이해한다. Dockerfile를 사용하여 docker-image를 빌드할 수 있다. docker-image를 docker-hub에 push 할 수 있다. docker-hub에 올려져 있는..
발생상황 2차프로젝트 진행 중... branch에서 모든 작업을 마친후 push를 위해 먼저 main으로 가서 pull을 받아야 할 것을 실수로 branch 에서 git pull origin main을 실행시켜버렸다. 해결방법 git reset --hard ORIG_HEAD 위 명령어를 입력하니 이전의 merge이전의 상태로 돌아간것으로나왔다. 하지만 화면상에 코드는 안보였다. 혹시나 하는 마음에, Ctrl + Z 버튼을 누르니 드디어 내가 이전에 작성하였던 코드가 나타났다!!! 해결!!! 👇 위와 비슷한 상황으로 명령어를 취소할때 사용하는 git 명령어들을 모아봤다. add 취소 git reset HEAD commit 취소 git reset --hard HEAD pull 취소 git reset --ha..
발생상황 2차 프로젝트 진행 중, Kakao API를 통해 우리 사이트에 로그인한 사용자 중, user table에 없는 사용자는 API로부터 받아온 개인정보와 함께 user를 새로 데이터를 생성하기위한 로직을 짜고 싶었다. 내가 처음에 작성한 로직은 먼저 filter를 통해 조회를 한 뒤, create로 user를 생성을 해주는 방식이었다. (현재는 다른팀 멘토이신) 수진 멘토님께서 우연히 지나가시다 내 자리에 들르셨다. 멘토님과 프로젝트 관련 이런저런 이야기를 나누다가 내가 짠 코드를 보여드리게 되었다. 멘토님은 조회와, 생성을 한꺼번에 할수 있는 방법이 있으니, 찾아보고 적용해 볼것을 조언해주셨다. 그리곤 곧장 구글과 장고 공식문서를 뒤져 방법을 찾고 적용해보았다. 적용방법 get_or_create..
이번주에 2차프로젝트가 시작하였습니다. 지난 1차프로젝트 까지는 git local 작업 환경에서 merge를 통하여 main과 branch를 병합하였다면, 2차 프로젝트에서는 rebase 를 적용해볼 예정입니다. Git Workflow & Rebase 🚀 학습 목표 Git flow가 어떤 방식으로 운영 되는지 알고, main, develop, feature, release, hotfix 브랜치를 각각 구분하여 설명할 수 있다. branch를 병합하는 두 가지 방식인 rebase와 merge의 차이점에 대해 설명할 수 있다. rebase 명령어를 사용하여 불필요한 커밋을 하나로 squash 할 수 있다. (rebase 하면서 스쿼시를 같이 한다.) * production revel의 코드들의 관리 전략 🙌..
1. 회원가입을 한다. -> 백서버 : DB에 회원의 정보가 저장됨. 2. 로그인을 한다. -> 백서버 : 로그인시 입력한 정보와 DB에 저장된 회원의 정보가 일치하면 로그인이 성공되며, 백 서버에서는 토큰(token)을 발행해준다. # 로그인시 토큰 발행 로직 class Login(View): def post(self, request): try: data = json.loads(request.body) if not User.objects.filter(email=data['email']).exists(): return JsonResponse({"message": "존재하지 않는 아이디입니다!"}, status=401) current_user = User.objects.get(email=data['emai..
내가 구현하고 싶었던 기능: 1차 프로젝트를 시작하며, 내가 구현하고 싶었던 기능은 한국영화와 외국영화의 리스트를 얻는 것이었다.class MovieView(View): def get(self,request): country_name = request.GET.get("country") LIMIT = 25 OFFSET = 0 if not country_name: return JsonResponse({"MESSAGE" : "PARAMETER_DOSE_NOT_EXIST"}, status=400) country_name == "한국" movies = Movie.object..
명이나물 라이브러리