백준 / 3190번 / 뱀 / python 파이썬
·
Coding Test/Baekjoon
문제 : https://www.acmicpc.net/problem/3190 나의 풀이import sysfrom collections import dequeinput = sys.stdin.readlineN = int(input())K = int(input())apples = [list(map(int, input().split())) for _ in range(K)]L = int(input())rotation = [list(input().split()) for _ in range(L)]board = [[0] * N for _ in range(N)]for a, b in apples: board[a-1][b-1] = 1def bfs(start): dx = [0, 1, 0, -1] dy = [..
[Redis] Redis 이해하기
·
DB | SQL
Redis(원격 디렉터리 서버, REmote DIctionary Server)는 주로 애플리케이션 캐시 또는 빠른 응답 데이터베이스로 사용되는 오픈 소스, 인 메모리, NoSQL 키/값 저장소 인메모리 ( In-Memory )컴퓨터의 주기억장치인 RAM에 데이터를 올려서 사용하는 방법RAM에 데이터를 저장하게 되면 메모리 내부에서 처리가 되므로데이터를 저장/조회할 때 하드디스크를 오고가는 과정을 거치지 않아도 되어 속도가 빠름. 하지만 서버의 메모리 용량을 초과하는 데이터를 처리할 경우, RAM의 특성인 휘발성에 따라 데이터가 유실될 수 있음 휘발성➜ 전원이 꺼지면 가지고 있던 데이터가 사라지는 특성 기존 DB가 있는데도 Redis를 사용하는 이유?DB는 데이터를 디스크에 직접 저장(write)하기 때..
[Django] Admin 관리자 페이지 등록 / 커스터마이징 방법
·
Development & Projects
Django의 Admin은 개발자가 별도의 페이지를 구현하지 않아도 데이터베이스의 모델을 웹 UI로 쉽게 관리할 수 있게 해주는 기능입니다.관리자는 /admin/ URL로 접속하여 모델 데이터를 직접 추가·수정·삭제할 수 있습니다. 1. Admin 활성화하기1) settings.py 확인Django 프로젝트를 생성하면 이미 아래 앱이 기본적으로 들어있습니다.INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles..
[MySQL] 날짜 포맷 사용 / DATE_FORMAT
·
DB | SQL
데이터베이스에 저장된 날짜를 원하는 형태로 표시하기 위해 MySQL에서는 DATE_FORMAT() 함수를 제공합니다. 1. DATE_FORMAT 기본 문법DATE_FORMAT(date, format) date : 변환할 날짜(또는 DATETIME) 값format : 표시할 형식 문자열 (포맷 문자) 2. 자주 쓰이는 포맷 문자 포맷문자설명예시%Y4자리 연도2025%y2자리 연도25%m월 (01~12)03%c월 (1~12)3%d일 (01~31)09%e일 (1~31)9%H24시간 형식 시간 (00~23)14%h 또는 %I12시간 형식 시간 (01~12)02%i분 (00~59)45%S 또는 %s초 (00~59)09%W요일(전체)Sunday%a요일(약어)Sun%M월(전체 이름)January%b월(약어)Jan ..
Programmers / 카테고리 별 상품 개수 구하기 / MySQL
·
DB | SQL
문제: https://school.programmers.co.kr/learn/courses/30/lessons/131529?language=mysql 풀이SELECT LEFT(PRODUCT_CODE, 2) AS CATEGORY, COUNT(PRODUCT_ID) AS PRODUCTSFROM PRODUCTGROUP BY CATEGORYORDER BY CATEGORY LEFT()함수를 사용하면 왼쪽부터 지정한 수 만큼의 문자를 추출할 수 있다.LEFT(문자열 or 컬럼명, 길이)
[Django] 장고의 MVT 패턴 (Model-View-Template)
·
Development & Projects/Python
장고는 기본적으로 MVT 패턴에 따라 애플리케이션을 개발하도록 유도합니다. MVT 패턴 데이터(Model), 사용자 인터페이스(View), 데이터를 처리하는 로직(Controller)을 구분해서 한 요소가 다른 요소들에 영향을 주지 않도록 설계하는 방식을 의미합니다. 이런 방식으로 개발을 진행하면 UI 디자이너는 데이터 관리나 애플리케이션 로직에 신경 쓰지 않고도 화면 UI를 설계할 수 있고 로직이나 데이터를 설계하는 개발자도 화면 디자인은 디자이너에게 맡기고 자신의 설계 및 개발 업무에만 집중할 수 있습니다. 장고 프레임워크에서는 View를 Template, Controller를 View라고 표현하여 MVT 패턴이라고 합니다.각각의 역할은 다음과 같습니다.Model - 데이터베이스에 저장되는 데이..
Programmers / 하노이의 탑 / python 파이썬
·
Coding Test/Programmers
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12946 코드def solution(n): result = [] def hanoi(n, start, end, temp): if n == 1: result.append([start, end]) return hanoi(n-1, start, temp, end) result.append([start, end]) hanoi(n-1, temp, end, start) hanoi(n, 1, 3, 2) return result
PG사 연동하기 (토스페이먼츠 연동)
·
Study | etc
PG는 'Payment Gateway'의 준말로 '결제를 위한 관문'이란 뜻입니다. 구매자는 온라인으로 물건을 구매할 때 카드, 가상계좌, 상품권 등 다양한 결제수단을 편리하게 사용할 수 있습니다. 하지만 온라인 상점 입장에서는 직접 여러 카드사, 은행 등 결제기관과 계약하고 결제 연동을 개발하려면 큰 비용과 시간이 듭니다. 이런 번거로움을 해결하기 위해 PG사는 상점이 여러 결제기관과 데이터를 안정적으로 주고받을 수 있는 시스템을 제공합니다. 우리가 보는 대부분의 온라인 상점은 이런 방식으로 PG를 통해 구매자에게 결제를 받습니다. 많이 사용되는 토스페이먼츠의 결제는 기본적으로 아래와 같은 과정으로 진행됩니다. 결제 흐름 요약1️⃣ 결제 요청구매자가 주문 정보와 금액을 확인하고 ‘결제하기’ 버튼을 클..