728x90

전체 글 374

[Django] URLs와 Views (App 생성/등록하기)

▶App 생성 사이트에서 어디로 이동하면 '/' 뒤에 다른 뭔가가 붙는다. 각각 하나가 App이라고 생각해도 될 거 같다. (내 추측) App 생성 django-admin startapp 프로젝트를 생성한 곳에서 manage.py가 있는 위치로 이동한다. 그다음에 위 코드를 입력하면 app이 생성된다. App 패키지 구성 models.py : entity를 위한 파일 views.py : controller 역할을 하는 파일 Project 폴더 생성 패키기 구성 settings.py : 환경 설정과 관련된 파일 (앱 등록을 위해 쓰인다.) urls.py : request가 들어오는 url과 view를 연결해 주는 파일 ▶App 등록 해당 코드를 이용해 app을 만들면 앱을 등록해야 한다. 처음 생성한 pr..

Back-End 2023.05.02

[Django] SECRET_KEY 암호화 (github commit시 주의)

처음에 만들었던 project를 아무 생각 없이 github에 올렸다. 그냥 서버 여는 것만 해서 secret_key가 있다고 생각은 못했는데, Django에서 secret_key가 노출됐다고 메일이 왔다. secret_key가 노출되면 나중에 AWS를 이용해 실제 서버를 열고 배포했을 때, 잘못하면 요금 폭탄을 맞을 수 있다고 한다. 그래서 암호화하는 방법을 알아봤다. ▶secret_key값 분리하기 1. secrets.json setting.py에 있는 secret_key값을 secret.json에 빼주기로 했다. manage.py와 동일한 위치에 secret.json파일을 생성해 주고 아래 코드를 입력한다. { "SECRET_KEY": "" } 2. setting.py 그리고 setting.py도 ..

Back-End 2023.05.02

[Django] VScode 장고 시작 (가상환경 venv)

파이썬 웹프레임워크 Django를 써보려고 한다. 내가 공부하면서 느낀 모든 과정을 쓰고 필요할 때 다시 보고자 한다. 항상 VScode를 이용해서 python 프로젝트를 진행해서, 이번에도 vsc로 진행했다. ▶Visual Studio Code에서 장고 실행 일단 장고를 하는 사람이면 vsc에 python이 설치되어 있을 것이다. 나 또한 설치가 되어있고, 그렇다고 가정을 하고 작성을 해보겠다. 가상환경 생성 1. 프로젝트를 실행할 폴더를 만들고, 해당 폴더를 vsc에서 열어준다. 2. 터미널을 실행해 해당 코드를 입력해 준다. python -m venv djangovenv 해당 코드를 터미널에 입력하면 아래와 같이 폴더와 파일이 생성된다. 3. F1 → Select Interpreter 검색 → Py..

Back-End 2023.05.02

[백준/BOJ] gold4 - 13913번 숨바꼭질4 (Python)

▶13913 - 숨바꼭질4 ▶문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. ▶입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. ▶출력 첫째 줄에 수빈이가 동생을 찾는 가장 빠른 시간을 출력한다. 둘째 줄에 어떻게 이동해야..

BOJ Code/Gold 2023.04.27

[백준/BOJ] gold4 - 14226번 이모티콘 (Python)

▶14226 - 이모티 ▶문제 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만들어 보려고 한다. 화면에 있는 이모티콘을 모두 복사해서 클립보드에 저장한다. 클립보드에 있는 모든 이모티콘을 화면에 붙여 넣기 한다. 화면에 있는 이모티콘 중 하나를 삭제한다. 모든 연산은 1초가 걸린다. 또, 클립보드에 이모티콘을 복사하면 이전에 클립보드에 있던 내용은 덮어쓰기가 된다. 클립보드가 비어있는 상태에는 붙여 넣기를 할 수 없으며, 일부만 클립보드에 복사할 수는 없다. 또한, 클립보드에 있는 이모티콘 중 일부를 삭제할 수 없다. 화면에 이모티콘을 붙여 넣기 하면, 클립보드에..

BOJ Code/Gold 2023.04.25

[백준/BOJ] gold5 - 16928번 뱀과 사다리 게임 (Python)

▶16928 - 뱀과 사다리 게임 ▶문제 뱀과 사다리 게임을 즐겨하는 큐브러버는 어느 날 궁금한 점이 생겼다. 주사위를 조작해 내가 원하는 수가 나오게 만들 수 있다면, 최소 몇 번만에 도착점에 도착할 수 있을까? 게임은 정육면체 주사위를 사용하며, 주사위의 각 면에는 1부터 6까지 수가 하나씩 적혀있다. 게임은 크기가 10 × 10이고, 총 100개의 칸으로 나누어져 있는 보드판에서 진행된다. 보드판에는 1부터 100까지 수가 하나씩 순서대로 적혀 있다. 플레이어는 주사위를 굴려 나온 수만큼 이동해야 한다. 예를 들어, 플레이어가 i번 칸에 있고, 주사위를 굴려 나온 수가 4라면, i+4번 칸으로 이동해야 한다. 만약 주사위를 굴린 결과가 100번 칸을 넘어간다면 이동할 수 없다. 도착한 칸이 사다리면..

BOJ Code/Gold 2023.04.24

[해외축구] UEFA 챔피언스리그 4강 진출팀 (+ 일정)

챔피언스리그 8강 1, 2차전 경기가 모두 끝이 났다. 8강 시작하기 전에 예측했던 3팀이 4강에 갔고, 1차전 이후에 예측했던 4팀 모두 4강에 진출했다. 4강은 생각보다 재미있게 흘러갈 것 같다. 그럼 4강에 진출했던 레알마드리드, 맨체스터 시티, AC밀란, 인테르 8강 경기를 살펴보자. ▶맨체스터 시티 vs 바이에른 뮌헨 1차전 3대 0 (맨시티 승) 2차전 1대 1 (무승부) 1차전에서 3골 차로 이긴 맨시티는 2차전을 더욱 편하게 할 수 있었다. 1, 2골 차였다면 경기가 어떻게 흘러갔을지 몰랐겠지만, 3골 차라 무난하게 맨시티가 4강에 진출할 것 같았다. 게다가 선취골도 맨시티가 먼저 넣었다. 홀란드, 그는 도대체 어떤 사람인가... 멀티골이 아닌 단 한골이지만, 이번 경기에서도 골을 기록했다..

[인공지능] 1, 2장. 인공지능 (1, 2장 볼만한 내용)

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶1.5.2 규칙 기반 방법론 vs 기계학습 방법론 규칙 기반 방법론 - 사람이 사용하는 규칙을 수집해 프로그래밍 - ex) 필기 숫자 인식 프로그램 - 숫자 3은 '왼쪽에서 보면 위와 아래에 터진골이 있다. 등...'와 같은 규칙을 수집한다. - 한계 노출 - 비슷한 모양을 가진 데이터에 대해 규칙을 위반하는 샘플이 꾸준히 발생한다. 기계학습 방법론 - 인공지능 초반에 규칙 기반이 대세였으나 1990년부터 기계학습으로 주도권이 이동했다. - 충분한 데이터를 수집한 다음 기계학습 모들을 학습하는 방법(데이터-주도 패러다임) - ..

[백준/BOJ] silver1 - 5525번 IOIOI (Python)

▶5525 - IOIOI ▶문제 N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 군데 포함되어 있는지 구하는 프로그램을 작성하시오. ▶입력 첫째 줄에 N이 주어진다. 둘째 줄에는 S의 길이 M이 주어지며, 셋째 줄에 S가 주어진다. ▶출력 S에 Pn이 몇 군데 포함되어 있는지 출력한다. ▶서브태스크 번호 배점 제한 1 50 N ≤ 100, M ≤ 10 000. 2 50 추가적인 제약 조건이 없다. ▶풀이 처음에는 n에 해당하는 string을 찾아서 기록한 다음, 하나씩 비교해 보았다. 통과는 ..

[백준/BOJ] silver4 - 17219번 비밀번호 찾기 (Python)

▶17219 - 비밀번호 찾기 ▶문제 2019 HEPC - MAVEN League의 "비밀번호 만들기"와 같은 방식으로 비밀번호를 만든 경민이는 한 가지 문제점을 발견하였다. 비밀번호가 랜덤으로 만들어져서 기억을 못 한다는 것이었다! 그래서 경민이는 메모장에 사이트의 주소와 비밀번호를 저장해 두기로 했다. 하지만 컴맹인 경민이는 메모장에서 찾기 기능을 활용하지 못하고 직접 눈으로 사이트의 주소와 비밀번호를 찾았다. 메모장에 저장된 사이트의 수가 늘어나면서 경민이는 비밀번호를 찾는 일에 시간을 너무 많이 쓰게 되었다. 이를 딱하게 여긴 문석이는 경민이를 위해 메모장에서 비밀번호를 찾는 프로그램을 만들기로 결심하였다! 문석이를 도와 경민이의 메모장에서 비밀번호를 찾아주는 프로그램을 만들어보자. ▶입력 첫째 ..

[인공지능] 6장. 컨볼루션 신경망과 컴퓨터 비전3

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶6.4 컨볼루션 신경망 프로그래밍 6.4.3 패션 인식 6.4.4 자연 영상 인식 딥러닝 프로그래밍에서 주로 사용하는 자연 영상 데이터베이스 - ImageNet - MSCoCo - CIFAR : 작아서 MNIST 다음에 주로 사용한다. CIFAR-10 - airplace, automobile, bird, cat, deer, dog, frog, horse, ship, truck의 10종류 - 영상은 32*32 맵으로 표현한다. CIFAR을 인식하는 컨볼루션 신경망 - CIFAR-10은 텐서 구조가 이미 (32*32*3)이어서 r..

[해외축구] UEFA 챔피언스리그 8강 1차전

뒤늦은 후기이긴 하지만 이어서 써보려고 한다. 레알 마드리드, 인테르, 맨시티, 나폴리가 4강에 진출할 것으로 예상했었다. 1차전 경기 결과만 놓고 봤을 땐 한 경기를 제외하고는 다 맞춘 셈이다. ▶맨체스터 시티 vs 바이에른 뮌헨 1차전 3대 0 (맨시티 승) 거의 미리 보는 결승과도 같은 대진이었다. 현 프리미어리그 2위와 분데스리가 1위의 맞대결. 이번 4강 1차전은 맨시티의 압승으로 끝났다. 맨시티의 홈구장인 에티하드 스타디움에서 경기가 펼쳐졌고, 로드리, 베실바, 홀란드의 골로 맨시티가 승리를 거두었다. 로드리의 원더골로 맨시티는 앞서나갈 수 있었다. 베실바의 패스를 받아서, 한 명의 선수를 제친 후 왼발슛. 강력한 슈팅으로 에티하드 스타디움을 열광하게 만들었다. 어시스트를 기록한 베실바가 홀란..

[인공지능] 6장. 컨볼루션 신경망과 컴퓨터 비전2

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶6.3 컨볼루션 신경망의 학습 컨볼루션 신경망은 커널을 학습한다. 6.3.1 손실 함수와 옵티마이저 손실 함수 - 다층 퍼셉트론과 컨볼루션 신경망은 중간층이 다르지만 입력과 출력은 동일하므로 같은 손실함수를 사용한다. 옵티마이저 - 다층 퍼셉트론은 엣지 가중치, 컨볼루션 신경망은 커널의 화소 값을 최적화한다는 점만 다르다. - 학습 원리는 동일하므로 같은 옵티마이저를 사용한다. 6.3.2 통째 학습 (End-to-End) 고전적인 컴퓨터 비전은 수작업 특징을 사용한다. - 사람의 직관으로 설계하기 때문에 어느 정도 성능 달성 ..

[인공지능] 6장. 컨볼루션 신경망과 컴퓨터 비전1

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶6.1 컨볼루션 신경망의 동기와 전개 ▶6.2 컨볼루션 신경망의 구조와 동작 6.2.1 컨볼루션 연산으로 특징 맵 추출 컨볼루션(convolution) 연산 - 특징 추출 또는 신호 변환에 사용한다. - 수용장(파란 부분)과 커널의 선형 결합이다. - z는 입력 신호, u는 커널, h는 커널의 크기 Extra. Convolution convolution - Flip the filter in both dimentions (bottom to top, right to left) - Then apply cross-correlation..

[백준/BOJ] gold4 - 9019번 DSLR (Python)

▶9019 - DSLR ▶문제 네 개의 명령어 D, S, L, R을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 저장된 n을 다음과 같이 변환한다. n의 네 자릿수를 d1, d2, d3, d4라고 하자(즉 n = ((d1 × 10 + d2) × 10 + d3) × 10 + d4라고 하자) D: D는 n을 두 배로 바꾼다. 결과 값이 9999 보다 큰 경우에는 10000으로 나눈 나머지를 취한다. 그 결과 값(2n mod 10000)을 레지스터에 저장한다. S: S는 n에서 1을 뺀 결과 n-1을 레지스터에 저장한다. n이 0이라면 9999 가 대신 레지스터에 저장된다. L: L 은..

BOJ Code/Gold 2023.04.13

[인공지능] 5장. 딥러닝과 텐서플로3

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶5.7 딥러닝이 사용하는 손실 함수 시험 점수의 역할 - 점수가 낮은 학생에게 F학점 또는 낙방과 같은 벌점을 부여하면 자신을 성찰하고 더 열심 히 공부할 동기 부여 - 점수가 낮거나 높거나 비슷한 벌점을 받으면 공정성이 깨지고 공부 의욕을 꺾는다. 신경망 학습도 비슷하다. - 신경망 가중치가 학생, 손실 함수가 시험 점수에 해당한다. 5.7.1 평균제곱오차 샘플 하나의 오류 - 레이블 y와 신경망이 예측한 값 o의 차이 - e = || y - o || ^ 2 평균제곱오차(MSE, mean-squared error) - 통계학..

[백준/BOJ] gold4 - 1261번 알고스팟 (Python)

▶1261 - 알고스팟 ▶문제 알고스팟 운영진이 모두 미로에 갇혔다. 미로는 N*M 크기이며, 총 1*1 크기의 방으로 이루어져 있다. 미로는 빈 방 또는 벽으로 이루어져 있고, 빈 방은 자유롭게 다닐 수 있지만, 벽은 부수지 않으면 이동할 수 없다. 알고스팟 운영진은 여러 명이지만, 항상 모두 같은 방에 있어야 한다. 즉, 여러 명이 다른 방에 있을 수는 없다. 어떤 방에서 이동할 수 있는 방은 상하좌우로 인접한 빈 방이다. 즉, 현재 운영진이 (x, y)에 있을 때, 이동할 수 있는 방은 (x+1, y), (x, y+1), (x-1, y), (x, y-1)이다. 단, 미로의 밖으로 이동할 수는 없다. 벽은 평소에는 이동할 수 없지만, 알고스팟의 무기 AOJ를 이용해 벽을 부수어 버릴 수 있다. 벽을 ..

BOJ Code/Gold 2023.04.12

[인공지능] 5장. 딥러닝과 텐서플로2

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶5.5 깊은 다층 퍼셉트론 다층 퍼셉트론에 은닉층을 더 많이 추가하면 깊은 다층 퍼셉트론이다. - 깊은 다층 퍼셉트론은 가장 쉽게 생각할 수 있는 딥러닝 모델이다. - 그리고 은닉층 1개만 있어도 다층 퍼셉트론이다. 5.5.1 구조와 동작 깊은 다층 퍼셉트론(DMLP - deep MLP)의 구조 - L - 1개의 은닉층이 있는 L층 신경망이다. - 입력층에 d + 1개의 노드, 출력층에 c개의 노드가 있다. - i번째 은닉층에 ni개의 노드가 있다. (ni는 하이퍼 매개변수) - 인접한 층은 완전 연결, 즉 FC(fully-c..

[백준/BOJ] gold2 - 1167번 트리의 지름 (Python)

▶1167 - 트리의 지름 ▶문제 트리의 지름이란, 트리에서 임의의 두 점 사이의 거리 중 가장 긴 것을 말한다. 트리의 지름을 구하는 프로그램을 작성하시오. ▶입력 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000) 둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 매겨져 있다. 먼저 정점 번호가 주어지고, 이어서 연결된 간선의 정보를 의미하는 정수가 두 개씩 주어지는데, 하나는 정점번호, 다른 하나는 그 정점까지의 거리이다. 예를 들어 네 번째 줄의 경우 정점 3은 정점 1과 거리가 2인 간선으로 연결되어 있고, 정점 4와는 거리가 3인 간선으로 연결되어 있는 것을 보여준다. 각 줄의 마지막에..

BOJ Code/Gold 2023.04.11

[인공지능] 5장. 딥러닝과 텐서플로1

▶5.1 딥러닝의 등장 1980년대의 깊은 신경망 - 구조적으로는 쉬운 개념이다. - 다층 퍼셉트론에 은닉층을 많이 두면 깊은 신경망 - 하지만 학습이 잘 안 된다. - 그레이디언트 소멸 문제 - 작은 데이터셋 문제 - 과다한 계산 시간 5.1.1 딥러닝의 기술 혁신 딥러닝은 새로 창안된 이론이나 원리는 빈약하다. - 신경망의 구조와 동작, 학습 알고리즘의 기본 원리는 거의 동일하다. 딥러닝의 기술 혁신 요인 - 값싼 GPU 등장 - 데이터셋 커짐 - 학습 알조리즘의 발전 - ReLU 활성 함수 - 구제 기법 - 다양한 손실 함수와 옵티마이저 개발 학술적인 측면의 혁신 사례 - 컨볼루션 신경망이 딥러닝의 가능성을 열었다. - 1990년대 LeCun은 필기 숫자에서 획기적인 성능 향상 - AlexNet은 ..

728x90