목록분류 전체보기 (498)
규도자 블로그

놀랍게도 꿈에서 본 단어다. 하지만 너무나도 뇌리에 남고 너무 좋은 말 같아서 꿈에서 깨자마자 비몽사몽한 상태로 Google Keep을 키고 어떻게든 메모에 우겨넣고 다시 잠을 청했다. 꿈의 내용은 새벽의 저주와 굉장히 흡사했다. 커다란 쇼핑몰 내에서 좀비들과 싸우고 생존하는 내용. 하지만 내가 옛날에 했던 텔테일 게임즈의 워킹데드와 꿈 내용이 혼합이 됐는지(둘 다 좀비물이니까) 사건사건마다 그 사건에 대한 시스템의 평가가 오버롤되는 형태였다. 흔히 텔테일 게임즈나 퀀틱 드림(디트로이트 비컴 휴먼, 헤비레인, 비욘드 소울즈 등등을 개발한 회사)류 QTE방식 스토리 어드벤쳐 게임에서 중요한 선택이나 주변인들에게 어떠한 영향을 끼칠 때마다 "A는 이 사실을 기억할 것입니다" 이런식으로 피드백이 뜬다. 차후에..
github의 어이없는 실수 (about gitwiki) github public repo 혹은 pro plan의 private repo에서 제공하는 wiki라는 기능이 있다. gitbook과는 달리 repo내부에서 바로 접근할 수 있는 형태인데 정말 웃긴게 이 git wiki도 git으로 관리되면서 정작 지들이 막아놓은 http 프로토콜을 통한 주소만 제공한다는 점이다. 위 사진은 내가 만든 오픈소스 프로젝트인 PHPCronManager의 wiki(https://github.com/jujumilk3/PHPCronManager/wiki)이다. 우측 하단에 보면 알 수 있다시피 http프로토콜만 지원한다. 웹상에서 Edit, 혹은 New Page를 통해 작업한다면 모를까 로컬에서 변경하고 싶은 내용을 한번..
pip 모든 패키지 삭제하기 + xargs명령어 가끔씩 개발을 하다보면 실수로 프로젝트 venv환경이 아닌 System Interpreter로 설치된 python에 패키지를 설치해버릴 때도 있고, 패키지 버전을 바꿔야 하는데 의존성으로 인해 여러개의 패키지가 깔려있는 상태에서 같이 버전을 바꿔줘야 하는 둥 pip로 설치한 모든 패키지를 전부 싹 밀고 다시 패키지를 설치하는 게 속시원할 때가 있다. 그때 쓰면 좋은 명령어다. $ pip freeze | xargs pip uninstall -y 여기서 xargs라는 조금은 생소한 명령어가 있는데 명령어 출력을 다른 명령어의 인자값으로 전달하는 함수이다. 고로 pip freeze명령어를 통해 조회된 모든 패키지 리스트들에 대해서 각 줄마다 pip uninsta..
확장성. 가독성. 함수의 시간&공간복잡도. 빌트인 함수를 쓴다면 그 함수의 복잡도. DB와 작용하는 작업이라면 트랜잭션 4대 원칙 ACID를 깨지 않는 로직. 객체지향 설계를 하고 있다면 객체지향의 5대 원칙 SOLID를 지키기. 생각나면 추가해야지

재귀함수로 구하는 피보나치 수열의 직관성 나는 항상 def fib(n): head, body, tail = 0, 1, 0 for _ in range(n): tail = head + body head = body body = tail return head PythonCopy 이런식으로 피보나치 수열의 몇 번째 수를 구하곤 했었다. 연산도 빠르고 코드도 직관적이라서 피보나치수열을 응용해야하는 문제가 있을 때마다 항상 이 로직을 애용해왔는데 얼마 전에 피보나치수열을 재귀로 구현해야했다. 하지만 이 로직에 뇌가 절여진 나는 구현하지 못했다. 아, 참고로 피보나치수열을 재귀로 구하는 방법은 def fib(n): if n == 0: return 0 elif n == 1 or n == 2: return 1 else:..
[백준/11651/파이썬] 좌표 정렬하기 2 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 입출력 예 입력출력 5 0 4 1 2 1 -1 2 2 3 31 -1 1 2 2 2 3 3 0 4 풀이 print("\n".join(sorted([input() for _ in range(int(i..
https://www.apple.com/kr/apple-events/october-2021/?useASL=true Apple 이벤트 - 2021년 10월 새롭게 선보이는 M1 Pro 또는 M1 Max 칩 탑재 14형 및 16형 MacBook Pro 그리고 신형 AirPods(3세대). www.apple.com 어제 새벽 애플 새로운 이벤트가 열렸는데 M1칩을 단 맥북프로와 에어팟3가 발표됐다. 그리고 또 항상 그렇듯이 내가 갖고 있는 16인치의 엄청난 발열과 소음을 겪을 때마다 M1칩에 대한 뽐뿌가 오는데 그럴 때마다 참고하는 사이트가 있다. https://isapplesiliconready.com/ Is Apple Silicon ready? The complete guide for MacOS Apps ..
현기증나는 인프라, 배포 용어들(IaC, 오케스트레이션, CI/CD, DEVOPS, 프로비저닝 등등) 정리 비슷한 개념에서 쓰이는 다른 용어들이 진짜 현기증날 정도로 너ㅓㅓㅓㅓㅓ무 많아서 이번기회에 정리를 한번 해보려 한다. 작은 개념에서부터 파고 들어가보자. 프로비저닝(Provisioning) 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다. 서버 자원 프로비저닝, OS 프로비저닝, 소프트웨어 프로비저닝, 스토리지 프로비저닝, 계정 프로비저닝 등이 있다. 그러니까 IT인프라를 설정하는 프로세스 그 자체를 의미하는데 우리가 AWS에서 EC2 인스턴스를 만들 때 AWS는 우리가 사용할 EC2 Instance에 대..
[백준/1149/파이썬] RGB거리 문제 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1번 집의 색과 같지 않아야 한다. i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다. 입력 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다...
네 자료형을 관성적으로 쓰고 있었는데 확실하게 짚고 넘어가야할 것 같다. 네 자료형의 공통점과 차이점들이 서로 엮여있기 때문에 다른 사람들이 정리한 여러가지 자료를 봐도 잘 기억에 남지가 않으니까 최대한 한눈에 쉽게 알아볼 수 있게 정리해봤다. 범례 리스트 (List) 튜플 (Tuple) 셋 (Set) 딕셔너리(Dictionary) 선언 [] or list() () or tuple() {} or set() {k: v} or dict(a=1, b=2) 중복 허용 O O X Key는 중복 안됨. Value는 중복 가능. 인덱스로 값 불러오기 O O X Key로 불러와야 함 수정 가능 여부 O X O Value 수정 가능 For문 동작 여부 O O O O 같은 자료형 연산 +로 붙이기 가능 +로 붙이기 가능 ..