BirdSpring

BirdSpring Blog

아들 눈탱이에 프로펠러를 맞다

아들 눈탱이에 프로펠러를 맞다

23년 4월 15일 헬스장에서 운동중에 둘째아들에게 전화가 왔다. 케이블을 당기는 중에 멈추고 전화를 받았다. 형아가 프로펠러에 눈을 맞고 울고 있다고 했다. 그래서 눈은 잘 보이냐고 물어봤더니 끊고 물어본다고 하고 끊었다. 별일 아닌듯 싶어서 다시 운동을 재개했는데 또 전화가 왔다. 눈은 잘 보인다고 했다. 피가 나는지 물었더니 안난다고 했다. 별일 아니겠거니 하고 운동을 마저하고 집으로 갔다. 큰아들녀석은 멀쩡해 보였는데 우리를 보더니 눈물을 터트렸다. 왜 우냐고 아프냐고 물었더니 그건 아닌데 눈꼽이 안빠진다고 했다. 무슨...

홍대버스 승강장, 나만 열받냐?
일상 퇴근 버스

홍대버스 승강장, 나만 열받냐?

출퇴근시 버스를 많이 이용하는데 홍대에서 버스탈때 미쳐버릴 것 같다. 똥개 훈련은 저리 가라다. 승강장에 서서 버스를 기다리면 p1,2,3 세 위치에 정차할 꺼라고 친절히 표시를 해주는데 나한텐 무쓸모로만 느껴진다. 버스도착 직전까지 계속 바뀌는 것은 둘째치고 마지막에 변경된 위치에 서는 것도 아니다. 동네 축구에서 공만 따라다니는 아이들 처럼 우르르 승강장 사이를 왔다갔다 한다. 까딱 잘못했다간 놓치기도 십상이다. 제일 열받을 때는 p3에 정차하는 듯 싶어서 이동하면 p2로 가고, 이제 타겠다 싶어서 따라가면 p1으로 간다....

Vue.js 3 에서 모듈간의 데이터 통신

Vue.js 3 에서 모듈간의 데이터 통신

Vue.js 에서 모듈간의 데이터 통신 방법은 세가지가 있다.이벤트 버스 사용하기이벤트 버스는 어플리케이션 전역에서 이벤트를 발생하고 수신할 수 있도록 하는 기능으로 이벤트 버스를 이용하여 모듈간의 데이터 통신을 할 수 있다.// 이벤트 버스 객체 생성 const eventBus = new Vue() // 모듈 A에서 이벤트를 발행하는 코드 eventBus.$emit('event-name', data) // 모듈 B에서 이벤트를 수신하는 코드 eventBus.$on('event-name', (data) => { //...

vue3 로 코드를 작성할 때, 체크박스를 원래의 기능과 다르게 작성하는 법
Vue3 Vuejs checkbox

vue3 로 코드를 작성할 때, 체크박스를 원래의 기능과 다르게 작성하는 법

Vue 3에서 체크박스의 기본 동작을 변경하려면, v-model 디렉티브와 함께 사용하는 computed 속성을 사용하여 체크박스의 값(checked)을 수동으로 조작할 수 있다.<template> <div> <input type="checkbox" v-model="myCheckbox"> </div> </template> <script> import { computed } from 'vue'; export default { name: 'MyComponent',...

타입스크립트 제너릭 활용
Typescript 제너릭

타입스크립트 제너릭 활용

프로젝트를 진행하다가 아래와 같은 함수를 만들었는데,T를 K의 타입으로 지정하고 싶었다.private updateValue = <K extends keyof SearchParam, T> (key : K, value : T) : void => { //... } 주로 자바로 코딩을 하는데 제너릭을 저렇게 복잡하게 짜본적도 없고, 지원이 되는지도 모르겠지만 타입스크립트에서는 가능하다.private updateValue = <K extends keyof SearchParam, T extends...

CDN 사용시 크로스도메인 문제 해결
문제해결 cdn 크로스도메인

CDN 사용시 크로스도메인 문제 해결

CDN 업체를 이용시 우리 사이트와는 다른 도메인으로 서비스를 제공해줍니다. 물론 우리 도메인을 사용할 수도 있습니다. 하지만 인증서 관리를 비롯하여 귀찮은 문제들이 발생할 수가 있어서 CDN업체가 제공하는 도메인을 사용할 수 있습니다. 이럴때 크로스도메인이 문제가 될 수 있는데요. 이는 보안상의 이유로 발생하는 문제이며, 서로 다른 도메인 간의 리소스를 공유하는 것을 제한하기 때문입니다.크로스 도메인 문제를 해결하기 위해서는 다음과 같은 방법을 사용할 수 있습니다.CORS (Cross-Origin Resource Sharing)...