본문 바로가기

전체 글345

스파르타코딩클럽 Django 기초반 preview 나의 첫 프로젝트는 대학교 4학년 때 졸업 프로젝트로 진행한 Django 프로젝트였다. 스타트업에서 원하는 기능을 구현해주고 그것을 졸업작품으로 발표하는 프로젝트였다. 기업에게는 무료 (저퀄리티)외주 개발을 해주고, 학생은 회사 프로젝트를 경험하는 나름(?) 괜찮은 아이디어였다. 그때 당시 팀원 모두 학교에서 Django는 물론 파이썬도 배워본 적 없었다. 한 학기 동안 진행한 프로젝트였지만 3개월 내내 Django를 공부했고 매주 진도를 확인하던 교수님은 구박을 하셨다. 니들 나중에 회사에서도 공부한다고 그러면 회사 짤린다! 🤬🤬 결국 팀원 4명 중 2명은 포기를 선언하고 나와 다른 팀원은 호텔을 잡아서 밤샘코딩에 들어갔다. 결과는 처참했다. 겨우 졸업은 할 수 있는 정도의 학점을 받았다. 근데 나중에.. 2021. 6. 26.
DOM Element의 ID는 전역 변수로 사용할 수 있다. DOM element의 id는 전역 변수로써 사용할 수 있다. 아무리 생각해도 글로 설명하기 어렵다. 아래 예시가 이해하기 쉬울 것이다. HTML JS test.innerText = "this is text"; https://jsfiddle.net/jjhan/u2bqL4dw/1/ 오늘 element id와 전역함수의 이름이 공교롭게도 같아서 클라이언트단에서 에러가 발생했다. Uncaught ReferenceError: something is not defined 일반적으로 DOM element의 id는 prefix(btn, select 등등)를 붙이기 때문에 충돌이 발생할 경우는 없지만 이 사실을 몰랐더라면 꽤나 헤맬 수 있었던 이슈다. 운이 좋게 이직 전에 이 사실을 알게 되어서 쉽게 찾아서 고칠 수 .. 2021. 6. 25.
[MS-SQL] 임시 테이블(#, ##) MS SQL Server에서 임시 테이블을 만들기 위해서는 #과 ##을 이용하면 된다. #을 붙이면 현재 세션에서만 사용 가능하다. ##을 붙이면 다른 connection에서도 사용 가능하다(global temporary table). SQL Server는 자동으로 임시 생성했던 테이블을 Connection이 close될 때 제거해준다. 하지만 개인적으로 DROP TABLE로 꼭 지워준다.😄 CREATE TABLE #TEMP ( Memo VARCHAR(MAX) ); CREATE TABLE #GLOBAL_TEMP ( Memo VARCHAR(MAX) ); 2021. 6. 24.
외주개발 내 생각에 개발자의 가장 큰 장점은 외주개발로 용돈 벌이도 가능하다는 점이다. (물론 회사 규정에 따라 다르겠지만) 운이 좋으면 간단한 개발로도 월급의 몇 배는 돈을 쉽게 벌 수 있다. 나도 운이 좋게 인맥으로 몇 번의 외주 개발을 진행해본 적 있다. 오늘 과거에 외주 개발을 진행했던 업체에서 또 일을 같이 해보면 어떻겠냐는 연락이 왔다. 나 다음으로 함께 했었던 외주 개발자 2명이 마음에 안 드셨나보다. 회사 업무가 바쁘기도 하고 프레임워크도 하고 싶지도 않은 것이어서 거절했다. 하지만 한편으로 나와 다시 함께 일하고 싶다고 해주시니 기쁘기도 했다. 나의 꿈은 프리랜서 개발자다. 정확히는 (내가 일하고 싶은 정도만 일해도 될만큼의 금융소득이 있는) 프리랜서 개발자. 내 마음대로 내가 원하는 장소와 시간.. 2021. 6. 21.
[javascript] 빈 Object 확인하는 법 javascript에서 빈 object({})인지 확인하려면 아래와 같이 확인하면 된다(ES5 이상). var isEmptyObject = obj && Object.keys(obj).length === 0 && obj.constructor === Object 주의할 점 만약 빈 object가 아닌 경우를 조건으로 할때 isEmptyObject === false 조건을 이용해야 한다. !isEmptyObject 의 경우 obj가 null일때 문제가 된다. null && true, null && false 모두 null이고 !null은 true이기 때문이다. if (isEmptyObject === false) // 이렇게 사용 if (!isEmptyObject) // 사용 x, obj가 null인 경우 문제 2021. 6. 16.
[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.