1. 개발 진행 상황
2022.09.24(토) 11:30 실전프로젝트 1주차 멘토링 사전 제출 자료를 기준으로 멘토링 받음 제출했던 내용: 코드컨벤션, api 컨벤션, 깃플로우 전략, 기술스택, 진행상황, 질문 1. 코드컨벤션 BE: 인텔리제이 제공 기본 컨벤션을 이용하면 간편함(파일명: 파스칼케이스, 변수명: 카멜케이스, 패키지: 소문자 등) FE: BE보다 비교적 구체적인 코드컨벤션이 요구됨. 에어비앤비(https://github.com/airbnb/javascript) 코드 컨벤션을 참고하기 2. api 컨벤션 BE: RESTful학습할 것, 두루뭉술하지 않게 정확하고 구체적인 컨벤션 정하기 3. 깃플로우 전략 깃플로우 전략 학습할 것 4. 기술 스택 1) BE/FE 기술 스택 나눠서 기재할 것 2) FE: 기재한 라이브러리가 꼭 필요해서 사용하는건지, 정확한 이유 알고 사용할 것 3) BE Q. jdk11를 선택한 이유 A. 호환이 좋다고 판단 Q. Nginx 사용 이유 A. 무중단 배포하기 위해 사용 👉🏻 지금 스프링부트에서 기본으로 사용되고 있는 톰캣으로도 무중단 배포 사용 가능, Nginx는 현재 프로젝트에 오버스펙으로 보임 5. 진행상황 1) 개인 별 진행상황 설명 2) 진행상황에 대한 피드백 - 일단 주기능 먼저 구현할 것, 부가적인 부분에 집중하기보다는 기본 기능 구현에 집중 - 진행 속도가 더딘 부분이 기본 기능(주기능)이라면 기능 분담해서 기본 기능 구현을 우선으로 할 것 - (지도api를 받아오는 부분 현재 FE쪽에서 진행중) 지도라는 특성상 FE에서 진행하고 있는 것으로 보이는데, 지도에 대한 데이터 처리(데이터 저장, 데이터 조작 등)를 하려면 BE에서 진행하는 것을 추천 ⭐️ 코드 복사-붙여넣기 하지말고 공부하면서 코드 작업하기 📚 과제 1. 깃플로우 전략 Git, Github, Git flow가 무엇인지, 이것들의 차이를 설명할 수 있게끔 학습할 것 2. RESTful API api 컨벤션과 관련하여 학습, 정확한 쓰임을 알고 사용할 수 있게 학습 할 것 |
내가 맡은 기능 1: 코스(게시글) 평가 점수를 받고 받은 점수의 평균을 계산하여 반환하기
1) 어떻게 구현해야 할까 생각해봄
방법 1. for문 이용하여 평균 구하는 알고리즘 구현
-> 내가 구현할 수 있는 평균 구하는 코드는 코드가 깔끔해보이지 않음, 스프링부트의 장점을 살린평 균 구하는 방법은 없을까
방법 2. java에 평균 구하는?관련 클래스가 있지 않을까?
-> 찾아봐야함
방법 3. 스프링부트에서 내가 모르는 평균 구하는 기능이 있지 않을까?
-> 찾아봐야함
방법 3. DB를 이용한 평균 값 뽑아오기
-> JPA 공부 필요(DB를 뽑아내기, 뽑은 데이터를 저장하기 이런 부분), DB공부했을 때 MySQL 평균 구하는 SQL문이 있었던게 생각났고, 여기에 적용할 수 있고 데이터를 가지고 올 수 있는건가..?
👉🏻 뭐가 효율적인지 모르겠고, 내가 적용할 수 있는 것인지도 모르겠고..ㅠㅠㅠ아는게 없으니 막막... 일단 검색을 해본다
2) 적용할 수 있는 방법 찾아보기(코드가 아닌 머리로 생각)
방법1. 평균 구하는 알고리즘을 머리로 그릴 수 있고 코드로 짜보기도 했지만 지금 이 프로젝트 어디에 어떻게 적용해야하지?
일단 코스(게시글)id와 점수를 받아서 저장을 해야하니까 클래스, 컨트롤러, 서비스를 만들면 되겠고
그리고 이 입력 받은 id를 기준으로 평균 점수를 다시 또 저장하거나 반환해주면 되지 않을까
방법2. math클래스가 있지만 평균을 구하는 것은 없거나..내가 못찾거나
방법3. 이것도 내가 적용 못하거나 못찾거나...ㅎ
방법4. QueryDSL이랑 JPQL을 이용하면 가능하지 않을까?
3) 중간 결론
제일 베이직하다고 해야하나..원시적이라고 해야하나..ㅎ 결국 내가 제일 적용하기 쉬운 방법1을 선택해서 코드를 만들었다..
QueryDSL이랑 JPQL을 찾아보니 뭔가 적용할 수도 있을 것같은데.. 공부하기에 시간이 많이 걸릴 것 같아서 일단 기능되게 구현해놓고
좀 더 좋은 방법을 적용할 수 있다면 수정하는 것으로...ㅎ
2. 개발 중 발생한 이슈와 해결
3. 새로 배운 것
@
4. 참고 레퍼런스
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#preface
https://escapefromcoding.tistory.com/617
https://joojimin.tistory.com/64
https://milenote.tistory.com/136
https://leveloper.tistory.com/103?category=759395
5. 오늘 한 일 / 회고
이번주 내가 맡은 기능은 게시글 CRUD, 게시글 좋아요 기능, 게시글 평가 점수 주기 및 해당 게시글 평균 점수 반환
일단 위 기능을 구현했고 정상 동작함
이번주 기능 구현할 것이 하나가 남았는데 게시글에 카테고리 부분이다.
카테고리라고 칭하긴 하는데...이게 중복카테고리가 되는 개념이라...내가 검색해서 찾아본 카테고리 구현과는 조금 다른느낌?
보통 코드 구현한 카테고리는 1개 게시글이 1개의 카테고리에 해당하는데
내가 구현해야하는 것은 1개 게시글이 A카테고리에 A, B카테고리에 C, C카테고리에 A에 다 해당하는 식으로.. 중복이 되게 하는것이다.
보통 작은 개인쇼핑몰을 보면 전자에 해당하고,
오픈마켓을 보면 '모자'를 검색하면 카테고리가 골프, 아웃도어, 잡화, 여성의류, 남성의류 등등 카테고리가 여러개 나오는데...
일단 카테고리를 각각 선택해야하고, 카테고리를 각각 선택(카테고리 1만, 카테고리 1/2만 선택하면)검색은 어떻게 구현해야하지...?;;ㅠㅠ
다시 머리로 그리고 검색으로 채워나가야겠다....
6. TO-DO LIST
카테고리를 등록하고 카테고리 중복 검색을 어떻게하는지
그리고 추가적으로 카테고리 입력할 때 아예 받을 수 있는 값을 제한 할 수 있는지? 알아보기
'개발 일지' 카테고리의 다른 글
[WIL]이노베이션 캠프 8주차 (0) | 2022.09.26 |
---|---|
[TIL]이노베이션 캠프 56일차 (1) | 2022.09.26 |
[TIL]이노베이션 캠프 54일차 (0) | 2022.09.23 |
[TIL]이노베이션 캠프 53일차 (1) | 2022.09.22 |
[TIL]이노베이션 캠프 52일차 (0) | 2022.09.21 |