728x90

맘잡고 매일 TIL을 작성하고자 맘먹은지 딱 작심삼일만에 하루를 밀렸다허허... 갑자기 불어난 일감에 멘탈을 부여잡느라 늦었다는 핑계가... 암튼 진행

전날 목표

GETIT 프로젝트

  • 기존 8000포트 테스트서버 -> nginx - gunicorn - django - docker 활용하여 80번포트 배포

이부분은 진행하지 않았다. 정확히 말하면 못했다. 프로젝트 진행중 기존API에서 개선사항이 생겨 진행하지 않고 대신 진행한것은

  1. FORM-DATA IMAGE받기와 TAG오류 및 멤버 추가 API

일단 기존에 포스트맨으로 테스트할당시 문제가없었던 IMAGE받는 데이터형식은 JSON으로 받았는데 이부분이 배포후 진행할때는 JSON형식이 아닌FORM-DATA형식으로 받아야 한다는것을 알게 되었다. 그래서 이리저리 어떻게 받아야 하나 삽질을 했는데 결국 코드 자체는 변화가 없었다.... drf의 serializer는 json형식과 form-data형식 모두 지원하기때문에 문제가 없었다. 내가 삽질을 했던 이유중 가장큰것은 form-data형식의 경우 request될때 user=[]과 같은 형식으로 무조건 리스트안에 값이 담겨와서 어떻게 받아야하는지 고민을 했는데 그냥

위와 같이 데이터를 각각의 키값과 벨류값에 넣어서 보내주면 기존과 똑같이 처리됨을 알았다. 허허... 

 

연쇄적으로 tag는 manytomany필드를 이용하여 객체가 생성된뒤 필드에 추가해주는 식으로 진행했는데 기존에 tag값을 리스트 형식으로 받아서 for문으로 값을 하나씩 추가하는식으로 진행했으나 abcd,djfke,dasd와 같이 tag가 return되면 저장이 콤마를 기준으로 나누어져 받아야하는데 a,b,c,d,h,...과 같이 각각저장되어 문제였다. form-data는 무조건 string 또는 file형식으로만 request가 가능하기 때문에 당연히 받은 값에서 for문을 돌리는 각각저장되는 문제가 날수 밖에 없었다.

names = request.data['stack']
            names_split = names.split(',')

그래서 받은 data를 ,를 기준으로 split하여 for문을 돌려 저장하여 비교적 쉽게 해결할수 있었다. 

 

마지막, member추가의 경우, 팀프로필api는 모두 만들었지만 추후 팀원추가에 대해서 고려를 안하고 있었다는 점이다. 단순히 member만 추가하는건

requestData = json.loads(request.body)
        teamprofile_id = requestData['teamprofile']
        profile = TeamProfile.objects.get(id=teamprofile_id)
        member = request.user.id
        _member, _ = Member.objects.get_or_create(member=member)
        profile.members.add(member)
        res = {
            "message": "sucess"
        }
        return JsonResponse(res)

위와 같이 쉽게 해결하였지만 팀원으로 pk값이 포함되어있을때 팀프로필 수정권한 부여 및 팀프로필 list api요청시 수정해야할부분이 많아 시간이 좀 걸렸다. 이부분은 양이 좀 많아 추후 drf 블로그글을 작성할때 추가해두도록하겠다. 

 

인턴

  • SQLITE - PYTHON DB 연동 테스트

쉬웠다. sqlite의 경우 fetch를 이용하여 db정보를 가져오면 되는데 암호화 되어있는 db이기 때문에 pysqlcipher을 이용하여 복호화후 fetch하여 내 로컬 pc db에 필요한 값들을 가져왔다. BUT.. 내가 멘붕온부분은 목표에 적겠다...

 

오늘의 목표

GETIT 프로젝트

  • DJANGO CHANNELS를 이용한 알림 기능 구현

인턴

  • ESXI환경에서 VM ON/OFF자동화
  • VM과 로컬PC 통신 및 WEBSOCKET을 통한 로그 실시간 기록
  • 웹서버 구축 및 컨트롤러 프로토타입 개발

멘붕오브멘붕이다... 인턴일은 당장 오늘 하는건 불가능하고 주말간 그리고 다음주 화요일까지 작업할것들을 미리 적어뒀다. 내가 블로그글 남길시간이 없을것 같아서... 사건은 이러하다..

리드님과의 프로젝트 회의에서 기획방향이 바뀌었다. 왜냐면, ESXI라는 VM을 관리해주는 장치?(솔직히 잘모른다 뭔지 이것부터 알아보고 진행해야한다)환경에서 총 16개의 VM을 관리하는 프로젝트이기 때문이다. 일단 가장중요한 VM ON/OFF자동화는 ESXI를 컨트롤하기 위해 pyVmomi라는 라이브러리를 사용할계획이다. 웹소켓은 리드님이 생각하시는 가장 중요한 부분으로 아무래도 사람이 검증하는것을 자동화 시키는 프로젝트 이기 때문에 현재 문제가 생겼는지? 아니면 진행률은 어떤지 controller부분에서 로그가 기록되어야한다고 하셨다. 이 방법은 현재 웹소켓통신으로 받는것말곤 생각이 안난다. 그리고 내전문분야? 암튼 가장 자신있는 웹서버의 경우, 문제없을것 같지만 보안업체다 보니 폐쇄망 환경에서 작업을 하게되는데 vm 공유폴더 사용이 불가능하고 신청한 port와 ip외에는 접근이 불가능하기때문에 ip 포트 개방요청후 작업에 필요한 파일을 매번 sftp로 22번포트를 이용하여 전달해야한다. 이런 일련의 작업들을 모두 처음 해보기 떄문에 매우매우매우 시간이 부족하고 스트레스가 이만저만아니다... 

 

그래서 getit프로젝트에서 인프라말고 웹소켓을 먼저 진행하는 이유이기도 하다.. 진짜로 시간이 많이 부족하다 하하.. 화요일에 웃으며 TIL을 작성하길 바라며,,,, 그래도 이고비 넘기면 모든것들이 아름다워보일것 같다ㅎㅎ.. 화이팅!!!

728x90
728x90

TODAY I LEARNED + 인턴 2일차


오늘은 사정상 인턴 교육을 받으며 많은 실패가 있어 퇴근후에도 지금까지 문제를 해결했기 때문에 따로 TIL 할 내용이 없다.. 오늘 잠자기전까지 스스로 정한 분량을 끝내고 잘꺼다! 암튼 그건 그렇고 오늘도 어제와 마찬가지로 인턴 업무라 할것보다는 교육위주로 들었다. 내가 속한 부서인 PMS-MPI셀팀의 PMS와 MPI에 대해 알아봤다. 알아보다보니 평소에 상 사실상 보안에 관해 별로 관심이 없었는데 무척이나 관심이 생기게 되었다. 알약같은 보안프로그램 하나면 모든게 해결되는거라고 생각을했지만 알약은 무슨 문제가 생기고 나서 대처를 하는 치료제 같은역할이므로 이를 미리 예방할수 있는 예방주사같은 프로그램 또한 필요하다는걸 느끼게 되었다. 이러한 예방주사같은 프로그램이 PMS-MPI다. 이프로그램은 2개가 기능이 다르지만 합쳐서 설명하자면 사용자의 PC사용 패턴을 분석해서 미리 문제가 발생한 지점을 찾고 이에 따라 사용자가 대응할 방법과문제점을 개선할곳을 찾아준다. 또한 다른 S/W나 프로그램들에서 최신 패치사항들을 일괄적으로 긁어모아 사용자의 프로그램이 최신상태로 패치 될수 있도록 자동으로 도와준다. 그리고 처음으로 gitlab을 사용해봤고 폐쇄망과 인터넷망간의 파일교환 실습, 지금까지 아무것도 못하게 되었던 중요한 요소인 virtualbox에서 iso이미지 파일에 담겨있는 윈도우10을 설치하는 것이었다. 

 

일단 나는 지금까지 가상화 환경을 사용할때는 VMware를 사용했다. 하지만 오늘 교육해주시는 분은 인터넷망에서 virtualbox를 이용해 미리 만들어논 윈도우 이미지를 가져오고 iso파일을 내려받아 이미지를 가져오라고 미션을 주셨는데 사실 virtualbox를 처음 사용해보긴 했어도 vmware와 별로 다른걸 못느껴 전자의 미션은 금방 수행했지만 iso파일을 이용해 윈도우를 설치하는 방법은 쉽지가 않았다. 왜냐!! 버츄얼박스는 버츄얼박스 전용 확장자만 받아주기 때문이다. 뭐해결방법은 아래의 블로그를 보고 해결했다.

 

버추얼박스에 윈도우10 설치하기 및 활용하기

버추얼박스(VirtualBox) 다운로드 및 설치하기, 가상 머신에 윈도우10 설치를 위한 사전 다운로드와 ISO 미디어 만들기 그리고 실제로 버추얼박스에 윈도우10 설치하기 및 활용하기를 3단계로 포스팅

minitester.tistory.com

인턴 2일차지만 순간 구글링은 해서는 안된다고 느껴 구글링을 안하던 내가 바보였다.... 구글링이 최고다!!

간단하게나마 버츄얼박스와 vmware의 차이는 무료와 유료차이 성능의 차이말고는 없어보인다... 버츄얼박스가 최고가 vmware를 뛰어넘을 날이 있지 않을까? 싶다. 관련내용은 추후 업로드하겠다!! 

728x90

'개발 life > 셀프 부트캠프(WIL)' 카테고리의 다른 글

TIL 5일차-2021.7.5  (0) 2021.07.06
TIL 4일차-2021.7.4  (0) 2021.07.04
TIL 3일차-2021.7.3  (0) 2021.07.03
TIL 1일차-2021.7.1  (0) 2021.07.01
일정표  (0) 2021.05.28

+ Recent posts