프로그래밍

프로그래밍/Spring

[Spring] 게시판 서비스 #3. 유스케이스 작성

🙋‍♀️ 유스케이스 다이어그램 어떤 시스템이나 서비스를 설계할 때, 전체적인 사용자의 이용 패턴을 문서화 해둔 것 ⛺깃허브 draw.io 연동 1. draw.io 깃허브 연동 2. 깃 크라켄에서 저장소 내에 document 폴더 생성 ◾ draw.io 에서 생성한 유스케이스를 저장소 내에 업로드하기 위해, boar-project 저장소 연결 ◾ 현재 board-project 저장소 안에는 README 파일만 존재하기 때문에 document 폴더 생성 mkdir document ◾ 깃 크라켄에서 생성한 document 폴더 안에 파일이 하나도 없기 때문에 아직 push가 안되는 상태 ◾ 따라서, 폴더 내에 빈 파일을 생성해주고 push 해줘야 함 3. 폴더 내에 파일 생성 ◾ 리눅스가 아니기 때문에 윈도우..

프로그래밍/Spring

[Spring] 게시판 서비스 #2. 깃 브랜치 전략 세우기

🙋‍♀️ 깃 브랜치를 운영하는 방법론 깃 브랜치란 브랜치를 운영하는 일종의 방법 협업환경에서 규칙을 만들고 매끄럽게 협업하고자함 1️⃣ gitflow : master, develop, feature, release, hotfix 브랜치를 설정하고 운영하는 방식 💡 브랜치 설명 ◾ master - 프러덕션 레디 상태, 제품으로 나갈 수 있는 상태 소스 코드 ◾ develop - 개발자들이 이 브랜치 기준으로 각자 작업한 기능들을 merge ◾ feature - 개발자들이 개개인 개발을 하기 위해 사용하는 브랜치 ◾ release - QA, 버그 수정 과정 중 내보내기 직전에 사용하는 소스 코드 브랜치 ◾ hotfix - 서비스 운영 중에 버그나 급하게 대응해야하는 이슈가 발생할 때 사용하는 브랜치 2️⃣ ..

프로그래밍/Spring

[Spring] 게시판 서비스 #1. 프로젝트 기획

🌎 개발 환경 IDE : Intellij IDEA Ultimate 2022.1 언어 : java 17 프레임워크 : Spring boot 2.7.0 빌드 도구 : gradle 7.4.1 Git GUI : GitKraken 🙋‍♀️ 개발 목적 누구나 이해하기 쉬운 소재로 명확한 기능 요구사항 만들기 요구사항을 구현하는데 도움이 되는 각종 문서 작업 경험 java + spring boot로 프로젝트 요구사항을 실제로 구현하는 기술적인 방법 익히기 새로운 문제를 직면하고 해결하는 방법 확인 기획과 문서 작성부터 개발, 형상관리, 테스트, 배포까지 개발 프로세스 전반을 경험 🚀 테스트와 배포 테스트 1️⃣ 개발 요구사항이 빠짐없이 모두 구현되는가 2️⃣ 구현된 요구사항이 오류없이 동작하는가 ◾ JUnit 5.8..

프로그래밍/django

[Django] render vs redirect

render render(request, template_name, context=None, content_type=None, status=None, using=None) request template_name : 불러오고 싶은 html 파일 작성 (ex. 'create.html') ➡ 화면에 html 파일을 띄운다고 생각하면 쉽다. context : 원하는 인자와 함께 html에 리턴 하고 싶은 dictionary 지정 즉, view에서 사용하던 파이썬 변수를 html 템플릿으로 넘길 수 있음 (ex. {'message':message, 'form':form}) ➡ 딕셔너리형으로 사용 'key' : 템플릿에서 사용할 변수 이름 'value' : 변수 redirect redirect(to, *args, ..

프로그래밍/백준

# 시간초과 해결 방법

그리디 알고리즘을 풀다가 너무 막혀서 잠시 그리디 알고리즘을 멈추고, 정렬에 대해 공부를 하고 있다. 오름차순, 내림차순 등은 알겠는데 백준 정렬 알고리즘을 풀다보니 반복문에서 여러개 값을 입력받는데에서 input() 방식을 사용하다 보니 시간초과가 발생하였다. 이러한 문제점들을 검색해보니, 값을 많이 입력받지 않는 경우라면 input()함수를 사용해도 되지만 반복문을 이용해 값을 여러개 입력 받는 경우에는 시간초과가 발생하기 때문에 sys.stdin.readline()함수를 사용해야된다고한다. 한 개의 정수를 입력받을 때 import sys a = int(sys.stdin.readline()) 정해진 개수의 정수를 한줄에 입력받을 때 impor..

프로그래밍/백준

# 11399 - ATM (그리디 알고리즘)

문제 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 입력 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) 출력 첫째 줄에 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 출력한다. 이 문제는 생각보다 괜찮았다. ① 먼저, n (n명의 사람) 과 n명의 사람들이 돈을 인출하는데 걸리는 시간을 입력받아야 한다. # n명의 사람 n = int(input()) # n명당 걸리는 시간 리스트 추가 time = list(map(..

프로그래밍/백준

# 11047 - 동전0 (그리디 알고리즘)

[ 문제 ] 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. 이 문제는 coins를 사용해서 k원을 만드는 데 필요한..

프로그래밍/Algorithm

01. 그리디 알고리즘 (1)

1. 그리디 알고리즘 그리디 알고리즘 (탐욕법)은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다. 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구한다. 그리디 해법은 그 정당성 분석이 중요하다. 단순히 가장 좋아보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토한다. [문제 상황] 루트 노드로부터 시작하여 거쳐 가는 노드 값의 합을 최대로 만들고 싶습니다. Q. 최적의 해는 무엇인가요? [문제 상황] 루트 노드로부터 시작하여 거쳐 가는 노드 값의 합을 최대로 만들고 싶습니다. Q. 단순히 매 상황에서 가장 큰 값만 고른다면 어떻게 될까요? → (5- 10 -4) 경로를 거치면 최적의 해인 21보다 낮은 값인 19가 나옴 그리디 알고리..

프로그래밍/Python

Python_08 자주 사용되는 표준 라이브러리

1. 실전에서 유용한 표준 라이브러리 내장 함수 : 기본 입출력 함수부터 정렬 함수까지 기본적인 함수들을 제공한다. 파이썬 프로그램을 작성할 때 없어서는 안 되는 필수적인 기능을 포함하고 있다. itertools : 파이썬에서 반복되는 형태의 데이터를 처리하기 위한 유용한 기능들을 제공한다. 특히 순열과 조합 라이브러리는 코딩 테스트에서 자주 사용된다. 모든 경우의 수를 고려해야 하는 경우에서 많이 활용된다. 완전 탐색 유형 문제에서 소스 코드를 간결하게 만들어준다. heapq : 힙(Heap) 자료구조를 제공한다. 일반적으로 우선순위 큐 기능을 구현하기 위해 사용된다. 최단경로 알고리즘에서 많이 활용된다. bisect : 이진 탐색(Binary Search) 기능을 제공한다. collections : ..

dbguswn
'프로그래밍' 카테고리의 글 목록 (4 Page)