Logs/Groupin 프로젝트 진행 일지 5

[Spring/Backend] 프로젝트 개발 5주차. 배포 지옥과 프로젝트 마무리

우여곡절 끝에 백엔드 기능 개발을 마치고 프론트와의 연결을 위해 배포를 진행했다. 배포를 위해 AWS EC2와 Heroku 중 어떤 것을 사용할지 고민하게 되었다. AWS를 사용해보고 싶었으나 서버에 직접 설정해주어야 하는 것들이 많고 무엇보다 전에 Free Trial 해제를 안 해서 과금할 뻔하여 힘들었던 경험이 생각나서 이번 프로젝트에서는 간단하게 Heroku를 사용해보았다. Heroku는 Git에 올라가 있는 레포지토리를 기준으로 서버에 올려주어서 작업하던 환경에 쉽게 연결할 수 있고, 무료로 사용할 수 있는 ClearDB가 있어 좋은 선택지가 되었다. (로컬에서 MariaDB로 작업을 했어서 Heroku에 제공되는 DB 중 MariaDB 기반의 JawsDB를 사용하고자 했으나 무료 용량이 5MB였..

[Spring/Backend] 프로젝트 개발 4주차. Group DB 재설계 + 구현하기, @RequestBody 사용하기

그룹을 생성하려고 했는데 만들어둔 테이블을 보니 그룹에 참여하는 유저 정보를 한 엔티티에 받도록 설정해놨다..ㅎ 설계해둔거 제대로 확인 안 한 내 잘못이다..ㅎ 그래서 뒤늦게 테이블 설계부터 다시 했다 group과 group_rltn을 분리하여 user : group_rltn을 1:N으로, group : group_rltn을 1:N으로 분리해주었다. 테이블 설계는 했는데 이제 구현이 또 약간 바뀌게 되었다. 그룹 생성을 하게 되면 그룹 뿐만 아니라 거기에 포함된 유저들에 대해 관계도 또한 추가해주어야 했기 때문에 기존에 하던 것보다는 약간 복잡하게 느껴졌다. error executing ddl create table via jdbc statement 테이블을 생성하며 에러가 났는데 Group 이란 테이블..

[Spring/Backend] 프로젝트 개발 3주차. Query String vs 주소 매핑

Query String 이란? 서버에 필요한 데이터를 전달하기 위해 사용하는 방법 중 하나로 URL 주소에 필요한 데이터를 파라미터로 넘기는 방식이다 ex. https://jonnie99.tistory.com/posts?type=backend ?를 사용하여 시작됨을 알리고 key=value 형태로 데이터를 전송한다 여러 개의 데이터를 넘길 경우 &를 사용하여 넘길 수 있다 Path Variable(주소 매핑 방식)이란? Query String과 비슷한 방식으로 경로를 변수처럼 사용하는 방식이다 ex. https://jonnie99.tistory.com/posts/1201 Query String vs Path Variable Path Variable은 구체적인 리소스를 식별할 때 사용 ex. 10번째 글 ..

[Spring/Backend] 프로젝트 개발 2주차. 로그인 에러 해결하기 (loadUserByUsername - null)

팀원으로부터 회원가입/로그인 기능을 전달받아 게시판 기능과 연결하기 위해 확인하던 중, 로그인 기능이 실행되지 않는 것을 확인했다. 정확히는 UserDetailsService의 loadUserByUsername 서비스를 구현하는데 아이디값이 계속 null로 넘어오는 문제였다. 해당 문제를 해결하기 위해 열심히 구글링했으나 결국 하루가 지나도록 문제를 발견하지 못했고 포기하고 싶던 중 한 블로그를 발견했다! https://dublin-java.tistory.com/31 [Spring Security] loadUserByUsername(String username)에서 username이 empty일 때 스프링 시큐리티를 이용해서 로그인을 하는데 public class MemberDetailsService i..

[Spring/Backend] 프로젝트 개발 1주차. API 문서 작성하기

진행하기 전에 간단한 와이어프레임 제작과 기능 상세에 대해서는 마친 상태 개발 1주차부터 본격적으로 프론트엔드와 백엔드로 분리해서 파트 진행 백엔드는 ERD 설계까지 마친 상태로 1주차에는 API명세 작성과 회원가입/로그인 기능으로 나누어 진행 나는 API 명세 작성을 맡았다 프론트엔드와 본격적인 협업이 처음이고, 팀원들이 프로젝트 경험이 거의 없으므로 가능한 이해하기 쉽게 명세를 작성하기 위한 틀을 만들고자 했다 서칭을 해보며 여러 형태의 API 문서를 살펴보고 내가 원하는 방식으로 조합해서 만드는 것이 가장 적합할 것 같다고 판단하여 Notion을 사용해 직접 틀을 만들었다. 우선 주요 역할별 테이블을 만들고 그 안에서 세부 기능들을 쪼개어 작성하였다. 프론트엔드 팀원들이 궁금한 점이 생기면 물어볼 ..