Home 230402_WIL | 이번주 정리!
Post
Cancel

230402_WIL | 이번주 정리!

230402_WIL


이번주 한 일

  • 회사에서 js로 진행했던 프로젝트를 ts로 바꾸고 있는데, 선임님이 any로 임의로 오류만 잡아둔 내용을, 각 기능에 알맞는 타입으로 넣어주고 있다.
    (너무 어렵다.. 하루에 다섯번씩 마음속으로 울었다 ㅎ)
  • typescript에서 union type 과 intersection type에 대해 잘못된 블로그 글들이 많아서 파악을 잘못했다. 어렵다.
  • keyof , typeof 사용법 파악 중인데 조금 어렵다.
  • FCM 준비해서 파트장님, 선임님 앞에서 발표??했다.
    (함께 준비했던 연구원님이 준비를 너무 많이 해주셔서 버스탔다. 항상 내가 생각한 것보다 두걸음씩 더 준비하신다. 멋있다.)
  • 커링함수 쓰는 법을 이제 이해했다. 쿼링인줄 알았는데 커링이었다.
  • next.js 스터디를 하면서 ISR에 대해 들었는데, 생소하다.
  • git pull 하는 부분에서 자꾸 오류가 났는데 선임님이 방법을 알려주셨다! 진짜 짱멋있다!
  • 주말동안 양심없이 너무 쉬었다. 정신 차리자!


이번주의 정리

1. Typescript

  • union과 intersection type
    : 이게 헷갈린 이유가, 작업하다가 union(|)과 intersetcion type(&)에 대한 잘못된 블로그를 보게 되서 생긴 일이었는데, 사실 위 내용이 은근 헷갈린다. typescript 공식문서 참고
  • typepof, keyof

    • typeof : 객체 데이터를 객체 타입으로 변환해주는 연산자
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    const obj = {
      purple: "grape",
      blue: "blueberry",
      pink: "peach",
    };
    
    type Fruit = typeof obj;
    
    // type Fruit = {
    //   purple: string,
    //   blue: string,
    //   pink: string,
    // };
    
    • keyof : 객체 형태의 타입을 따로 속성들만 뽑아 모아 유니온 타입으로 만들어주는 연산자
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    type Type ={
      name : string;
      age: number;
      job : boolean;
    
      type Union = keyof Type;
    
      // type Union = name | age | job
    }
    
    • keyof typeof : 객체의 일부분만 가져와서 타입으로 사용하고 싶을 때 사용하는 방법
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    const obj = {
      purple: "grape",
      blue: "blueberry",
      pink: "peach",
    };
    
    type Fruit = keyof typeof obj;
    
    type Fruit = "purple" | "blue" | "pink"
    

2. 커링함수

1
2
3
4
5
6
7
8
9
10
11
//일반 함수
const handler = (name) => {
  alert(name);
};
return <button onClick={() => handler("hi")}>test</button>;

//커링 함수
const handler = (name) => () => {
  alert(name);
};
return <button onClick={handler("hi")}>test</button>;

3. ISR(Incremental Static Re-Generation)

  • 일정 주기마다 데이터의 최신 여부를 검사하고 업데이트된 데이터로 페이지를 다시 생성함

4. git pull 오류 해결

오류 내용
1
2
3
4
5
6
7
8
9
10
11
12
13
hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running one of the following commands sometime before
hint: your next pull:
hint:
hint:   git config pull.rebase false  # merge
hint:   git config pull.rebase true   # rebase : 이거 잘못썼다가 브랜치에서 이전에 커밋한 내역이 싹 다 날라갔었음
hint:   git config pull.ff only       # fast-forward only : 이 부분도 항상 먹히지 않았다.
hint:
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
fatal: Need to specify how to reconcile divergent branches.
  • 위의 토글 내의 내용처럼 오류가 반복적으로 났었고, hint 내용의 내용을 바탕으로 보면, hint에 나와있는 코드를 입력해두면 된다는 내용이었다.
  • 찾아본 결과로는 아래의 코드를 입력해주는 것을 제일 추천했는데, 이 코드를 입력해도 git pull이 안되는 상황은 해결되지 않았다.(설명을 많이 찾아봤는데 잘 이해가 되지 않았다.)git pull hint 참고
1
git config pull.ff only
  • 내가 이해했던 ff only는 A(먼저 커밋한 내역)와 B(이제 커밋할 내역)의 커밋 내용이 있을 때, B가 A에 포함되는 커밋내역일 때만 pull이 진행되는??? 그런 내용으로 이했다.
  • 그런데 내가 겪었던 문제는 내가 메인에서 브랜치를 생성하는 시점으로 봤을 때,
    이전에 생성했던 브랜치가 메인에 머지를 하고 나면, 그 내역을 pull 받고 싶은데, 그 부분이 안되는 문제였기때문에, 애초부터 ff-only는 나한테 맞는 방법이 아니였던 것 같다고 파악했다.

  • 선임님이 알려주신 방법 : 같은 해결방법을 제안하는 블로그를 찾았다! ==> 성공!(근데 머지하라고 뜸)
1
git config pull.rebase false

5. 이건 진짜 모르겠음

  • 언제서부턴가 자꾸 뜨는 에러?코드
  • 구글링해봐도 잘 안나오고, 막상 저 에러코드가 뜨는데 pull, push, merge 다 문제 없이 진행된다. 근데 항상뜸. 왜죠?




일주일동안 타입스크립트때문에 스트레스를 어마무시하게 받았다. 자꾸 현타오고.. 내가 이것밖에 안되나.. 하는 생각을 백만번한 것 같다. 추가로 타 프로젝트의 컴포넌트를 참고해서 똑같이 만들면 된다는 업무를 주셨는데, 해당 부분도 이해가 느려서 엄청 오래걸렸다. 이때까지 얼마나 엉망으로 코드를 짜왔는지 알 수 있는 기회였다.. 사실 다시 만들어보라고 해도 시간이 오래 걸릴 것 같다. 이런 걱정을 한다면 공부를 하는게 옳겠지만, 이번 주말은 진짜 아무고토 안하고 보냈다. 그냥 리얼 휴식..희희.. 그래도 어려웠던 부분들은 소소하게 정리하고 넘어가야 다음에도 같은 실수를 안하니까…… 너무 소소하군
이제 정리나 공부를 할 때 좀 더 깊고, 직접 코드를 짜보면서 공부하는게 리얼로 중요한 것 같다. 사실 예시 코드? 테스트 코드???짜는게 조금 어렵다. 올바르게 작동하는지 체크하기 위해서 짜는 코드들이 즉각적으로 이해가 잘 되지않고, 한참 봐서야 겨우 이해하는..???? 이런 내가 너무 부끄럽지만….. 계속하면 좋아지지 않을까 하는 자그마한 생각^^ 이제 내일부터는 원티드 프리온보딩 강의도 시작해서 공부하는 시간을 좀 더 늘리게 될 것 같다. 그리고 ts 정리하려고 md 파일은 만들어놓고 생각보다 내용이 너무 광범위해서 계속 만드는 걸 미루게 된다. 정신차리자!!!!!!

typescript 공식문서 참고
stack overflow - union, intersection
객체를 타입으로 변환 - keyof / typeof 사용법
커링함수
Incremental Static Generation이란?
NextJS와 ISR
git pull hint 참고
git pull 에러 # merge # rebase # fast-forward only

This post is licensed under CC BY 4.0 by the author.