본문 바로가기

전체 글286

[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.
Notion Web Clipper 나는 Extension 매니아다. visual studio, vs code, chorme 등 좋은 Extension이 있으면 무조건 사용해본다. 그 중에 블로그 소재 수집용으로 사용하는 Notion Web Clipper 도 있다. 회사에서 리서치하는 중 좋은 자료가 보이면 옆에 노션 아이콘을 누른다. 원하는 Notion 경로(추가 대상)에 저장한다. Notion 페이지에 자동으로 링크가 기록된다. 문제는 이렇게 Clipper로 모아놓기만 하고 있다는 점이다. 천천히 하나씩 블로그에 올려야겠다. 사실 이건 세이브 원고였어! 2021. 5. 25.
Github Action으로 자동으로 README.md에 링크 생성하기 블로그에 쓸 내용을 기록할때 Github Action을 이용해서 자동으로 README.md에 링크를 업데이트하도록 만들어놨다. TIL을 시작해보려 하는데 비슷하게 구현해놓으면 좋을 것 같아서 Repository를 생성해놨다. Github Action을 이용한 README.md 자동 업데이트 Action 탭에서 Python package를 누른다. python-package.yml 에 있는 내용을 복사한다. 이 파일에서 update.py를 실행하고, git commit, push하도록 설정한다. Repository를 보면 TIL 폴더에 README.md가 있고, 그 하위에 firstTIL에도 README.md가 있다. Root에 있는 README(빨간색)의 내용을 다른 폴더의 README의 링크로 자동으로.. 2021. 5. 24.