본문 바로가기

전체 글

(116)
SI에서 연봉협상이란? 너무나 무섭고 설렜던 첫 연봉협상이 끝을 보이고 있다. 2월부터 최대한 다양한 회사에 접촉해보고 여러 사람에게서 실제로 얼마를 받는지, 연차에 따른 연봉 테이블은 어떤지 알아보느라 거의 모든 시간을 쏟았다. 내가 얻은 정보가 신뢰할 수 있는 수준인지, 신뢰할 수 있다고 믿은 정보를 바탕으로 내가 회사에 내 연봉 인상을 위해서 제안을 할 수 있는지 많이 따져보았다. 핵심은 회사의 수입구조라고 판단을 내렸다. 기업별 연봉테이블이란 결국 그 회사의 수입구조에 직접적으로 영향을 받는다. 회사에 사장 혹은 임원급이 있다 (이하 경영진). 경영진은 특정한 기업과 다양한 조건을 걸고 계약을 맺는다. 계약을 수행할 사람을 뽑는다. 이런 조건 하에 모인 사람들이 직원이다. 직원은 회사가 맺은 계약을 실질적으로 수행하며 ..
map에서 null을 배제하고 싶다면? 개발을 해볼수록 가장 까다로운 것이 NULL 값에 대한 처리방식이다. 앞단에서 미리 처리했을 가능성도 있지만, 개발 도중에는 NULL 값 처리가 안됐을 가능성도 있고, 다른 개발자가 깜빡 잊었을 가능성도 있다. 일단 정상적인 테스트를 위해서는 NULL 값을 배제하는 것이 옳을 경우에 map에서는 getOrDefault 메서드를 사용하자. var map = new HashMap(); map.put("one", "하나"); map.put("two", "둘"); map.get("three"); // expect: null map.getOrDefault("three", "셋"); // expect: "셋"
실전에서 함수를 리팩토링하는 현실적인 방법은? 어떤 일을 하는 함수를 만들었다고 치자. 해당 함수의 조건부만 다르고 그 외에는 모든 곳이 같다. 그렇다면 해당함수를 반복해서 사용하려면 어떻게 해야하는가? 시간이 촉박한 현실적인 SI 업무에서 리팩토링을 진행하려면, 그냥 해당 함수를 다시 함수로 감싸는 방법을 사용하는 것이 괜찮은 것 같다. 조건부만 다르다면, 조건부에 들어갈 함수를 매개변수로 받아서 넘기는 방식이다. 이런 식으로 어떤 함수를 한 단계 외피(?)를 만들어서 내부의 값을 유동적으로 다루는 것. 이런 것을 추상화 단계를 높인다라고 표현한다. 또한 추상화 단계가 높아진 함수를 응용함수라고 부른다. (혹은 고차함수) 30세 이상, 50세 미만, 80세 초과 이런 식으로 조건만 다를 때 이런 방식을 사용하면 생산성이 확실히 늘어난다!