오전에 아이디어 선정에 관련된 회의를 시작했는데 아무래도 고난이도는 제외하라는 멘토님의 조언이 있었기 때문에 내가 냈던 단순한 아이디어 두개가 최종 결정에 올라왔다.
솔직히 solo에서도 진행하려고 헀던 기술면접페이지를 만드는게 더 편하긴 했지만
재료관리가 조금 더 인기가 있는 것 같아 재료관리로 선택했다.(확장성도 고려)
아이디어를 선정한 뒤 다 같이 모여 사용자 요구사항 정의서를 만들고
화면에 대한 부분도 얼추 같이 상의하고 프론트/백엔드별로 나눠져 다시 상의하기로 했다.
일단 금요일 전까지 화면정의서, api명세서등을 완료하려고 하는데
화면정의서가 나오기 전 목업등을 완성하고 피그마로 작업을 하는게 맞다고 하셔서
그 사이에 나는 개발환경을 구성하고 중간 중간 완성된 목업에 필요한 기능 중 먼저 구현할
수 있는 부분들을 구현하고 있기로 했다.
저번에 합의한 부분에서 변경된 점이 없었기 때문에(추가 기능 사용도 없다)
간단하게 CRA로 만든 뒤 혹시 모를 redux와 당연히 사용해야 하는 styled components를 설치했다.
저번 프로젝트 때도 백엔드에서는 데이터를 딱히 올려주지 않았고
이번 프로젝트도 공란이기 때문에 부담없이 Main branch에다 바로 push해버렸다.
아직까지는 들어있는게 없고 폴더로 client, server만 나눠져 있는 상태이기 때문에 상관없다고 판단했다.
개발자가 한명(git을 수정하는 사람)인 상황이기 때문에
각자 역할이 나눠지기 전 까지는 나 혼자서 수정할 수 있기 때문에 main쪽에서 버티다가
분기가 시작될 시점부터 main->dev->front->개인으로 나눠서 시작할 예정이다.
피그마로 디자인을 받기 전
만들어진 CRA에서 아까 나눴던 페이지들로 이동할 수 있는 route를 만들면 좋을 것 같고
창들에 들어갈 modal부분도 수정하면 좋을 것 같고 여러가지로 진행할 수 있을 것 같다.
오늘은 종료시점까지 디자인을 보여주시지는 않았기 때문에 잘 모르겠지만
캐러셀로 추천메뉴를 띄워준다던지 룰렛 또는 랜덤으로 메뉴의 대표이미지를 띄운 후 돌아가는 부분도 재미있을 것 같다.
화면 구성적 디자인 감각은 부족하기 때문에 일단 나온 초안을 보고 어디에 어떻게 배치시킬지 아니면 과한건지에 대한 판단을 할 수 있을 것 같다.
현재는 route를 편하게 진행할 수 있도록 이전 값에서 루트만 뜯어서 배치한 상태이며
route 중 하나에 회원가입페이지 폼을 띄워두고 Body부분(메인)은 버튼들로 다른 페이지로 이동할 수 있게만 작업한 상태로 다른 페이지는 회원가입밖에 없는 상황이다.
내일은 로그인을 하기 전 백엔드분들에게 연동할 소셜로그인에 대해 듣고 이미지를 생각하고
프로필(개인정보 수정 및 탈퇴 등)페이지는 모달로 할 것이기 때문에 모달페이지를 미리 띄워보는 시간을 가져야 할 것 같다.
CT(1).카드 구매하기2는 카드구매하기와 유사하지만 반대로 최대금액이 아닌 최소금액을 구하는 문제였다. 해결 코드는 아래와 같다.
let input = `4
3 5 15 16`.split('\n')[1].split(' ').map(Number)
input.unshift(0) // idx값을 맞춰주기 위해 idx 0을 추가했었던 것 같다(이전 코드를 반대로 수정해서 왜 이렇게 했는지는 기억이 안난다 아마 i, j의 idx값을 맞추려고 헀던 것 같다.)
let num = input.length // num 길이
let dp = new Array(num).fill(0) //dp생성
for(let i = 0 ; i < num ; i++){ // min으로 하게되면 0으로 도배되기 때문에 첫번째 값으로 일단 채워준다.(idx 1 = 1장 가격)
dp[i] = i * input[1]
}
for(let i = 1 ; i < num ; i++){
for(let j = 1 ; j < num ; j++){
if(j >= i){ //이중배열로 돌며 dp[i]가 undefined가 아닌 j부터 dp추적
dp[j] = Math.min(dp[j - i] + input[i] , dp[j])
}
}
}
console.log(dp[num-1])
CT(2).오픈채팅방이라는 문제는 간단하게 객체 하나를 만든 후 id:nicname 형태로 저장해주면 되는 쉬운 문제지만 leave에는 닉네임이 적혀있지 않아 leave일 때 id에 undefined를 할당하는 실수를 해서 시간이 걸렸다.
CT(3).땅따먹기는 오랬만에 보이는 dp문제였다 간단하게 dp로 내려가게 구조를 짠 후 Math.max(...dp[n])을 통해 해결할 수 있는 문제였는데 5점이나 받아서 역시 dp가 최고라는 생각이 든다.
'회고' 카테고리의 다른 글
| [Main-Project 개발일지]-9 (0) | 2022.09.16 |
|---|---|
| [Main-Project 개발일지]-8 (0) | 2022.09.15 |
| [Main-Project 개발일지]-6 (0) | 2022.09.13 |
| [Main-Project 개발일지]-5(추석) (0) | 2022.09.12 |
| [Main-Project 개발일지]-4(추석) (0) | 2022.09.11 |
