본문 바로가기

당근마켓12

당근마켓 API 수정 및 마무리 - 13일차 API 수정 오늘은 그동안 미뤄왔던 동네 검색 API를 수정했다. 검색어를 띄어쓰기 단위로 분리하고 분리된 검색어들을 각각 검색 처리하였다. 그리고 검색 결과들을 inner join으로 조인 연산을 하여 공통된 검색 결과만을 반환하였다. 이 작업을 진행하면서 쿼리문을 어떻게 써야 효율적이고 깔끔하게 쓸지 알게 되었다. 당근 마켓을 만들면서 느낀 점 처음으로 진행해본 프로젝트라서 자신에게 많이 관대했던 것 같다. 처음이니까 이 정도 수준까지만 진행해야겠다는 허접한 생각을 많이 하였다. 물론 자바에 대한 지식은 가지고 있지만 스프링 부트 프레임 워크에 대한 지식은 많이 부족했기에 고수준의 프로젝트를 만들 수는 없었다. 그리고 프로젝트를 진행하면서 git에 허비하는 시간이 제일 많았다. git에 대한 지식도 .. 2021. 11. 12.
당근마켓 게시물 상태 변경 API 추가 - 12일차 기존에 계획했던 API를 모두 만들었기에 다른 분께서 작업을 하던 게시물 domain을 이어받아 API를 추가하였다. 그런데 API를 작성하려고 보니 게시물의 삭제를 나타내는 status 컬럼에 게시물 판매완료를 나타내는 상태까지 들어가있었다. 각자의 영역을 담당하면서 다른 영역은 알아서 잘 하고 있겠지 라는 생각을 하였기에 이제서야 발견한 것 같다. 서로 서로 코드에 대한 피드백을 나누었어야 하는데 이 부분을 놓친 것 같다. 솔직한 마음으로는 다 다시 만들자고 하고 싶었지만 이미 만들어 놓으신게 너무 많았기에 수정하지 않고 잘못 설계한 부분까지 잘 동작하도록 새로운 API를 작성하였다. 만약 실무였다면,, 아찔하다 오늘 추가한 API 1. 게시물 판매 완료로 바꾸기 PATCH /post/:postId/.. 2021. 11. 10.
당근마켓 category domain 추가 - 11일차 오늘은 category domain에 대한 API 작업을 하였다. 3개의 API를 추가했다. 그리고 피드백을 받았다. 피드백 1. 생산성이 조금 느린편이다. 2. 인덱스 걸기 1. 미리 정해놓은 설계할 API들이 있었고 이에 대해 시간 분배를 잘 했지만 생산성이 느리다는 피드백을 받았다. 2주안에 당근마켓의 모든 기능을 구현하기에는 현실적으로 시간이 부족하다는 생각이 들었기에 구현해야 할 API를 조금 적게 설정했는데 이게 문제였을까 싶다. 2. 검색해야 할 column 들에 인덱스를 걸어 조회 속도를 높였다. API 추가 1. 모든 카테고리 조회 GET /category 등록된 모든 카테고리를 가져온다. 2. 유저의 카테고리 조회 GET /category/:userId 유저가 등록한 모든 카테고리를 조.. 2021. 11. 10.
당근 마켓 address domain API 완성 - 9일차 주소 도메인에 관련한 모든 API를 작성하였다. base url 은 skrrr.shop이다. 정리를 해보자면 다음과 같다. 1. 검색으로 동네 찾기 GET skrrr.shop/address?search={search}&townId={townId} 검색할 내용과 현재 유저가 위치한 동네의 townId를 입력받는다. 유저의 현재 위치를 알 수 없는 경우 townId에 -1을 넣는다. townId에 따라서 검색 내용이 townId에 가까운 순으로 정렬된다. 2. 현재 위치로 주변 동네 찾기 GET skrrr.shop/address/location?townId={townId} 현재 유저가 위치한 동네의 townId를 입력받는다. 입력받은 townId를 이용하여 가까운 순으로 주변 동네를 나타낸다. 3. 동네 i.. 2021. 11. 8.
당근마켓 api 추가 - 8일차 오늘은 우테코 코딩테스트가 있었기에 api를 많이 작성하지 못했다 총 3개의 간단한 api를 추가하였다. 1) 내 동네id로 동네 이름가져오는 api 동네 id를 통해 동네 이름을 가져올 수 있는 api이다. GET 메소드로 구현하였다.api를 작성하면서 느끼는 거지만 get 메소드를 통해 구현하는 api는 뭔가 쉽게 구현이 가능한 것 같다.내가 아직 잘 모르기에 예외처리를 많이 안해서 그런가 싶다. GET /address/:townId 2) 유저가 설정한 동네 id, 인증여부, 범위 가져오기 인증여부를 통해서 거래가 가능하기에 설정한 주소 정보를 가져오는 api를 추가하였다.이 또한 GET 메소드로 구현하였다. GET /address/info 3) 내 동네 설정 범위 변경 동네 범위를 통해 거래할 수 .. 2021. 11. 7.
당근마켓 api 추가 - 7일차 그동안 깃 사용에 이슈가 있었던 부분을 오늘 해결했다. 로컬에서 git add . 을 실행하면 build 파일까지 ec2 서버로 가서 build가 꼬여 실행이 안됐는데 add할 때 필요한 파일만 add하니까 실행이 잘 되었다. .gitignore을 잘 활용해야하는데 이 부분이 아직 부족해서 그런듯하다. api는 3개를 추가하였는데 - 동네 추가 - 동네 삭제 - 동네 변경 각각을 비슷한 방식으로 구현하였다. 이 부분을 구현하고자 했는데 만들기 전에는 간단해 보이는 화면에도 되게 많은 api가 숨어있음을 깨달았다. 이 화면에서 아직 구현하지 못한 api들이 남아있다. 얼른 구현해서 이 화면을 넘어가고 싶다. 깃허브 https://github.com/seong-wooo/Carrot_Market_Server 2021. 11. 6.
당근마켓 api 추가 - 6일차 오늘은 api 수정 및 추가를 진행했다. 어제 동네 검색을 위한 api를 만들었는데 어제까지는 유저가 선택한 동네부터 가까운 위치에 있는 동네 순으로 정렬되도록 구현하였다. 그런데 오늘 보니까 실제 당근마켓은 유저의 현재 위치한 동네에서부터 가까운 위치에 있는 동네 순으로 정렬되는 구조였다. 그래서 동네 검색하는 api를 모두 수정하였다. 앱에 대해서 정확하게 파악하고 만들었어야했다. 그리고 api를 2개 추가하였는데 첫 번째로 특정 동네에서 떨어진 거리에 따라 존재하는 동네를 리스트 형식으로 반환하는 api이다. 당근마켓에서는 동네를 선택하고 동네를 중심으로 4단계의 영역을 만들어 각 영역 안에 속하는 동네 안에서 거래를 진행할 수 있다. 각각의 영역에 속하는 동네들을 리스트 형식으로 반환하였다. 두 .. 2021. 11. 5.
당근마켓 검색 api 추가 -5일차 오늘은 검색 api를 만들기 위한 쿼리문을 짜는데 시간을 쏟았다. 총 2개를 만들었는데 첫 번째는 검색어를 통해 검색 결과를 리스트를 반환하는 api이다. 이 때 유저가 현재 선택하고 있는 동네에서 인증을 받았다면 검색 결과가 현재 유저의 동네에서 가까운 순으로 정렬된다. 유저가 현재 선택하고 있는 동네에서 인증을 받지 않았다면 검색 결과가 사전 순으로 정렬된다. 이를 구현할 때 각 행정구역별로 검색을 할 수 있도록 하였다. 예를 들어 "전농동"을 검색하면 "서울특별시 동대문구 전농동"의 형태로 가까운 순으로 동네가 출력된다. "서울특별시"를 검색하여도 검색 결과가 정렬이 되어 출력된다. 그러나 문제가 하나 있다. "서울특별시 동대문구" 라고만 입력을 하여도 검색 결과가 나타나지않는다. 각 행정구역을 분.. 2021. 11. 4.
당근마켓 1차 피드백 - 4일차 오늘은 멘토님에게 1차 피드백을 받았다. 나름 열심히 했는데 속도가 느리다는 평과 api 네이밍 지적, db 구조 지적을 받았다. 그리고 제일 중요한 지적은 협업의 의미를 잘못 알고 있는 것 같다는 평이다. 이제껏 db설계와 api 설계 서버 설정 등 모든 것을 다른 개발자 1분과 같이 진행했는데, 이 부분을 각자 역할을 분담하여 진행했어야 했던 것 같다. 근데 분할을 했다면 둘 다 아직 실력이 부족해서 많이 헤맸을 것 같다. 그리고 프로젝트를 위해 git을 잘 다뤄야하는데 그 부분이 많이 부족한 것 같다. 오늘은 api를 각 잡고 만들어보려고 했지만 많은 악평을 받았기에 그동안 잘못 설계해온 것들을 수정하는데에 모든 시간을 사용했다. 오늘 역할 분담을 통해 address 도메인의 api를 만드는 역할을.. 2021. 11. 3.