목록전체 글 (119)
철학과 학생의 개발자 도전기

스터디 시작 한양대학교 GDSC 2기로 활동하게 되었다. 나는 백엔드 팀에 들어가서 Java Spring 스터디를 시작했다. 격주로 대면 스터디를 진행하며 정해진 분량의 강의를 듣고 각자 내용 정리를 해서 발표하면 된다. 발표자는 당일에 랜덤하게 뽑는다고 한다. 미리 발표자를 정하는 방식이 아니라 더 긴장하면서 열심히 준비할 수 있을 것 같다. 강의는 인프런에서 김영한님의 스프링 입문을 듣기로 했다. 강의가 딱딱하지 않고 속도감있어서 듣기 좋다. 무료로 좋은 강의를 찍어주셔서 감사하다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B..
Issues 좋아요 테이블: 좋아요 앱을 따로 분리해서 댓글과 비슷하게 구현하는 과정에서 어려움을 겪음 -> 코드 리뷰 : 좋아요 앱을 따로 만들기보다는 유저에서 many to many 관계로 구현하도록 조언받음 circular dependency 문제 -> import 가 아니라 'posts.Post'형식으로 바꿔서 해결 역참조 호출명 중복: 작성자 역참조 호출명과 좋아요 누른 사람 역참조 호출명이 같아서 에러 발생 -> related name 생성해서 이슈해결 비밀번호 찾기: 이메일로 비밀번호 재설정 링크를 보내주기로 함. 그러나 이메일을 보내는 주체가 없음 → 팀 프로젝트용 구글메일 생성 정보 보안: 팀프로젝트 계정의 아이디와 비밀번호가 노출되는 문제 발생 → django-environ 라이브러리 ..

최종 배포 aws를 이용해서 서비스를 최종 배포했다. 우분투 서버에서 git bash를 이용해서 여러가지 설정을 마치고 도메인 이름도 사서 http로 배포를 완료했다. 추후에는 https로 설정해보려고 한다. 아래는 우리가 배포한 웹 서비스이다. http://moco-community.com/ MOCO 💻 모각코 모집과 장소 모색을 할 수 있는 가장 쉬운 방법 'MOCO' 같이 코딩할 사람들을 찾고 리뷰를 작성할 수 있는 커뮤니티 'MOCO'와 함께 해보세요 moco-community.com 첫번째 프로젝트 소감 3주간의 긴 여정이 끝나고 첫번째 프로젝트가 완성됐다. 많이 엉성한 부분이 있지만 내 첫번째 자식인 만큼 너무 소중하고 뿌듯하다. 방학이 순식간에 사라져버려서 아쉽기는 하지만 그만큼 알찬 방학이..

소셜로그인 기능 구현 소셜로그인 기능을 편리하게 구현하기 위해서 django-allauth 라이브러리를 이용했다. 라이브러리를 설치하고 settings.py에 INSTALLED_APPS에 등록해주었다. 그리고 기타 필요한 설정들을 마치면 django에서 할 일은 모두 끝났다. 그 다음에는 구현할 소셜 로그인에 해당하는 서비스로 가서 api키를 발급받아서 등록해야한다. 우리 서비스는 구글, 네이버, 카카오, 깃허브 총 4가지를 구현했다. 사실 소셜로그인은 라이브러리가 워낙 잘 나와있어서 코드를 짜는데 크게 어려움은 없었다. 그러나 중요한 것은 로그인이 되었을 때 필수 정보가 입력되지 않는다는 점이다. 그래서 그 부분을 보완하기 위해 데코레이터를 만들어봤다. 프로필 검사 기능 소셜 로그인 후 redirect..

필터링 사용자들이 편하게 모각코 모집글과 플레이스를 찾아볼 수 있도록 필터링 기능을 구현하기로 했다. 모각코 모집글은 진행방식에 따라 온라인/오프라인/혼합으로 구분하고, 플레이스는 카페/스터디룸/기타로 구분한다. 사용자가 필터를 클릭하면 거기에 해당하는 글들만 불러와서 사용자에게 보여주게 된다. 클라이언트에서 category 값을 가져오고 거기에 해당하는 카테고리만 필터링해서 가져온다. 정렬 글이 많아지면 모든 글을 기본 순서로 보기보다는 원하는 순서로 정렬하고 싶어진다. 그래서 최신순, 좋아요순, 댓글순 등의 정렬 기준을 추가해서 구현했다. 마찬가지로 클라이언트에서 sort 값을 받아온 후 거기에 맞게 정렬해서 보여주게 된다. 검색 검색은 필수가 아니기 때문에 검색값이 들어올 때만 검색 기능이 작동하도..

플레이스 썸네일 플레이스 후기에는 사진을 여러장 넣을 수 있다. 그러나 홈 화면에서는 대표 이미지 한 장만 보여주어야 한다. 그래서 첫번째 사진을 썸네일로 설정해서 홈에서 보여주도록 기능을 구현했다. 플레이스와 연결된 이미지를 모두 필터링해서 그 중 첫번째 이미지를 플레이스와 하나로 묶어서 보낸다. 만약 이미지가 없다면 None값을 넣는다. 이미지 수정 플레이스 후기를 수정할 때 이미지를 넣지 않으면 기존 이미지 그대로 사용된다. 그러나 이미지를 새로 넣으면 기존 이미지는 모두 연결 해제되고 새로운 이미지로 대체해야한다. 그러나 처음 clear메소드를 쓸 때 오류가 생겼었다. 이미지들을 연결 해제시키면 포리언 키가 사라지는데 포리언 키는 null값이 될 수 없었기 때문이다! 그래서 포리언 키에 null=..

좋아요 모델 유저는 모각코 모집(post)과 플레이스(place)에 좋아요를 누를 수 있다. 좋아요를 누른 게시글은 마이페이지에서 모아볼 수 있다. 유저 - 좋아요 - 게시글은 다대다 관계이다. 그래서 Django에서 제공하는 ManyToManyField를 사용해서 기능을 구현했다. 다음은 User 모델에 추가한 필드이다. 연결할 모델을 import가 아니라 'posts.Post' 형식으로 사용한 이유가 있다. 바로 Django - Circular Dependency 문제 때문이다. Post 모델에서 이미 import로 User 모델을 불러왔다. 여기서 User 모델이 다시 Post 모델을 import하면 계속해서 순환하는 Circular Dependency 에러가 발생한다. 하지만 위 방식으로 Post..

개선할 점 발견 핵심기능들을 추가하고 사이트를 테스트하던 중 한 가지 불편사항을 찾았다. 기존에는 로그인/로그아웃을 하면 무조건 '모각코 홈' 페이지로 이동했다. 그러나 사용자 입장에서는 이전에 보고 있던 페이지로 이동하는 것이 편리할 것이다. '플레이스' 페이지를 보던 중 로그인이 필요해서 로그인을 했는데 다시 '모각코 홈' 페이지라면 짜증나지 않을까? 이러한 이유로 로그인/로그아웃 이후 redirect는 이전 페이지가 되도록 코드를 수정했다. 위 코드를 보면 next 값을 request에서 받아오는 것을 확인할 수 있다. next값이 바로 redirect시켜줄 url 주소이자 이전에 보던 페이지이다. 하지만 사용자가 처음 접속한 페이지가 로그인 페이지라면? 그러면 next값이 없을 것이다. (정확히는..