분류 전체보기 231

[TIL] 2022/7/5 Macbook Pro와 아이들..

요번주는 회사에서 노트북을 받았다. 원래 M2 나오면 그걸로 장만해준다고 했지만, 개인 노트북으로 쓰는건 무리도 있고 개인과 업무는 별개로 쓰고 싶었는데 이사님이 쓴지 얼마 안된 16인치 맥북프로 m1 max 주시곤 좋은거 줬으니 잘하겠지 하며 농담을 하신게 참 재밌었다 하하하하하; 다행히 일 있지않는 이상은 출근은 일주 한번만 하게 됐는데 회사에서 쓸 마우스랑 키보드가 없어서 요번에 장만해서 가져갔는데 집에올때 맥북프로까지 가져가면 너무 무거울꺼같아서 맥북프로는 다음 출근때 가져가기로했다. 나름 가볍고 블루투스로 선없이도 쓸수있는 애들을 알아보니 로지텍 mx master 3s 맥북용으로 많이들 쓰고 좋다고해서 사고 키보드는 한성 무접점키보드 gk888b, 82키로 샀는데 휴대성도 좋고, 보글보글 사운드..

TIL 2022.07.05

[Javascript] 클로저

해당 함수 실행컨텍스트가 종료된 이후에도 소멸하지않고 호출하여 내부함수가 외부 함수의 변수를 참조 접근하여 사용할수 있게 하는 특성을 갖는 현상/함수 해당함수에서 함수자체를 참조함으로써 outer인 외부함수의 실행 컨텍스트가 종료되는 시점에서 가비지 컬렉터의 수집대상에서 제외되어 해당 LexicalEnvironment의 정보를 사용할수 있게 한다. 어떤 함수 A에서 선언한 변수 a를 참조하는 내부함수 B를 외부로 전달할 경우 A의 실행 컨텍스트가 종료된 이후에도 변수 a가 사라지지 않는 현상 예시 코드를 보면서 비교하면 더욱 이해하기 쉽다. 1) 기존 일반함수, 내부함수 사용 위와같이 inner함수를 outer함수에서 return 해주고 outer2에 담아 console.log에 각각 찍어보면 inner..

[TIL] 2022/06/30 Github Milestone 스프린트(sprint)

요번주에 재밌다고 생각한 부분이 github의 마일스톤을 이용해본 것이다. 기존에 Projects를 통해서 push, PR, merge 할때 옆에 project선택해서 해본적이 있는데 그땐 그냥 업무적으로 뭘 했다 체크할수있다, 관리하기 좋다라고 듣고 진행하기로해서 써봤지만 실질적으로 그런 장점을 느낄수없었고 그냥하니깐 기능할때마다 하나씩 쌓아서 기록한다라는 느낌 밖엔 없었다. 그런데 요번에 프로젝트를 진행하면서 스크럼방식으로 기능단위로 나누고 issue를 만들어서 진행하는건 물론 마일스톤을 이용하면 그 프로젝트 안에서도 단기 목표를(sprint) 설정하여 percentage로 얼만큼 진행하고 끝마칠수있는지 due도 정하는등 실질적으로 내가 작업하는 일정과 그 작업을 위해 얼마나 쪼개고 효과적으로 진행할..

TIL 2022.06.30

[TIL] 2022/06/25 출근 첫주 회고록 feat. 항해99

화요일부터 첫 출근하는날 회사 현재 시스템이 원래 풀재택이란 엄청난 혜택이 있었는데(이미 다른사람들은 다 풀재택이였다)입사 적응을 위해 일단은 당분간 3일 출근, 2일 재택 하기로 했었는데 첫날 회의에서 다른팀원들 또한 대면업무 vs 재택에 대한 회의가 좀 길어졌다. (제발 출근해도 2틀만 했으면.. 나도 그렇고 다들 거리가 멀어서..) 입사 자기소개를 하고 이사님이 현재 서비스 로직, 어떤 시스템으로 교체/관리 하는지에 대한 설명을 듣고 어떤식으로 업무를 분담할지 정하였다. 내 업무는 기존 레거시 시스템 서비스를 리액트로 변경 고도화작업(포팅, porting)을 진행하기를 원했고 이에 맞는 WBS 작성, 회사 목표에 따른 개인 OKR 작성 미션을 받았다. 적응 기간이긴한데 아직 OJT 확립은 만들어가는..

TIL 2022.06.25

[TIL] 2022/06/20 회고록

신입 개발자, 뭘 공부해야 하죠? | 원티드 우리는 꼭 엄청나게 훌륭한 개발자가 되어야만 하나요? 계속해서 성장하는 개발자여야만 하나요? 그렇지 않습니다. 물론 성장하는 것 자체는 좋은 일이겠지만, 그러기 위해 한순간도 쉬지 않고 www.wanted.co.kr "제가 첫 회사에 들어갈 때 33살이었어요. 나이가 많아서 오히려 좋다고 하면서 절 뽑아주셨어요. 기존 팀원들과 합이 잘 맞을 것 같았다고 하시더라고요. 그게 원래 10년 차 이상을 뽑는 자리였고 한 분이 이미 채용 확정된 상태였어요. 그런데 회사에서 그분과 저를 붙여놓으면 괜찮겠다고 판단했다는 거예요. 많이 지원하다 보면 그런 경우도 생길 수 있습니다. 쉬운 길은 아니겠지만, 어디선가 나를 알아봐 주기를 바라는 마음으로 계속 노력하시다 보면 맞는..

TIL 2022.06.20

[Javascript] 콜백함수

콜백함수란? 콜백함수는 다른 코드의 인자로 넘겨주는 함수 이다. 콜백함수의 기능을 일상생활 예시를 통해 설명해보자. A 와 B는 다음날 아침 8시에 만나기로 하고 잠을 잔다고 했을때, 약속장소에 가려면 적어도 6시에 일어나야한다. A는 불안한 마음에 수시로 잠에서 깨면서 시계를 확인하고 잠들기를 반복하다가 결국 5시에 이를 포기하고 일어난다. 반면 B는 시계알람을 세팅하고 해당 시간일때 알람이 울리는걸 알기에 쭉 잠을 자다가 해당 시간이 될때 상쾌하게 일어났다. A는 수시로 시간을 구하는 함수를 직접 호출한걸로 볼수있고 B는 시계 알람을 설정하는 함수를 호출하고 호출 당시에는 아무것도 하지않다가 정해준 시각이 됐을때 알람이 울리는 결과를 반환 한다. A의 경우 시계 함수의 제어권은 A에게 있고, 시계는 ..

[Javascript] bind 메서드

ES5에서 추가된 기능으로 call과 비슷하지만 즉시 호출하지않고 넘겨받은 this 및 인수들을 바탕으로 새로운 함수를 반환하기만 하는 메서드이다. 다시 새로운 함수를 호출할 때 인수를 넘기면 그 인수들은 기존 bind 메서드를 호출할 때 전달했던 인수들의 뒤에 이어서 등록된다. bind 메서드는 두가지 목적을 지닌다. 1. 함수에 this를 미리 적용하는 것 2. 부분 적용 함수를 구현 var func = function(a,b,c,d){ console.log(this, a, b, c, d); } func(1,2,3,4); //Window{...} 1 2 3 4 var bindFunc1 = func.bind({x:1}); bindFunc1(5,6,7,8) // {x:1} 5 6 7 8 var bindF..

[Javascript] call, apply 메서드, Array.from

Function.prototype.call(thisArg[, arg1[, arg2[, ...]]]) call / apply 메서드 call 메서드와, apply 메서드는 기능적으로 완전히 동일하다. call 메서드와 apply 메서드는 메서드의 호출 주체인 함수를 즉시 실행하도록 하는 명령이다. 이때 첫번째 인자를 this로 바인딩하고, 그 이후 인자들을 호출할 함수의 매개변수로 한다. 명시적 this 바인딩 지정 함수를 그냥 실행하면 this는 전역객체를 참조하지만 call, apply 메서드를 사용하면 임의의 객체를 this로 지정할 수 있다. 차이점은 call 경우 첫번째 인자 이후의 모든 인자들을 호출할 함수의 매개변수로 순서대로 지정하는 반면, apply는 두번째에 배열로 인자를 받아 호출할 함..

[Javascript] 생성자함수, 클래스, 인스턴스의 this

생성자 함수 생성자 함수는 어떤 공통된 성질을 지니는 객체를 생성하는데 사용하는 함수라고 정의한다. 객체지향 언어에서는 생성자를 클래스(class)라고 하고, 클래스를 통해 만든 객체를 인스턴스(instance)라고 한다. 예를들어, '인간'의 공통 속성들을 생각해보면 직립 보행, 언어 구사, 도구 사용 등 이 있다면 이런 공통 속성들을 모아 인간집합을 정의한 것이 바로 클래스이고, 각 사람들은 인간 클래스에 속하는 인스턴스이다. 이러한 인스턴스는 공통점들도 있지만 저마다의 개성도 존재할 수 있다. 생성자(클래스)는 구체적인 인스턴스를 만들기 위한 일종의 틀이라고 생각하면된다. 이 틀에는 해당 클래스의 공통 속성들이 준비되어있고, 여기에 구체적인 인스턴스의 개성을 더해 개별 인스턴스를 만든다. 자바스크립..

[Javascript] 콜백함수의 this

콜백함수는 함수A의 제어권을 다른함수(또는 메서드) B에게 넘겨주는 경우, 함수A를 콜백함수라고 한다. 이때 this는 함수B 내부로직에서 정한 규칙에 따라 값이 결정된다 -> 추후에 나오겠지만 전역객체 일수도, 메서드의 객체의 this일수도 있다. 콜백함수 내부에서의 this setTimeout(function(){ console.log(this); }, 300); [1, 2, 3, 4, 5].forEach(function(x){ console.log(this, x); }); document.body.innerHTML += '클릭'; document,body.querySelector('#a').addEventListener('click', function(e){ console.log(this, e); ..