본문 바로가기

전체 글286

[C#] SqlParameterCollection 에러 The SqlParameter is already contained by another SqlParameterCollection SqlParameter이(가) 이미 다른 SqlParameterCollection에 들어 있습니다. 위와 같이 DB SQL 실행을 하는 method를 2번 호출하면 볼 수 있는 에러다. using 문이 끝나서 SqlCommand가 Dispose() 되어도 SqlParameter가 어떤 SqlCommand에서 사용되었는지 정보를 저장하고 있는 것 같다. SqlCommand.Parameters.Clear() method를 이용해서 해당 SqlCommand의 SQL parameter를 초기화해서 에러를 방지할 수 있다. command.Parameters.Clear(); 아래 소스코드.. 2021. 6. 14.
HTTP status cats 긱뉴스에 HTTP status code를 귀여운 고양이들의 짤로 표현한 HTTP Cats가 나왔다. 역시 개발자들은 고양이를 좋아하나보다. 어느 설문조사에서도 개발자들이 강아지보다 고양이를 선호한다고 봤었고, Github의 트레이드 마크도 고양이다. 나의 최애 짤은 401 Unauthorized 이다. 제품 에러 페이지에 적용하고싶다.😁 그래도 우리 후추가 최고야!😸 후추로 http.pepper를 만들어볼까? 2021. 6. 12.
RSS 피드 구독하기(텔레그램 봇) 좋은 블로그를 찾아서 업로드되는 포스트의 알림을 받고 싶었다. 검색해보니 텔레그램 봇으로 가능하다고한다. 바로 @TheFeedReaderBot 이다. https://t.me/TheFeedReaderBot 친구 추가를 하고 /start 를 입력하면 명령어 설명이 나온다. (search 기능이 있다!😮 나중에 구독할만한 RSS 피드가 있나 찾아봐야겠다) 구독할 블로그의 RSS Feed XML경로를 입력한다. 티스토리 블로그 주소 뒤에 /rss를 붙이면 된다. /add https://jjester.tistory.com/rss 이제 포스트가 올라오면 텔레그램 봇을 통해 알림이 온다. 이미지가 본문과 어우러져 나오지 않아서 아쉽다. 하지만 중요한 것은 글이 업로드되었다 알림이기 때문에 잘 사용하고 있다. 2021. 6. 11.
JSDoc C#의 처럼 javascript도 class나 function에 대한 설명을 표시할 수 있었다. 😮 아래와 같이 es5 class 구조를 만들고 있다. parameter에 대한 설명을 해당 format에 맞춰서 표시한다면 Visual Studio 2019에서 다음과 같이 preview를 볼 수 있다. 커서에 아까 주석에 적었던 해당 class의 설명이 표시된다. 이렇게 잘 설명을 적어놓으면 다른 사람이 기능을 사용할 때 큰 도움이 될 것 같다. 팀에도 제안해야겠다. Reference https://jsdoc.app/about-getting-started.html https://devhints.io/jsdoc 2021. 6. 10.
offsetWidth, scrollWidth, clientWidth 차이 맨날 검색을 해도해도 헷갈리는 offsetWidth, scrollWidth, clientWidth offsetWidth: border를 포함한 width scrollWidth: scroll할 수 있는 숨겨진 영역을 합한 width clientWidth: width(border, scroll bar 포함하지 않음) jsfiddle에서 한 눈에 볼 수 있다. http://jsfiddle.net/y8Y32/25/ 2021. 6. 8.
#과 javascript:void(0);의 차이 href="#" 는 클릭 시 해당 페이지의 가장 상단으로 이동하게 된다. href="javascript:void(0); 는 아무일도 벌어지지 않는다. 아래 codepen에서 확인해보자 https://codepen.io/jaejoon/pen/VwpxNoW 아래에 있는 #을 누르면 가장 위로 이동하는 것을 알 수 있다. 반면 javascript:void(0);은 아무일도 일어나지 않는다. Reference https://codesource.io/vs-javascriptvoid0-which-one-is-the-best-attribute-for-empty-links/ 2021. 6. 7.
HTML File Path HTML, javascript의 경로 표현에서 / 로 시작하면 루트 디렉토리에서 시작하는 경로를, ../ 로 시작하면 현재 페이지의 상위 경로를 나타낸다. 이번에 프로젝트의 모든 namespace를 정리하면서 폴더 구조가 바꼈다. 내가 예전에 이미지 파일 경로를 폴더 구조에 영향없도록 개발해놨는데 이미지가 깨졌다. 알고보니 C#의 Server.MapPath("~/images")의 ~/ 와 헷갈려서 ../ 를 사용해버린 것이다.😨 게다가 마침 해당 폴더의 상위폴더가 Root Directory여서 별다른 문제도 없었다.😥 다시 실수하지 않도록 정리해둔다. Reference https://www.w3schools.com/html/html_filepaths.asp 2021. 6. 6.
개인의 능력과 조직 얼마 전 나에게 첫 팀장님이었던 전 회사 팀장님께 전화가 왔다. 별 다른 일은 아니고 내가 개발에 많이 참여했던 제품이 잘 팔리고 있어서 생각이 나셨다고 한다. 팀에 불만이 있다기보다 조직에 대한 불만으로 인해 회사를 떠났기 때문에 나도 나름의 아련함(?)같은 게 있었는데 먼저 전화를 주셔서 감사했다. 사실 처음 팀에 왔을때 나는 아무것도 못하는 무능력 그 자체였다. 그에 반에 경력직이었던 동기는 빠르게 적응해나가고 있었다. 내가 불쌍했는지 잘 챙겨주시던 당시 선임 연구원분이 어떻게 실력을 늘리는지 알려주셨다. "우리 팀은 여유로운 시기가 늘 있다. 그때 놀지말고 프레임워크 스펙문서를 읽고 공부해라." 동기가 핫딜, 뽐뿌 게시판을 찾아볼때 나는 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.