프로젝트/창업 프로젝트 (DRF + AWS)

    [AWS][24/365 장애 없는 서비스 환경]을 위한 캐밋의 로드맵

    [AWS][24/365 장애 없는 서비스 환경]을 위한 캐밋의 로드맵

    가자! 중앙대학교 관심사 기반 커뮤니티 '캐밋' 서버를 구축함에 있어서 두 가지에 대해 정리할 것이다. 그동안 불편했던 점 24/365 서비스를 위한 개선방향 [ 현재 상황 ] 서버 : AWS EC2 1대 (도메인 : cameet.site/) DB : sqlite ( 특이점 : django 내장 DB) [ 문제가 뭐야? ] ① 로컬에서 작업하던 코드를 배포서버에 맞게 수정 후 올리고 난 후 문제 발생 → 배포 환경에서는 기능이 작동하지만, 새로운 기능을 만들거나 기존의 코드를 수정해야 하는 상황에 있어서 로컬 환경에서 테스트가 성립하지 않았다. (ex - 소셜 로그인 base_url 설정 상이, 로컬 db와 배포서버 갖고 있는 db값이 다름) → 매번 1. 로컬에서 코드를 작성하고, 2. 배포서버에 반영..

    [창업 지원금][AWS 세팅] 대학생창업 중간 회고

    [창업 지원금][AWS 세팅] 대학생창업 중간 회고

    중앙대학교 창업동아리 지원사업에 선정 되었습니다..! 정신없이 개발공부 (CS), 알고리즘 푸는 나날들.. 우리 캐밋팀에 좋은 소식이 찾아왔다. 그렇다면, 24시간 돌아가는 중앙대 관심사 기반 커뮤니티 서비스의 서버는 어떤식으로 구축해야 할까? 지원금으로 AWS에 돈 좀 써보러 가보자! ↓ https://supersett-diary.tistory.com/260 [AWS][24/365 장애 없는 서비스 환경]을 위한 캐밋의 로드맵 최근 많은 모집공고를 눈팅하고 있다. 그중에 눈에 들어오는 구절이 있었는데 ,,, 중앙대학교 관심사 기반 커뮤니티 '캐밋' 서버를 구축함에 있어서 두가지에 대해 정리하고자 한다. 그동안 불편 supersett-diary.tistory.com

    [OAuth 2.0]구글 소셜 로그인(feat. React & django rest framework)

    [OAuth 2.0]구글 소셜 로그인(feat. React & django rest framework)

    이 포스팅을 통해 정리하고자 하는 것. 1. OAuth 2.0이 무엇인지 알고 갑니다. 2. 프론트(React) 와 백엔드(django)의 REST API 통신 흐름을 명확하게 잡습니다. 1. OAuth가 뭔가요? ■ 외부서비스에서 인증을 가능하게 하고 그 서비스의 API를 이용하게 해주는 것. 자신이 소유한 리소스에 소프트웨어 애플리케이션이 접근할 수 있도록 허용해 줌으로써 접근 권한을 위임해주는 개방형 표준 프로토콜 ■ 일반 로그인은 회원가입할 때 사용했던 아이디와 비밀번호를 통한 인증(Authentication)이라면 ■ OAuth는 타사 서비스 (Google, facebook)의 이메일 정보에 우리가 만든 서비스의 접근을 인가(Authorization) 하여 사용자를 인증(Authenticatio..

    [점검] 프로젝트 피드백, 단기 목표 설정

    되어있는 것 ■ HTTPS 배포 ■ 소셜로그인 로직 ■ API 설계 앞으로 해야 할 것 ■ 프론트와의 API 통신 테스트 → 실제로 원하는 json을 잘 반환해주는지 ■ 트래픽 관리 → 한번에 많은 요청이 들어왔을때 언제 터지는지를 좀 보고싶음 ■ 프론트 한명 불러서 소셜로그인 티키타카 완료해야 함. 9월 1주차 목표 소셜로그인 궤도에 올리기 백엔드 팀 다음 로직 회의, 구현 일정 잡기 창업동아리 지원서 작성

    [AWS EC2 배포][ubuntu] 배포하며 쌓은 내실을 정리해 보자

    [AWS EC2 배포][ubuntu] 배포하며 쌓은 내실을 정리해 보자

    Q. Linux가 뭐예요? Ubuntu가 뭐예요? 이걸 알기전에 운영체제(Operation System)에 대해서 알 필요가 있어. [운영체제] : 컴퓨터 시스템의 각종 하드웨어,소프트웨어 자원을 효율적으로 운영,관리 함으로써 사용자가 시스템을 이용하는데 편리함을 제공하는 시스템 소프트웨어야. → 핵심 목적 : 사용자가 편리하고 효율적인 방식으로 프로그램을 실행하는 환경을 제공하는데 있어. [커널] : 컴퓨터 운영체제의 핵심이 되는 컴퓨터 프로그램의 하나. 시스템의 모든것을 완전히 통제해. 보안,자원관리,추상화 역할 ■ 운영체제 = 사용자 영역 + 커널 영역 ■ 리눅스에서 작동하는 여러 종류의 프로그램을 꾸러미 하나로 모아놓은 것 = Linux 배포판 → Ubuntu는 상호작용이 잘되는 Linux 배포판..

    [프로젝트][에러][uWSGI] 클라이언트 연결 닫음 [해결]

    [프로젝트][에러][uWSGI] 클라이언트 연결 닫음 [해결]

    [해결 완료] 배포에 사용한 프리티어 리눅스 컴퓨터가 문제가 아니었음 배포에 많이 사용되는 WSGI (게이트웨이)는 2종류가 있다. 1. uwsgi 2. gunicorn 아래 문제 해결을 위해 구글링을 하다보니 uwsgi를 쓸때 발생한 오류들이 gunicorn으로 갈아타니 해결되었다는 글이 종종 나왔다. 지푸라기라도 잡는 심정으로 설치된 uwsgi 환경설정 다 풀어주고 새로 gunicorn을 셋팅해 주었다. (앉은자리에서 6시간 순삭) 결국 해결됨..내가 원하던 요청에 대한 응답이 잘 받아져서 정말 행복했다. [배포 후 오류 발생] 1. 기능적 구현이 로컬 runserver 환경해서는 에러없이 잘 진행이 되었음. 2. AWS EC2 배포함 3. 다른 기능들은 괜찮지만, 소셜로그인 관련 요청에 대한 에러 ..

    [회고][Django][DRF][RestAPI] 아이디어 '캐밋'을 구현하며

    [회고][Django][DRF][RestAPI] 아이디어 '캐밋'을 구현하며

    https://github.com/Casual-Meet/CaMeet-BackEnd GitHub - Casual-Meet/CaMeet-BackEnd Contribute to Casual-Meet/CaMeet-BackEnd development by creating an account on GitHub. github.com [개발 기간] 8/3 ~ 8/22 (20일) [기술 스택] Python Django Rest Framework 프론트 서버와 통신을 위한 REST API를 준수함 AWS EC2 배포 완료 [대표 기능] 소셜 로그인 (구글,카카오) JWT 토큰 기반 인증, 인가 이메일 인증 (학교 인증) DB 객체들 간 참조, 역참조 → 요청에 맞는 JSON 반환 [어려움, 난관] 1. REST API가 ..

    [JWT 인증] 토큰은 어디에 담겨있나요?

    [JWT 인증] 토큰은 어디에 담겨있나요?

    [상황] 소셜 로그인된 사용자가 5번모임을 클릭해 상세정보창으로 이동한다. 모임에 대한 정보를 읽어본 후 참여하기 버튼을 눌러 참여하기를 신청한다. (POST) 참여하기 버튼을 눌렀을때 POST로 넘어 가야할 필요한 정보 1. 로그인된 사용자의 PK 2. 사용자가 선택한 방의 PK [질문] 사용자가 선택한 방의 PK값은 빼내올 수 있는데, 로그인된 사용자의 정보는 토큰에 담겨있다고 하는데 토큰은 어디에 위치해 있나요? 클라이언트 브라우저의 쿠키인가요 세션인가요? [답변] >> JWT 기반 인증은 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식이다 출처: https://inpa.tistory.com/entry/WEB-📚-JWTjson-web-token-란-💯-..

    [아이디어톤][멋쟁이사자처럼] 본선 진출 회고

    [아이디어톤][멋쟁이사자처럼] 본선 진출 회고

    아이디어톤 본선 11팀 진출 후, 11위 함. 이런 적은 처음이다. 본선에 진출한 것도 처음이고, 11팀 중에 11등 한 것도 처음이다. ㅎㅎ 원래 아예 기대가 없었다. 대략 150팀 넘게 정도가 참여해서 상위 11팀이 본선에 진출하고 그 11팀 안에서 전체 발표를 통해 최종 순위가 결정되는 멋쟁이사자처럼의 아이디어톤 대회이다. 딱히 창업에서 좋아하는 BM도 없었고 우리 아이디어가 마음에 들고 사랑스러워서 임했기에 정말 기대가 없었다. 수요일 새벽에 발표가 났고, 본선진출이 확정되었고, 2일 뒤인 금요일에 바로 본선 발표가 계획이 되어있었다. 기대가 없었는데 기회가 주어진 만큼 최선을 다하기로 다짐했고, 무엇보다 욕심이 엄청나게 생겼다. 이왕 본선든거 1등 해야지 않겠어? 독기 품고 이틀 밤을 새웠다. ..

    [아이디어톤] 내 눈앞에 보이던 것 보다 더 큰 숲이 있었고, 나는 좀 더 진지해졌다.

    [아이디어톤] 내 눈앞에 보이던 것 보다 더 큰 숲이 있었고, 나는 좀 더 진지해졌다.

    관심사로 사람들을 간편하게 모으고 만나게 해주는 플랫폼 서비스를 기획하고 있다 (근데 이제 대학생들을 타겟팅으로 한) 나는 백엔드 개발자로의 취업을 희망하고 있었다. 몇주 동안 팀원들과 아이디어를 기획하고 창업대회까지 나갈만한 목표를 세운만큼 백엔드만 보이던 나에게 더 큰 그림이 보이기 시작했다. 하나의 서비스가 만들어지고 어떤식으로 시장을 구축해 나가며 어떤 포인트에 집중을 하며 살이 붙는지에 대한 전체적인 숲을 보려고 노력을 하고 있다. 다양한 창업의 요소.. 아이디어톤을 진행하며 창업의 요소를 많이 겪어보는 것 같다. 어떻게 해야 사람들이 쓸지 어떤 워딩을 해야 사람들이 감이 올지 나라면 쓸지 만나는 사람마다의 반응을 수집하고 나온 의견들을 전부 피드백 하고 보다 구체적인 타겟층을 설정하고 아이디어..

    [백준] 3107

    ip = list(input().split(":")) index = 0 ans = ['' for _ in range(8)] flag = 0 for i in range(len(ip)): if len(ip[i]) == 4: ans[index] = ip[i] index += 1 elif len(ip[i]) > 0: ans[index] = '0' * (4 - len(ip[i])) + ip[i] index += 1 else: # len(ip[i]) == 0 if flag == 0: for j in range(8 - len(ip) + 1): ans[index] = '0000' index += 1 flag = 1 else: ans[index] = '0000' index += 1 for i in range(len(an..