목록분류 전체보기 (492)
규도자 개발 블로그
이런 말로도 쓸 수 있겠다. 데이터베이스에 들어가는 값은 최대한 변하지 않는 값이어야 한다. 예를 들어서 어떤 플랫폼에서 나이를 다룬다고 하자. 그리고 사람들의 나이를 각 회원들의 열에 저장하였다. 생각만으로 머리가 아파지지 않는가? 나이를 세는 기준은 무엇인가. 연도? 생일? 만약에 전자라면 해가 지날 때마다 모든 회원들의 나이데이터를 불러와서 1을 더한 다음에 다시 저장하는 과정을 거쳐야 한다. 만약에 후자라면 매일매일 날짜를 체크하여 회원의 생일이 지났는지를 검사하여 생일이 지났으면 해당 회원의 나이를 불러와서 1을 더한 다음에 다시 저장해야한다. 이것도 아주 단적인 예만 말한 것이다. 만약에 회원이 외국인이라면? 혹은 나이를 세는 기준이 바뀐다면? 그도 그럴 것이 이 '나이'라는 것이 현대에 와서..
유명한 프로그래밍 격언이다. 이미 만들어진 걸 또 만들려고 고생하지 말라는 말이다. 좀 더 구체적으로 파고들자면 예를 들어 C언어가 있는데 C언어가 불신스럽다고 C언어를 다시 만들려 하고, 답변형 게시판 알고리즘이나 로직이 이미 인터넷에 그득그득한데 마음에 안든다고 스스로 알고리즘을 아예 새로 만든다던가 하는 것들 말이다. 이 대상은 언어에서부터 서드파티 라이브러리, 그리고 어떤 특정한 문제해결을 위해 발명된 알고리즘(수많은 정렬 알고리즘, 탐색 알고리즘 등)에까지 아주아주 폭넓다. 부단 IT계열뿐만 아니라 일상생활에도 적용되는 이야기이다. 젓가락이 태초의 모습 그대로 완성된 것이라 그 용도에 따른 변형은 조금조금씩 있지만 구조 자체가 변하지 않는 것처럼 말이다. 이처럼 성능개선이나 특성에 따른 변경은 ..
Docker로 CentOS 이미지 systemctl 사용하기전의 게시글에서는 ubuntu이미지를 다운받아 컨테이너로 만든 후에 apache 웹서버를 만들어보았다. 전의 게시글을 보지 못했다면 한번 봐보는 것도 나쁘지 않지만 이미 컨테이너를 올리고 내리는 것과 로컬포트와 도커포트를 연결하는 데에 익숙하다면 이 게시물만 봐도 무방할 것이다.도커(Docker)로 CentOS 이미지 systemctl 사용하기 - 1 [우분투 이미지로 컨테이너 만들어 웹서버 돌려보기] 전에는 우분투리눅스로 돌려봤으니 이제 이 글의 주제인 CentOS로 웹서버를 돌려보자. CentOS컨테이너를 만들어서 apache웹서버 구동해보기 위 게시물에서 했던 과정과 똑같은 절차를 진행해보자. 일단 Docker Quickstart Termi..
쿼리로 구할 수 있는 데이터는 따로 데이터베이스에 넣지 않는 것이 좋다. 그 데이터를 복잡한 연산에 자주 사용하는 것이 아니라면 말이다. 예를 들어 여러 플랫폼에서 흔하게 볼 수 있는 추천인 시스템을 구현한다고 했을 때, 해당 회원에 종속돼야할 정보는 해당 회원에게 발급된 추천인 코드와 해당 회원이 가입할 때 입력하였던 추천인코드, 이 두 개면 시스템을 구성하는 데는 충분하다. 하지만 만약, 해당 회원에게 종속된 데이터에 부가적인 정보, 예를 들어 해당 회원을 추천한 회원들의 목록, 추천한 회원들의 숫자 등의 정보가 부가적으로 존재할 뿐더러 이 정보를 실제 서비스플로우에서 사용하게 되는 경우라면... 갑자기 머리가 아파진다. 특정 회원을 추천한 회원들의 목록은 쿼리로 구할 수 있다. 그 회원들의 숫자 또..
Docker로 CentOS 이미지 systemctl 사용하기 개발, 배포, 테스트 환경을 동일하게 만들어주는 편리한 도구 Docker. 일단 이 게시물은 Docker에 대한 기본적인 요소들을 설명하기보다는 내가 삽질했던 것들을 싹 정리해놨다가 다른 사람들은 나처럼 쌩고생하지 말라는 의미에서 남기는 글이다. Docker에 대한 정보는 아래의 링크에 굉장히 잘 나와있다. 서비큐라 기술블로그Docker가 뭔지도 몰랐을 때 처음으로 Docker가 무엇인지, 어떻게 쓰는 건지 알게 된 블로그이다. Docker를 맨 처음에 접하게 된 건 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서이 책이었다. 굉장히 좋은 책이니 초급 PHP개발자라면 누구라도 봤으면 하는 바람이다. 각설은 이정도로 하고, 이야기의 요지는 ..
문제 Kaprika수를 구하라. Kaprika 수란? 예를 들어 네 자리 숫자 2025의 가운데를 갈라보면 20과 25의 두개의 숫자가 생긴다. 이 두개의 숫자를 더하면 45이고, 45를 제곱하면 2025가 되어 원상태로 되돌아간다. 이러한 성질을 갖는 수를 Kaprika수 라고 한다. 또 81은 가운데를 잘라보면 8 과 1로 갈라지고, 더하면 9가 되고 다시 제곱하면 81로 돌아간다. 그러므로 81은 두 자리 숫자의 Kaprika수가 되는 것이다. 네 자리로 구성된 kaprika 수를 모두 구하는 프로그램을 작성하시오. 입력 입력은 없다 출력 [2025, 3025, 9801] 입출력 예 입력출력 [2025, 3025, 9801] 풀이 kaprika_array = [] for i in range(1000..
function stringNumberToInt(stringNumber){ return parseInt(stringNumber.replace(/,/g , '')); } 실제로 웹 작업이나 서핑을 하다보면 숫자는 보통 100,000,000 이런 식으로 값을 파악하기 쉽게 1,000단위마다 콤마가 찍혀있는 것을 흔하게 접할 수 있다. 만약에 해당 숫자를 계산에 사용할 필요가 있을 때 해당 숫자가 들어있는 태그에 따로 value값으로 순수한 정수값이 지정돼있지 않으면 태그 내의 글자를 그대로 불러와서 연산에 사용하게 된다. 하지만 그렇게 하면 위 숫자는 100000000이라는 값을 가진 정수형으로 취급되는 게 아니라 '100,000,000'이라는 문자열로 취급되어 연산을 수행할 수 없다. (문자열을 붙이는 의..
function numberFormat(inputNumber) { return inputNumber.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } 보이는 그대로 정규식을 이용해 해당 함수로 들어온 숫자를 천 단위마다 콤마를 찍어 리턴해주는 함수이다. 숫자를 다루는 일이 잦은 웹 플랫폼이라면, 어느 페이지에서든 불러오는 정적 js파일에 해당 함수를 추가하여 필요할 때마다 쓰기 유용하다. 대신 소수점에 대한 처리는 안 돼있어 소수를 넣으면 아래와 같이 출력된다. 위의 코드부에 마우스를 올리면 우측 상단에 copy라는 박스가 뜬다. 해당 버튼을 누르면 소스가 복사된다. 물론 드래그와 우클릭도 허용돼있다. 위 사진은 해당 함수가 불러와진 페이지에서(크롬) 콘솔창을 ..
문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다. 33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ... n을 d(n)의 생성자라..
문제 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째, 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르는 데는 다음과 같은 규칙이 있다. 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다. 연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다. 마지막 도착 계단은 반드시 밟아야 한다. 따라서 첫 번째 계단을..