오늘은 프로젝트 때 사용할 프론트 부분의 개발환경 구성을 위한 고민이 필요한 것 같다.
일단 이전에 사용했던 Create React App, Styled-Component, Github는 공통적으로 당연히 들어갈 것 같은데 추가할 부분으로 아래 내용들을 고민해야 할 것 같다.
왼쪽이 이미 진행했던 방식이고 오른쪽은 새로운 시도인데 팀원분이 동의하시는 부분들을 적용할 예정이다.
fetch vs Axios
state vs Redux
none vs TypeScript
none vs jest(test frame)
netlify vs S3(AWS http) (aws할거면 route53+ cloudFront같이하는)
Axios는 일단 fetch의 상위호환이라고 할 수 있기 때문에 학습은 거의 필수적이라고 생각하고
리덕스는 대체제가 있기 때문에 굳이 더 학습할 필요는 없지만 아직까지 요구하는 회사들이 자주 보이기 때문에 한번쯤 더 정리할 필요성은 있다고 생각한다.
TS는 생각보다 크게 어려워 보이지는 않지만 처음 시도할 경우 상당히 많은 에러를 만나기 때문에 이번 시도에 적용하기는 조금 애매할 것 같기도 하다.
숙련자의 도움없이 프로젝트에 바로 진행하기보다는 빠르게 프로젝트를 마무리하고 TS로 리팩토링을 차근차근 해나가는 것이 맞지 않을까?
jest는 jest 자체가 중요하기보다는 요즘 추세가 자동화 테스트이기 때문에 제대로 할 줄 알고 넘어가야 한다는 생각이 든다.
마지막으로 netlify 또는 vecel?을 사용하면 쉽게 해결할 수 있다는 사실은 알고 있지만 실제로 취업을 해서 업무를 볼 때는 AWS를 사용할 가능성이 높기 때문에 AWS사용도 제대로 학습할 겸 AWS로 프론트엔드 배포를 진행하는 경험도 필요하다고 생각한다.
당연히 이 부분들은 팀원과의 합의가 최우선이기 때문에
만약 팀원분이 부담스러워하신다면 나머지 부분들은 프로젝트 종료 후 또는
프로젝트 진행 외 시간에 개인적인 학습으로 진행할 것 같다.
하지만 다음주 토요일에 코딩테스트가 있기 때문에 아직은 부족한 알고리즘을 최우선적으로 학습하는게 맞는 것 같다 오늘은 이만 정리하고 프로그래머스로 넘어간다.
추가적으로 중간에 유튜브로 개발 관련 영상들을 보다가 보니 Nest.js는 React의 대체품이 아닌 Node.js의 대체품 같은 역할인데 거기에서는 TS를 주로 사용하기 때문에 TS를 학습해야 제대로 사용할 수 있는 것 같다.(JS로도 가능하다고는 한다)
이로서 TS의 중요도가 조금 더 올라갔다.
CT(1).1,2,3더하기 6이라는 문제는 n-2, n-4, n-6의 dp로 구할 수 있는 간단한 문제였다.
오히려 어제 푼 문제가 더 어려웠는데 이 문제는 대칭이라는 키워드가 있기 때문에 -2의 1,1로 감싸기, -4의 2,2로 감싸기, -6의 3,3으로 감싸기로 해결할 수 있다.
CT(2).소수 만들기는 백준에서 했던 유사한 문제처럼 내부 값들 중 7을 만드는 숫자가 여러가지가 있어도 7 하나만 계산해야 할 줄 알고 new Set까지 사용해 정리했으나 오답이 엄청 나온걸 보고 중복숫자도 허용한다는걸 파악하고 간단하게 결과값들이 들어있는 배열을 소수체크해서 처리했다.
CT(3).실패율은 객체에 각 스테이지의 갯수를 정리해준 후 이중배열이 스테이지와 그 스테이지의 성공률을 넣어준 후 sort를 이용해 성공률 순으로 다시 정렬한 다음 해당 배열의 [0]번째 값들만 추려내 출력하는 방식으로 해결했다.
CT(4).2단계라 살짝 긴장하고 맛보기로 재귀를 사용했는데 바로 통과해버렸다.. 뭔가 조금 더 복잡한 무언가를 요구해 효율성을 따질 것 같았는데 모든 경우를 다 push한 후 filter로 거른 다음 length 처리로 해결했다.
CT(5).모의고사는 복잡해보였지만 전체 비교를 해버리면 되는 단순한 문제였다.
for문에 비교할 배열의 idx를 넣어줄 때 % length로 처리하면 간단하게 해결된다.
복잡한 문제들의 까다로운 효율성 때문에 너무 겁먹고 문제를 푼 것 같다.
CT(6).주차 요금 계산은 객체와 배열을 넘나드는 문제로 조금 까다로웠던 것 같다. 1점밖에 주지 않는게 아쉽다.. IN/OUT으로 구분해 한바퀴를 돌며 let [a,b,c] = records[i].split(' ')//
obj[b] = [Number(a.split(':')[0])*60 + Number(a.split(':')[1]) , c , 0]라는 배열로 객체 관리를 해줬다.
그 후 0은 sum을 관리하는 부분이라 out이 들어오면 idx 0과의 차이를 idx2에 넣어주고 IN으로 종료된 경우 마지막에 1439와의 차이를 sum에 추가하는 방식으로 처리한 후 요금에 따라 결과가 나올 수 있게 마무리했다.
도중에 차 번호판 오름순으로 정렬까지 하라고 해서 key 이름을 배열에 넣고 정렬한 다음 정렬된 배열을 순서대로 사용해 객체에서 데이터를 내보냈다.
'회고' 카테고리의 다른 글
| [Main-Project 개발일지]-7 (0) | 2022.09.14 |
|---|---|
| [Main-Project 개발일지]-6 (0) | 2022.09.13 |
| [Main-Project 개발일지]-4(추석) (0) | 2022.09.11 |
| [Main-Project 개발일지]-3(추석) (0) | 2022.09.10 |
| [Main-Project 개발일지]-2(추석) (1) | 2022.09.09 |
