본문 바로가기

전체 글369

개인의 능력과 조직 얼마 전 나에게 첫 팀장님이었던 전 회사 팀장님께 전화가 왔다. 별 다른 일은 아니고 내가 개발에 많이 참여했던 제품이 잘 팔리고 있어서 생각이 나셨다고 한다. 팀에 불만이 있다기보다 조직에 대한 불만으로 인해 회사를 떠났기 때문에 나도 나름의 아련함(?)같은 게 있었는데 먼저 전화를 주셔서 감사했다. 사실 처음 팀에 왔을때 나는 아무것도 못하는 무능력 그 자체였다. 그에 반에 경력직이었던 동기는 빠르게 적응해나가고 있었다. 내가 불쌍했는지 잘 챙겨주시던 당시 선임 연구원분이 어떻게 실력을 늘리는지 알려주셨다. "우리 팀은 여유로운 시기가 늘 있다. 그때 놀지말고 프레임워크 스펙문서를 읽고 공부해라." 동기가 핫딜, 뽐뿌 게시판을 찾아볼때 나는 MS Docs와 기술 블로그를 읽었다. Postback이 뭔.. 2021. 6. 4.
undo commit(git revert, git reset) 시간은 되돌릴 수 없지만 커밋은 되돌릴 수 있다. 단, revert는 이력이 남는다. git revert 이력을 남기지 않고 되돌리기 위해서 reset을 사용한다. soft option은 워킹 디렉토리의 파일은 보존한다. git reset --soft HEAD~1 hard option은 워킹 디렉토리의 변동사항도 제거한다. 해당 커밋 이후의 모든 변동사항이 사라진다(상남자식 reset). git reset --hard HEAD~1 Reference https://git-scm.com/docs/git-revert https://git-scm.com/docs/git-reset https://www.git-tower.com/learn/git/faq/undo-last-commit/ 2021. 6. 3.
[C#] IsNullOrEmpty vs IsNullOrWhiteSpace C#에서 빈 문자열 또는 null인 경우를 확인할 때 사용하는 Method의 차이를 알아보자. Visual Studio C# Interactive 기능을 이용해서 확인해봤다. IsNullOrWhiteSpace()의 경우, space 또는 tab, line break도 true를 리턴한다. 생각해보니 실제로 제품에서 사용할때 IsNullOrEmpty()로 충분할 것 같다. extension method로 someStringVariable.IsNullOrEmpty() 형식으로 사용하는 방법도 사용하기도 편하고 의미상으로도 좋을 것 같다. Reference https://stackoverflow.com/questions/18710644/difference-between-isnullorempty-and-isnu.. 2021. 6. 2.
코딩 컨벤션 신입 개발자도 왔고, 코딩 컨벤션을 맞추기 위한 작업을 하고 있다. C#은 Style Cop으로 컨벤션을 맞추고 있다. 규칙에 맞지 않는 코드는 Visual Studio에서 Warning으로 표시된다. 무엇보다 좋은 건 그 Warning들을 일괄로 수정할 수 있다! js는 아직 어떻게 해야 할지 토론 중이다. 나는 헷갈리면 먼저 snippet으로 확인하고, 그래도 모르겠으면 구글 js style guide를 참고한다. 전에 회사에서도 내 컨벤션이 이상하다고 욕하면 조용히 이 링크를 보내주곤했었다. 2021. 6. 1.
data-* attribute data-* attribute에 저장된 데이터를 가져올때 jquery의 data() 는 - 다음에 오는 알파벳을 -를 제거하고 uppercase로 바꿔도 가져올 수 있다. 하지만, data- attribute 뒤에 오는 대문자도 data()로 가져오기 위해서는 lowercase로 가져와야 한다. 모든 attribute가 lower처리되고 -가 오면 -를 제거하고 바로 뒤에 오는 알파벳만 uppercase한다고 생각하면 된다. "data-productId" => "productid" "data-ProDUctId" => "productid" "data-product-id" => "productId" "data-PRODUCT-ID" => "productId" 반면에 getAttribute는 대소문자 구별 없이.. 2021. 6. 1.
npm prune node_modules 폴더에서 package.json 과 관련없는 패키지를 제거해주는 명령어 npm prune github에서 VAA Repository의 패키지 중 하나에 대한 보안 경고가 왔다. 사용하지 않는 패키지여서 package.json에서 지웠는데 그래도 node_modules 폴더에 남아있었다. 이 참에 사용하지 않는 패키지들을 지울 수 없을까? 하는 생각이 들어서 검색해봤다. 가지를 친다는 prune이라는 네이밍이 찰떡이다. Reference https://docs.npmjs.com/cli/v7/commands/npm-prune 2021. 5. 29.
[MS-SQL] NULL Column 정렬하기 MS SQL Server에서 Order by NULL을 마지막으로 정렬하려면 아래와 같이 사용하면 된다. ORDER BY -Column DESC 최근 통계 화면을 개발하고 있다. ROLLUP을 사용 중인데 소계, 총계가 NULL로 표시되어 자꾸 상단에 표시됐다. 전에 사용하던 Oracle과 달리 NULL이 가장 상단으로 와서 당황스러웠다. ROLLUP을 거는 Column이 INT형이라 ISNULL(Column, Number.MAX_VALUE) 로 하단으로 보내려고 했었는데, Number.MAX_VALUE도 MS SQL에는 없나보다. (있었어도 별로인 방법이라 사용은 안 했을 듯) 아래 방법도 MS SQL Server에서 사용할 수 없었다. ORDER BY Column DESC NULLS LAST 결국 아.. 2021. 5. 28.
티스토리 마크다운 css 적용되지 않는 문제 수정 티스토리에 적용해놓은 markdown css가 또 말을 듣지 않는다. 개같은 저 따옴표..! 킹받게 한 쌍도 아니다. 먼저 css를 확인한다. 문제가 되는 css를 확인한다. #tt-body-page blockquote[data-ke-style='style1'] 이놈이 문제다. 이 친구를 제거하기 위해 티스토리 관리 페이지에서 스킨 편집을 클릭한다. html 편집을 클릭한다. CSS탭에서 검색해도 보이지 않는다. 나는 css가 제일 자신없지만 포기하지 않고 노가다로 승부한다. 문제가 되는 css를 무력화시키는 아래 css를 입력한다. #tt-body-page blockquote[data-ke-style='style1'] { text-align: start; background.. 2021. 5. 27.
Web.Config Timeout Web.Config의 ExecutionTimeout의 Default는 110초다. 처음 이직하고 Web.config 파일을 보고 경악을 금치 못했다. 배포가 debug 모드로 되고 있었던 것이다. 그래서 Web.config의 debug attribute를 false로 바꾸고 배포해야 한다고 말했고 변경이 되었다. 하지만 그것은 앞으로 다가올 재앙의 시작이었다. debug 모드일때 ExecutionTimeout이 적용되지 않는다. 하지만, release 모드로 바꿔서 timeout 110초가 생겼더니 몇년 동안이나 timeout이 없는 채 사용되었던 제품에서 110초가 넘어가는 모든 operation에서 에러가 발생하기 시작했다. 그 다음날부터 CS는 빗발쳤고 허겁지겁 성능개선을 하거나 Timeout을 늘.. 2021. 5. 26.