개발팀장이 되면서 겪게된 점들 1

이미지
                                                         <팀원을 모집하기 위해 고군분투하는 모습이다. > 첫 한달  개발팀장을 맡다 2021년 5월 , 기존에 있던 CTO분이 휴직(개인사)을 하게 되면서    개발에 대한 모든 권한을 내게 일임하였다.   개발에 대한 모든 의사결정을 전부 내게 맡긴 것으로 ,   어느 정도 규모가 있는 회사의 의사결정권한을 갖게 된 것은 그만큼 내게 큰 신뢰가 있었음을   알수 있게해주는 대목이었다. 그러나 전혀 예측하지 않았던 상황이기에 준비가 되어있지 않았던만큼 처음에는 삐걱거렸다. 가장 첫번째로 어려움을 겪었던 것은 업무의 배분이었다.   관리자가 되니까 해야할일은 업무를 만들고 또 그것을 팀원들에게 분배하고 잘 되고있는지 취합하고 관리감독을 하는것이었다.   군 시절 장교로 복무하면서 겪어봤던 일이긴 했지만, 군복무 당시에도 그닥 잘 하지는 않았던 것 같다.   그럼에도 어쨌든 전반적인 시스템을 이해하고 있었고, 어떻게 구현해야할지에 대해서는 어느정도 경험이 쌓여있었기때문에 큰 문제가 없을 줄 알았다.   실무자로 일을 할 때에도 항상 업무를 받아서 하지는 않았다. 스스로 돌이켜보건대, 나는 주어진 업무가 없으면 스스로 만들어서 제안하고 기획하여 업무를 진행했다.  조그마한 스타트업이었던 첫 회사에서부터  내가 할일은 내가 만들어서 곧 잘했다. 어떤 큰 방향만 정해져있다면 그건 큰 어려움은 아니었다. 나에게 일은 항상 있었다.   매니저가되면서 달라진게있다면 내가 할일만 만드는 것은 아니라는 점이다 . 남이 할 일도 만들어줘야했다.  다행히 팀원들에 대한 면담을 실시한 결과,(팀원을 맡게되자마자 했던 부분)   마이크로 매니징을 원하지는 않았기때문에 큰 그림을 그리는 정도만 준비하면 됐었다.   문제는 내 실무를 동시에 진행하면서 팀원들의 업무 방향도 설정해야했기때문에 시간이 배로 들게 되었다는 점이다. 물론 두배로 일하지는 않았다. 대신에 내 실무시간을 줄였고

프론트개발자 면접 준비/ 공부 5

Coding Questions:

Question: What is the value of foo?
var foo = 10 + '20';
형변환 (자바에서는 casting이라고 하던데) 에 대한 질문이다. 답은 1020이다.
숫자는 문자열을 만나면 문자열로 변하게 된다. 문자열을 숫자로 변환하고 싶다면 따로 파싱해주는 메소드를 사용해야 한다. 
Question: How would you make this work?
add(2, 5); // 7
add(2)(5); // 7
function add(operand1operand2) {
    let memo;

    if (operand1 && typeof operand1 === 'number') {
        if (operand2 && typeof operand2 === 'number') {
            memo = operand1 + operand2;
            console.log(memo);
        } else {
            memo = operand1;
        }
    }

    return function addResult(operand) {
        if (operand && typeof operand === 'number') {
            memo += operand;
            console.log(memo);
        }
    };

}

음... 좀 지저분하게 느껴지는건 왜일까. 

(a, b)=>b?a+b:c=>a+c; 
페이스북 그룹에 문의를 했더니 이런 코드를 알려주셨다. 콘솔에 찍는게 목적이라 생각해서 거기에 집착을 했는데, 이렇게 간결하게 표현할 수 도 있구나. let을 쓸거면 처음부터 ES6 스럽게 짜보라고 한다. 
새롭게 배운것은 함수가 화살표함수로 계속 이어져 있으면서 그 매개변수로 들어있는 것을 언제든지 쓸 수 있다는 표현인거 같다. 짧은 한줄이지만 강력하게 배웠다. 

커링에 대해서도 정리해야겠다. 

Question: What value is returned from the following statement?
"i'm a lasagna hog".split("").reverse().join("");
책보고 해바야겠다. 

Question: What is the value of window.foo?
( window.foo || ( window.foo = "bar" ) );
bar 가 나올 것이다.  window 에 따로 foo 속성을 정의한적이 없기때문에 바로 뒤에 있는 코드가 실행되서 foo속성이 주어지고 "bar"  값이 할당 될것이다. 

Question: What is the outcome of the two alerts below?
var foo = "Hello";
(function() {
  var bar = " World";
  alert(foo + bar);
})();
alert(foo + bar);
첫번째는 Hello World
두번째는 에러가 난다. bar가 존재하지 않기때문이다. undefined 값도 할당되지 않는다. 변수 자체가 존재하지 않기때문. 
 IIEF 즉시실행함수는 변수를 사용하고 바로 폐기처분해버리는 성질이 있다. 

Question: What is the value of foo.length?
var foo = [];
foo.push(1);
foo.push(2);
2

Question: What is the value of foo.x?
var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};
자기자신인 객체가 들어갈 것 같은데. {n:2}

Question: What does the following code print?


console.log('one');
setTimeout(function() {
  console.log('two');
}, 0);
console.log('three');
이 문제는 이벤트 루프하면서 배웠다. one three two 순으로 찍힌다. 
단일호출스택에 차례대로 쌓이지만 setTimeOut 함수안에들어간 
콜백함수는 곧장 실행되지 않고 4ms 뒤에 실행된다. 그리고 바로 호출스택에 들어가지 못하고
테스크 큐를 거쳐서 이벤트 루프에게 호출된다음에 실행이된다. 


댓글

이 블로그의 인기 게시물

iframe 보안 문제 우회 및 해결법 1

iframe 보안 문제 우회 및 해결법 2

개발팀장이 되면서 겪게된 점들 1