목록분류 전체보기 (494)
규도자 개발 블로그
피즈버즈 테스트(FizzBuzz Test) 피즈버즈테스트(FizzBuzz Test)라고 해서 프로그래머의 역량을 간단하게나마 평가하는 알고리즘 문제가 있다. 훌륭한 프로그래머라면 2분 이내에 정확히 작동하는 코드를 작성할 수 있다고 한다. FizzBuzz 문제는 옛날 TV에서 하던 삼육구 + 아자랑 비슷한데, 삼육구 + 아자는 숫자에 3이 들어가거나 5가 들어가면 박수를 치고 아자를 외쳐야하는 반면 Fizzbuzz문제는 1부터 100까지 1씩 커지는 수열에서 3의 배수때는 Fizz, 5의 배수일때는 Buzz, 3과 5의 공배수일 때는 FizzBuzz를 출력하게 하고 위 세개의 모든 경우에도 들지 않으면 숫자 그대로를 출력해야 한다. 간단해보이는 이 문제가 왜 프로그래밍 테스트의 대표격이 됐을까. 사실 이..
빠르고 좋은 결정은 있지만 느리고 좋은 결정은 없다. 어떤 주제에 대해서 오랫동안 고민하고 있다면 이미 어떤 결정을 하든 최악과 차악 사이에서의 고민일 것이다.
IBM 스페이스 세이버2 ps/2방식으로 연결시 드라이버 설치 방법 Space Saver 2, RT-3200 일단 키보드에 달린 건 ps/2방식 키보드 연결부랑 마우스 연결부 둘 다라서 기본적인 마우스는 쓸 수 있다. 하지만 문제는 키보드에 달려있는 가운데 휠버튼을 누르면 보통 스페이스 세이퍼에서 쓰듯이 휠적용 버튼으로 바뀌는 게 아니라 진짜 마우스 휠버튼을 눌렀을 때처럼 적용되어 무지무지 불편하다는 사실이다. 왼쪽이 드라이버를 깔지 않았을 때 보통 마우스 휠버튼을 누른 것처럼 처리된 모습이고 오른쪽이 드라이버가 깔려서 제대로 휠버튼으로 동작하고 있는 모습이다. 이제 ps/2방식으로 연결했을 때 오른쪽 처럼 드라이버를 설치하는 과정을 알아볼 것이다. 이곳에서 씽크패드 울트라나브 드라이버를 다운받아 설치하..
깨끗한 프로젝트 코드를 위한 규칙. 5S 깨끗하게 유지된 프로젝트 코드는 아무리 강조해도 지나치지 않다. 실제로 수많은 프로젝트들이 해당 프로젝트를 개발하는 것보다 유지보수에 더 많은 인력과 자원을 소모하게 되지 않는가. 깨끗한 코드와 디렉터리 구조로 프로젝트를 유지하기 위한 5S규칙은 아래와 같다. 정리(Seiri) : 적절한 명명법 등과 같은 방법을 사용해 무엇이 어디에 있는지 알아야 한다. 전산화가 이뤄지지 않았던 시절에도 수많은 캐비닛과 파일철, 그리고 정리 규칙들로 수많은 문서들을 체계적으로 분류하여 쉽게 찾아낼 수 있었듯이 말이다. 정돈(Seiton) : 단정함, 또는 체계화라고도 한다. 코드는 누구나 예상하는 위치에 있어야 한다. 당신이나 누군가가 찾는 것이 있을 때 이것은 응당 이곳에 ..
이미 있는 디렉토리에서 git 설정하기다른 사람들은 모르겠지만 나는 이상하게 먼저 git repository를 만들기보단 먼저 작업을 하다가 git을 설정할 때가 많은 것 같다. 하지만 이 방법은 먼저 repo를 만들고 clone을 뜨는 것보다 좀 더 여러과정이 필요해서 글로 남겨놓으려 한다. #해당 디렉토리로 이동하여 git 초기화 $ git init #주소 추가 $ git remote add origin {git address} #혹은 주소 변경 $ git remote set url origin {git address} #코드 업로드 $ git push origin master #코드 다운 $ git pull origin master #히스토리 때문에 안받아지는 경우가 있을 땐 $ git pull o..
정규식 짤 때 엄청나게 도움이 되는 사이트. regex101.com 난 정규식을 싫어한다. 사람이 해석할 수가 없는 언어라고 생각해서이다. 물론 익숙한 사람에겐 다르겠지만... 하지만 프로그래밍을 계속 접하게 되면 어쩔 수 없이 사용하게 된다. 그때 활용하는 사이트가 있다. 바로 regex101이다. 접속해보면 알 수 있겠지만 좋은 싸이트의 특징인 직관적인 UI가 눈에 띈다. 간단하게 설명하자면 FLAVOR에서 언어의 종류를 누르고 위에 정규식을 쓰고 TEST STRING에 테스트할 문자열들을 입력하여 테스트한다. 결과값은 오른쪽에 출력된다. 흔히들 사용하는 자바스크립트에서의 암호 정규식을 만들어보자. 만들기 귀찮으면 왼쪽의 책모양 메뉴를 눌러서 검색하면 된다. 이미 완성돼있는 정규식들을 조회할 수 있으..
로또 시뮬레이터, 로또 확률 계산기를 심심해서 만들어봤다. 사실 심심해서라기보단 좋은 꿈을 꿔서 10만원어치의 로또를 사봤는데 5등 하나 돼서 짜증나서 만들었다. 이곳에서 플레이할 수 있다. 이렇게 생겼다. 기본적인 html, js, css에 jQuery, bootstrap을 더하고 댓글시스템인 disqus까지 추가했다. bootstap이 어디들어갔나 했겠지만 룰렛을 돌리다보면 뜨는 이벤트들이 있는데 그 경고창을 추가하기 위해 부트스트랩을 추가하였다. github page를 이용한 것이라 소스는 이 레포지토리를 참고하면 될 것이긴 하지만 즉흥적으로 막 만든 만큼 코드는 다른사람에게 보여줄만큼 깔끔하지가 않다. 거두절미하고 만든 의도는 로또에 대한 경각심을 위해서였지만 실험으로 돌리는 와중에 내가 2등에 ..
JSON을 테스트하는 가장 좋은 방법. POSTMAN과 JSON Placeholder JSON(JavaScript Object Notation). 웹프로그래머라면 뗄레야 뗄 수 없는 만능 자료형이라고 할 수 있다. 가끔씩 파싱 중 골머리를 썩게 하는 거 빼곤 플랫폼 언어 가릴 것 없이 거의 모든 곳에서 통용되어 ajax를 통한 동일 사이트 안에서의 갱신도, restful API를 이용한 데이터 교환에서도 거의 정석이라고 할 수 있을 정도로 고착화돼있다. 자료형이 JSON이 아니면 왜 이렇게 만들었는지 의문이 들 정도로 말이다. 이 JSON을 테스트하기 좋은 방법이 있다. 송신 및 수신 값을 확인할 때는 POSTMAN, 코드 내에서 정형화된 JSON데이터가 필요할 땐 JSON Placeholder. POS..
next.js에서 sass사용하기 react에서 썼던 것처럼 당연히 될 줄 알았는데 이게 웬걸 오류가 뜬다. 해서 찾아보니 방법이 다 있더라. $ npm install --save @zeit/next-sass node-sass //npm $ yarn add @zeit/next-sass node-sass //yarn 그리고 프로젝트 루트디렉토리에 next.config.js를 생성한다. package.json과 같은 위치라고 보면 된다. 그 안에 다음 내용을 입력한다. // next.config.js const withSass = require('@zeit/next-sass'); module.exports = withSass(); sass뿐만 아니라 css도 같이 사용할 거라면 아래와 같이 입력하면 된다. ..
엔트로피. 열역학 제 2법칙의 다른 이름이다. 간단하게 우주만물은 정돈된 상태에서 혼돈된 상태로 가고 있다는 말이다. 우리가 석유를 소비하면 석유형태로 저장돼있는 에너지가 열로 변하고 그 화학작용으로 인해 석유가 가스형태로 대기 중에 흩어지는 걸 생각하면 된다. 영원할 것만 같은 태양도 언젠가는 핵융합과정이 끝나는 것처럼 말이다. 엔트로피라는 책이 있는데 거기에서 재활용에 대한 부분이 나온다. 세상에 재활용은 없다는 게 책의 뜻이었다. 이게 무슨 소리인가 하겠지만 버려진 플라스틱을 다시 모아서 쓸 수 있는 플라스틱으로 재가공한다는 것 자체가 에너지를 소비하기 때문에 재활용이 아니라는 게 골자이다. 소프트웨어는 다르다. 물론 찾아서 적용하는 데에는 에너지가 소비된다. 하지만 직접 만드는 것보다 비교가 되지..