분류 전체보기

(1) 모델 수정 class Answer(models.Model): # 질문 - Answer가 Question에 연결 question = models.ForeignKey(Question, on_delete=models.CASCADE, verbose_name='질문', related_name='answers') # 답변 내용 content = models.TextField(verbose_name='내용') # 작성자 author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='작성자',related_name='answers') # 생성 시간 created_at = models.DateTimeField(default=timezone.now..
질문 답변 게시판 (1) 질문 조회 localhost:8000/questions/ -> GET요청 class QuestionViewSet(viewsets.ModelViewSet): queryset = Question.objects.all() serializer_class = QuestionSerializer # permission_classes = [permissions.IsAuthenticatedOrReadOnly] # 로그인한 사용자만 수정 가능하게 (2) 질문 생성 localhost:8000/question/ -> POST 요청 def create(self, request, *args, **kwargs): # 클라이언트로부터 받은 데이터 data = request.data # 클라이언트에서 제공한 ..
· 웹 개발
프롤로그 이 내용은 Doit! 점프 투 장고 책을 보고 공부하며 정리하는 내용이다. 서버ㆍ개발 환경 분리해야하는 이유 저번 글에서 settings.py 에서 ALLOWED_HOSTS에 서버의 고정 아이피를 입력하였는데, 이렇게 되어 버리면 개발 환경에서 localhost:8000/으로 접속을 할 수가 없다. 그렇다고 해당 칸을 비워버리면 서버가 운영이 되지 않는다. 그래서 서버환경과 개발환경을 다르게 설정해야한다. 서버ㆍ개발 환경 분리하기 (1) settings 디렉터리 생성하기 처음 장고 프로젝트에서 이렇게 준비되어 있을 것이다. settings라는 폴더를 생성하고, setting.py의 파일은 settings 폴더 안에 이동 후 "base.py"로 변경한다. 추가적으로 빈 파일 "local.py"와 ..
· 웹 개발
프롤로그 이번에 멋쟁이 사자 12기 학교 운영진을 맡게 되면서, 홈페이지를 만들어야하기에, 이것저것 준비중인데, 서버로 여는 법을 공부하면서 같이 글을 적게 되었다. 기본적으로 장고를 이용할 것이고, 그와 관련된 설명들로 나올 것이다. AWS Lightsail이란? AWS 라이트 세일은 아마존에서 운영하는 웹 서비스 특화된 클라우드 서비스이다. 월 비용 3.5달러로 굉장히 저렴한 비용에 사용할 수 있다. AWS라이트 세일 사양 메모리 : 512MB CPU : 1vCPU SSD : 20GB 트래픽 : 1TB AWS Lightail 사용하여 서버 열기 (1) 회원가입하기 https://lightsail.aws.amazon.com/ https://lightsail.aws.amazon.com/ls/webapp ..
gdb란? gdb(GNU debugger) : 리눅스의 대표적인 디버거로, 오픈소스로 개발되어 있어서 무료 설치 가능하다. 오래되었기에 다양한 플러그인이 개발되어있다. gdb 설치하기 1. VS코드실행 2. TERMINAL을 우분투로 변경 3. 리눅스 업데이트 $sudo apt-get update 4. gdb 설치 git clone https://github.com/pwndbg/pwndbg cd pwndbg ./setup.sh 5. 설치 확인 $gdb gdb 실습 1. 파일 작성 2. 디버그 확인 entry? 리눅스는 실행파일의 형식으로 ELF(Executable and Linkable Format)를 규정한다. - 헤더 : 실행에 필요한 여러 정보 - 여러 섹션 : 컴파일된 기계어 코드, 프로그램 문자..
문제 백준 2563번/실버5 문제 해석 100 * 100 큰 도화지 안에 10*10 색종이를 여러 개 붙였을 때, 색종이가 붙은 영역의 넓이를 구하는 문제이다. 단 고려해야하는 것은, 색종이를 겹치게 붙였을 경우에는 영역의 넓이는 "10*10 + 10* 10 - 겹치는 범위" 라는 것을 인지하여야한다. 문제 조건으로는 색종이의 왼쪽아래 꼭짓점의 위치가 주어지므로, 이를 이용하여 계산하여야한다. 풀이 전략 문제조건에서는 색종이의 왼쪽아래 꼭짓점의 위치를 주어진다. "10*10 + 10* 10 - 겹치는 범위"를 일일이 계산하기는 귀찮으니까, 그냥 100*100 배열을 생성하고, 색종이의 시작점에 따라 색종이의 영역에 10*10 크기만큼 영역을 표시해주는 방식으로 해보자. 문제 조건에서 색종이는 100개가 ..
문제 백준 1193번/실버5 https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 문제해설 글로 봐도 이해가 바로 가기는 할텐데, 그림같은 순서대로 갈 때, n번째에는 어떤 분수인지 출력하는 문제이다. 풀이 전략 대각선의 순서를 i라고 하자. 1번째 대각선에서는 1개, 2번째 대각선에서는 2개, 세 번째 대각선에서는 3개, i번째 대각선에서는 i개의 분수가 존재한다. 즉 i번째의 순서는 1+2+3+...(i-1) +1 부터 시작하여 1+2+3+...+i 에 끝난다. n이 몇 번째 대각선에 있는지 1부터 i까지의 합 공식 i*(i+1)/2 를 이용하여 i를 구하고, i의 시작지점, ..
문제 백준 9613번/실버4 문제 해설 GCD(Greatest Common Divisor)이란 최대공약수를 의미한다. 테스트 케이스를 입력받고 테스트 케이스만큼의 각 경우의 답을 구하는 문제인데, 각 경우는 각 수들의 모든 쌍들의 최대 공약수를 더해서 테스트 케이스마다 출력을 해줘야하는 문제이다. 풀이전략 보통 우리가 초중학교때 최대공약수를 구하는 방법에는 소인수 분해를 하여 구하는 것이었으나, 코딩테스트 쪽에서는 유클리드 호제법을 많이 사용한다고 한다. 원리같은 것은 잘 모르겠고, 두 줄 요약하자면 a에서 b를 나눴을 때 나머지가 0이면 종료 -> 몫이 최대 공약수 , 그렇지 않다면 2번으로 이동 1번에서 나온 나머지를 c라고 하였을 때, b에서 c를 나누어줌. 나머지가 0이면 종료->이때의 몫이 최대..
문제 백준 11656/실버4 https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 문제 해석 접미사 : 어근이나 단어의 뒤에 붙어서 새로운 단어를 만드는 역할 즉, 녹음기 에서 기 자와 같이 단어 뒤에 붙는 단어를 의미한다. 문제에서 baekjoon 에서 baekjoon 자체가 접미사가 될 수 있고, b 뒤에 붙는 aekjoon, ba뒤에 붙는 ekjoon 이 접미사가 될 수 있으니, 접미사가 될 수 있는 모든 경우를 사전순으로 나열하라는 문제이다. 풀이전략 결국 접미사라는 것은 어느 범위부터 끝까지라는 것이 공통으로 구해야한다..
문제 백준 1074번/실버1 https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 문제 해석 2의 몇 제곱인지 알려주는 n, 몇 번째 행인지 알려주는 r, 몇 번째 열인지 알려주는 c, 이렇게 3개를 입력받은 후, 행렬에서 해당 위치에 위치하는 수는 무엇인지 출력해야한다. 단 행렬에서 각 요소의 번호는 Z자를 그리면서 새겨지는 방식이다. 풀이 전략 N의 값이 최대 15이면 행의 길이는 2^15 = 32768, 열의 길이도 32768이다. 만..
문제 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 문제 분석 n과 m 을 입력받고 n개의 문자열이 들어있는 s집합에 m개의 다른 문자열들이 몇 개가 포함되어있는가(일치하는가)를 찾는 문제이다. 주의 해야할 점은 N의 범위는 최대 10000개, M의 범위도 최대 10000개 이므로, 둘 다 반복성이 있는 리스트 또는 튜플을 이용하게 된다면 M의 마지막 단어가 N에 포함되어 있지 않은 경우 이미 10000번째 까..
문제 문제분석 에라토스테네스의 체는 한참 알고리즘 공부할 때 소수 구하는 문제 부분에서 나왔었다. 2부터 시작하여, 2는 실수이므로 2를 제외한 2의 배수들은 모두 제거한다. 2보다 큰 숫자인 3도 실수이므로, 3을 제외한 3의 배수인 모든 뒤쪽의 수들을 전부 지운다. 다음 4는 이미 지워져있으므로 넘어가고, 5는 소수이므로 5를 제외한 모든 배수들을 지운다. 이를 반복하여 소수들을 구하는 것이 에라토스테네스의 체이다. 이도 마찬가지인데, 범위는 n, k를 입력받았을 때 n까지로 정해져있고, k번째로 지워진 수를 구하는 것이고 n의 수가 1000 보다 작으므로 이중포문으로 돌려도 충분한 자원으로 프로그램을 실행시킬 수 있을 것이다. 풀이 전략 이 중 for문 두 번 돌리면서 미리 선언된 배열에서 조건을 ..
성밍쟁
'분류 전체보기' 카테고리의 글 목록 (14 Page)