arch-spatula / arch-spatula.github.io

Arch-Spatula의 레시피
https://arch-spatula.github.io/
3 stars 0 forks source link

[Draft] 24년 06월 줍줍 #322

Open arch-spatula opened 1 month ago

arch-spatula commented 1 month ago

글쓰기 주제

invent/24-06

참고할 자료

arch-spatula commented 1 month ago

https://namu.wiki/w/UTM

위는 macOS를 위한 운영체제 가상화 툴입니다. NixOS 설치시도를 해보고 싶었습니다. 먼저 연습하고 나중에 부트로더를 만들려고 합니다.

위 시도를 먼저 해보고 macOS에서 마음에 드는 설정을 하면 해당하는 NixOS의 Nix 파일을 활용할 것입니다. 물론 생각에 불과합니다.

Docker에서 사용할 때랑 그리고 듀얼 부트로더로 회사 컴퓨터를 2개의 운영체제를 운용할 수 있으면 현재의 저의 설정을 완전히 재현할 수 있을 것이라는 착각을 할 수 있습니다.

https://nixos.org/download/

위는 패키지 매니져랑 운영체제 설치를 알려줍니다.

arch-spatula commented 1 month ago

단위 테스트에 대해서

앱이 단위테스트가 필요 없을 정도로 단순하면 어쩌면 시장에 필요 없는 앱일 가능성이 높습니다.

휴가에 대해서

니가 니 상사보다 더 많이 쓰는게 말이 되냐?

... 니 상사가 안 쉬는데 니가 쉬는게 말이 되냐? ... 니 상사가 휴가를 가면 너라도 남아야 하는게 당연한 거 아니냐?

arch-spatula commented 2 weeks ago

vue의 구독 중단 전략

https://vuejs.org/guide/essentials/watchers.html#stopping-a-watcher

const unwatch = watchEffect(() => {})

// ...later, when no longer needed
unwatch()

watch가 반환하는 함수를 실행하면 더이상 구독을 하지 않습니다.

클린업 전략이 될 수 있습니다.\

깊은 선택

https://vuejs.org/api/sfc-css-features#deep-selectors

.a :deep(.b) {
  /* ... */
}

SCSS 기능으로 생각했지만 vue의 기능이었습니다.

arch-spatula commented 2 weeks ago

https://flameshot.org/

arch-spatula commented 2 weeks ago

https://aseprite.org/

직접 컴파일만 가능하면 무료 툴임(개발자에게는 무료)

arch-spatula commented 1 week ago

windows 에서 neovim을 쓸 때 ctrl + v는 ctrl + shift + v

제곧내

오늘 회사에서 점심 식사 후 남는 시간에 취미로 neovim 만져보다가 발견했습니다. 이제는 진짜로 모노레포 환경에서 vue랑 typescript를 설정해야 할 때가 왔습니다.

arch-spatula commented 1 week ago

영단어 줍줍: canonical

arch-spatula commented 1 week ago

https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin-top


v-if, v-show 조건부 처리 전략

v-if="(!useVShow && modalState) || useVShow" v-show="useVShow && modalState"
<div v-bind="true {'v-show': true} : {'v-if': true}"></div>

위처럼 vue 다이렉티브를 직접 넣는 방법을 모르겠습니다. 아마 없을지도 모릅니다.


https://www.yes24.com/Product/Goods/125577754

https://smudge.ai/blog/ratelimit-algorithms

https://product.kyobobook.co.kr/detail/S000001533029


https://devtoys.app/

https://github.com/DevToys-app

https://news.hada.io/topic?id=15445&utm_source=slack&utm_medium=bot&utm_campaign=T056MP5374J

arch-spatula commented 6 days ago

https://www.youtube.com/watch?v=xsfdypZCLQ8

조건부 타입 선언이 가능한 방법입니다. 조건부로 더욱더 조심스러운 타입 선언 방법입니다.

arch-spatula commented 6 days ago

https://engineering.linecorp.com/ko/blog/author/Ishikawa%20Munetoshi

https://www.yes24.com/Product/Goods/125977771


https://toss.tech/article/firesidechat_frontend_1

https://yozm.wishket.com/magazine/detail/2648/?utm_source=slack&utm_medium=bot&utm_campaign=T056MP5374J

https://news.hada.io/topic?id=15528&utm_source=slack&utm_medium=bot&utm_campaign=T056MP5374J

https://news.hada.io/topic?id=15522&utm_source=slack&utm_medium=bot&utm_campaign=T056MP5374J

https://news.hada.io/topic?id=15521&utm_source=slack&utm_medium=bot&utm_campaign=T056MP5374J

arch-spatula commented 6 days ago

vue-query는 undefined를 반환하면 캐싱을 안함

제곧내

arch-spatula commented 6 days ago

git bisect

git bisect start 
git bisect bad # 버그 발생하는 커밋에서 시작하기
git bisect good (과거_좋았던_커밋해쉬)
arch-spatula commented 6 days ago

https://www.daleseo.com/js-history-api/

https://news.hada.io/topic?id=15501&utm_source=slack&utm_medium=bot&utm_campaign=T056MP5374J

arch-spatula commented 6 days ago

날짜 순회

모르는 것은 선택한 컬럼 정보를 그대로 접근하는 방법을 모릅니다. 하지만 컬럼의 인덱스를 알 수 있습니다. 이 정보를 활용해서 날짜의 범위를 선택했습니다. 처음과 끝 그리고 증감 정도를 알아서 순회를 구현하는 것으로 해결이 가능했습니다.

dayjs 일단위, 주단위, 월단위 순회하는 전략이 있습니다. 그리고 전략 패턴 비슷하게 생겼습니다.

/**
 * Day:   "06-18"
 * Week:  "2024W25"
 * Month: "2024M06"
 */
const dateRange = (startDate: string, endDate: string, aggregateType: 'Day' | 'Week' | 'Month') => {
  const range: string[] = [];
  
  switch (aggregateType) {
    case 'Day':
      /**
       * 일단위 순회
       */

      for (let day = dayjs(startDate); day.isBefore(dayjs(endDate).add(1, 'day')); day = day.add(1, 'day')) {
        range.push(day.format('YYYY-MM-DD'));
      }
      break;
    case 'Week':
      /**
       * 주단위 순회
       * 52주에 해당하지 않는 연도 예외가 발생해서 dayjs로 계산
       * 요일 제어로 off by one 방지
       */
      let [startWeekYear, startWeek] = startDate.split('W').map(str => parseInt(str));
      let [endWeekYear, endWeek] = endDate.split('W').map(str => parseInt(str));
      for (
        let week = dayjs().year(startWeekYear).isoWeek(startWeek).day(0);
        week.isBefore(dayjs().year(endWeekYear).isoWeek(endWeek).day(6));
        week = week.add(1, 'week')
      ) {
        range.push(`${week.year()}W${week.week()}`);
      }
      break;
    case 'Month':
      /**
       * 월단위 순회
       * 시작 일 마지막 일로 off by one 방지
       */
      let [startMonthYear, startMonth] = startDate.split('M').map(str => parseInt(str));
      let [endMonthYear, endMonth] = endDate.split('M').map(str => parseInt(str));
      for (
        let month = dayjs().year(startMonthYear).month(startMonth).day(28).add(-2, 'month');
        month.isBefore(dayjs().year(endMonthYear).month(endMonth).day(1).add(-1, 'month'));
        month = month.add(1, 'month')
      ) {
        range.push(month.format('YYYY[M]MM'));
      }
      break;
    default:
      break;
  }
  return range;
};

굳이 dayjs로 구현한 이유는 연말 연초가 바뀔 때 로직에 애매한 점이 많아서 이렇게 구현했습니다.

arch-spatula commented 6 days ago

Highly offensive Jonathan Blow clips to boost your productivity

https://www.youtube.com/watch?v=CgdKYBqe6QA

성급한 최적화를 경계하고 일을 마무리하는게 중요하다는 사람들의 특징은 일 마무리도 못하는 사람들입니다.

2024년 중 가장 흥미로운 보안 이슈

Linux got wrecked by backdoor attack

https://www.youtube.com/watch?v=bS9em7Bg0iU

jia tan이 공격자라는 것을 알고 있습니다.

malicious javascript injected into 100,000 websites

https://www.youtube.com/watch?v=bbatLr98fEY

폴리필(Polyfill) 자바스크립트를 브라우저로 인섹션하고 그리고 브라우저 컨텍스트를 시작해서 유저 컴퓨터를 접근하는 방법입니다.

공급망공격이기 때문에 상당히 뛰어난 공격법입니다.

Korean ISP Hacks Customers Using Torrent Software

https://www.youtube.com/watch?v=iRjdjck3obY

오늘도 조선은 평화롭습니다. 역시나 통신사만큼 개발자로서 불신하는 회사는 없습니다. 스팸 신고를 해도 일부러 경찰에 전달을 거부하거나 시저 사이퍼로 전환해서 전달하는 짓거리를 합니다.

웹하드에 다운받을 때 멀웨어를 같이 설치하게 한 것입니다. 아주 훌륭합니다.

성능과 비용 때문에 부하 제어를 했다고 했는데 처벌은 당연히 없습니다. 역시 법은 강해져야 유리하게 적용받습니다.

탑프로그래머라면 하드웨어 쯤은...

https://www.youtube.com/watch?v=g4sXh0NR0Dk

나중에 볼 튜토리얼 링크 줍줍

Learn C Programming and OOP with Dr. Chuck (feat. classic book by Kernighan and Ritchie)

https://www.youtube.com/watch?v=PaPN51Mm5qQ

Assembly Language in 100 Seconds

https://www.youtube.com/watch?v=4gwYkEK0gOk

예전에 봤지만 다시봐도 재미있는 영상같습니다. 시점마다 갖고 있는 지식의 상태가 다릅니다. 더닝크루거 효과로 어쎔블리와 CPU, 메모리에 대해서 전보다 지식이 늘었다는 착각을 하면서 보니까 이해가 된다는 착각을 하면서 보고 있습니다.

arch-spatula commented 5 days ago

용어 줍줍

Operations security (OPSEC)