본문 바로가기

Slack 채널 정리

(87)
stretch goal AngularJS Up & Running 이 책 번역서도 나왔던 걸로 기억하는데 역서 제목을 모르겠네요. 아무튼 거기 도입부에 일화 소개가 나오는데 구글 피드백이라는 프로젝트 진행 중에 Misko 라는 개발팀의 한 직원이 자기가 취미로 만들고 있는 녀석 이용하면 6개월여 동안 개발한 거 2주 내에 동일하게 만들 수 있다고 하길래 팀장이 그렇다면 한 번 입증해보라고 허락합니다. 팀장은 당연히 실패할거라고 생각하면서도 실패했을 때 그 개발자의 모습이 흥미로울거 같아서 팀원들과 같이 재미있게 지켜봤다고 하죠. 예상대로 2주 내에 구현은 실패, 하지만 그 일주일 후 Misko 는 기존 6개월 분의 작업분을 모듈화, 재사용 가능, 테스트 가능한 새로운 모습으로 내놓았습니다. 종전 18,000 라인을 1,500 라..
js - if 문 줄여 쓰는 꽁수 if (userName) { gotoMain(); } else { login(); } 위 코드는 이렇게 쓸 수도 있죠. userName && gotoMain() || login(); 권장할만한 팁은 아니지만 온라인의 소스들 보면 이런 류의 귀여운 기술들 활용하는 경우 적지 않아서 참고들 하시라고 ...
기술 부채 잡담 결함/버그는 기술 부채의 일부분인가? 여러가지 의견이 존재하지만 결함은 기술 부채에 포함되지 않는다 보는 것이 훨씬 효과적인 듯 싶다. 이 쪽 입장에서는 결함/버그와 기술 부채를 구분하는 기준으로 '가시성'을 언급하는데, 즉 결함은 사용자 눈에 보이지만 기술 부채는 대체로 보이지 않는다는 관점이다. 대개의 경우 결함은 집중적인 관심/관리를 받게된다. 반면 기술 부채를 이끄는 문제는 대부분 보이지 않기 때문에 관심을 받지 못하고 무시되거나 뒤로 미뤄지곤 하게 된다. 결국 실용적인 관점에서 결함과 분리해서 기술 부채로 관심/관리을 쏟을 부분을 따로 정립해두어야 '기술 부채'가 갖는 함의를 제대로 현실에서 살려낼 수 있을 것이다. 그리고 이 관점에서야 기술 부채를 해결하는 주요 수단으로서 '리팩토링'의 가치가..
js 리팩토링 중 실수 - js 는 java 의 오버로딩이란게 없다. 가변함수 방식을 취하기 때문인데 이게 꽤 편하기는 하지만 공통으로 추출해놓은 함수에 인자를 추가할 경우에 이걸 호출해서 쓰는 놈들 중 실수로 이 부분 반영하지 않았을 경우 에러는 나지 않지만 엉뚱한 결과가 ... (java 처럼 IDE 에서 리팩토링 기능을 제공하지 않아 수작업으로 일일이 찾아서 수정하다보니 실수가 날 수 밖에 없음 ㅜㅠ) - 이번에 처음 겪은 경우이고 아직 명확하게 원인 파악 못한 문제인데 callee에서 caller가 넘겨주지 않은 객체를 사용하면 ... is not defiend 에러를 DevTools 콘솔에 뱉어주는게 정상일텐데 이 예외 출력을 삼켜 버리는 경우가 계속 발생. 가령, funcition funA() { var frm = ..
js 버전 메모 몇 년 전 메모긴 한데 그래도 추억이라 ... 팀내 js 스킬 교육을 할 수 있게 될런지 모르겠지만 혹 하게 된다면 필요할지도 모른다 생각되어 js 버전에 대해서 거칠게 한 번 정리해서 메모해봅니다. 1. 넷스케이프 사에서 처음 만듬.(자체의 버전 표기 있으며 현재 1.8인가 1.9 인가까지) 2. 표준 문제가 중요해지면서 (가령, IE 에서 상표명 분쟁을 피하기 위해 JScript라는 js 방언 출시 등등으로 표준의 필요성 커짐) 97년 ECMA 에서 표준 시도. (ECMAScript 라는 중립적(?) 이름 사용 시작) 3. 99년 ECMAScript 3 나왔고 현재 사용되는 거의 모든 브라우저에서 호환됨. 4. 09년 ECMAScript 5(ES5) 나옴. 많이 쓰이는 브라우져들에서는 어느 정도 다 ..
js - 객체 배열 중 특정 property 값에서 max/min 값 찾는 방법, 그리고 여담 https://codeburst.io/javascript-finding-minimum-and-maximum-values-in-an-array-of-objects-329c5c7e22a2 1. 제일 빠른 방식은 그냥 for 문 돌리는거. 다음은 reduce. 2. 회사 내 개발 화면에서 for 와 reduce 의 성능 차가 체감될 정도의 데이타 처리량 많은 경우가 있을까? 난 깔끔한 reduce 쓰겠음. 3. 우리 조직의 팀장과 모듈 리더는 일반 개발자들이 저런 식으로 하면 이해 못한다고, 그리고 저런 표현 고민하느라 시간 쓰기보다는 그냥 지금 방식처럼 머리 안 쓰고 빨리 짜는게 필요하다는 입장 - 이번에 JS 리팩토링하면서 실제로 권고(?) 받았음 - 이라 아마 reduce 쓰면 한 소리할 듯. 4. 위 ..
js 객체 리터럴에서 객체 자신의 값을 참조하는 방법 http://clubmate.fi/self-referencing-object-literal-in-javascript/ 가령, var wontWork = { a: 42, b: 58, c: this.b + this.a }; this.a 식으로는 안됨. 아래 식으로 get 메서드 이용하면 됩니다. var worksJustFine = { a: 42, b: 58 get c() { return this.b + this.a; } };
[java]random password 생성 랜덤 패스워드 생성하는 로직은 평이하다 보니 대부분 직접 구현하겠지만 오늘도 게으름에 주워다 쓸만한 샘플 좀 찾아봤습니다. https://stackoverflow.com/questions/19743124/java-password-generator 여기 답변에 있는 샘플 소스 깔끔해 보여서 여기다 조금 살 보태봤습니다. 1. exceptPunctuationChars() 추가 : PUNCTUATION 중 동적으로 일부 문자를 제외할 수 있도록 해주었습니다. 뭐 이런 식으로 쓸 수 있겠죠. String exceptChars = "-|\\[|\\]|\\?";PasswordGenerator passwordGenerator = new PasswordGenerator.PasswordGeneratorBuilder() ..