전체보기

CS/자료구조 (Data Structure)

[자료구조] 1. 배열(Array)

리스트는 여러 개의 요소들을 나타내는 방식입니다. 자료구조론에서 이러한 리스트를 표현하는 밥법은 크게 두 가지로, 배열(Array)과 연결 리스트(Linked List)가 있습니다. 이번 글에서는 배열과 그 특성에 대해서 다루어보겠습니다. 배열 int arr[3] = {1, 2, 3}; 배열은 같은 데이터 타입을 가지는 요소들의 sequence(시퀀스)입니다. 배열 속에서 각 요소들은 index(인덱스)로 접근가능합니다. N의 크기를 가지는 배열에서 첫 번째 요소의 인덱스는 0, 두 번째 요소의 인덱스는 1, 이런 식으로 증가하여 N번째(마지막) 요소의 인덱스는 N-1이 됩니다. 특징과 장점 같은 데이터 타입을 가지기 때문에 배열의 각 요소는 같은 크기를 가지게 됩니다. 같은 크기를 가진다는 점 덕분에 ..

서버(Server)/장고 (Django)

[Django Basic] 1. Hello Django, Project, App

해당 글에서는 가상환경 생성, 장고 프로젝트 생성, 앱 생성을 다룰 예정입니다. 시작하기 전에, 가상환경 구성하기 본 시리즈에서는 Poetry를 이용하여 가상환경을 구성한다. 관련된 내용은 다음 포스트에 따로 정리하였다. [Django Basic] 1.2. 파이썬에서의 가상 환경 [Django Basic] 1.2. 파이썬에서의 가상 환경 devmuromi.tistory.com 장고 프로젝트 생성하기 django-admin startproject django_basic . # 만약 Poetry를 사용한다면 아래와 같이 poetry run을 이용하여 # poetry 가상환경에서 명령어를 실행할 수 있다 poetry run django-admin startproject django_basic . 만약 Poet..

서버(Server)/장고 (Django)

[Django Basic] 0. Django Basic을 시작하며

나는 보통 백엔드 개발 시에 Django와 DRF를 주로 사용하는데, 이에 대해서 사실 그냥 덕지덕지 배운 느낌으로 사용하고 있어서, 시간을 내서 Django와 DRF의 기능들에 대해 세세하게 파보기 위하여 Django Basic과 DRF Basic 시리즈를 작성하기로 결심했다. 우선 장고를 어떤 방식으로 찾아보고, 어떻게 글을 써갈지 조금 고민을 했다. Django Tutorial을 따라가며 글을 쓴다면 다음과 같은 시리즈가 나올 것이다. Create project, create app, write views and urls, url path arguments INSTALLED_APPS, Create models, activate models, Django admin Templete, HttpRespo..

CS/자료구조 (Data Structure)

[자료구조] 0. 자료구조 시작에 앞서

지난 학기에는 학교에서 자료구조를 수강했었다. 흔히 컴퓨터공학 6대 과목을 자료구조, 알고리즘, 컴퓨터 구조론, OS, 컴퓨터 네트워크, 데이터베이스 이렇게 6가지를 말하곤 한다. 그중 처음 듣는 과목인 자료구조였던 만큼 제대로 된 전공공부를 해보게 된다 라는 느낌으로 수강하였다. 사실 자료구조의 대부분은 따로 커리큘럼을 따라 배운것은 아니지만, 그때그때 배웠던 지식으로 알고 있었기에 대부분 수업을 복습하는 느낌으로 듣게 되었다. 그러나 원래 잘 확실히 이해하지 못했던 Priority Queue와 Heap의 관계를 ADT와 Implemantation의 관계라는 것을 이해할 수 있었고, AVL Tree를 직접 구현해보기도 하고, 여러 자료구조들을 수학적으로 따져보기도 하는 과정도 새로웠다. 또한 그래프 구..

회고 & 기록

카카오 로그인후 기존페이지로 복귀 시도기

최근에 카카오 로그인을 Django에서 REST API를 이용하여 구현해 보았다.카카오 로그인은 다음과 같은 과정으로 진행된다. 카카오 웹사이트로 사용자를 리다이렉트 -> 사용자가 로그인하면 인가코드와 함께 미리 지정한 Redirect URI로 302 Redirect -> 받은 인가코드를 통해 토큰 받기 이러한 방법을 시도하며 마주한 문제점은, 바로 리다이렉트 되는 사이트가 제한되어 있다는 것이었다. 다시 돌아올(리다이렉트)될 사이트는 아래와 같은 쿼리스트링으로 전달하기에 단지 쿼리스트링에 돌아올 사이트의 값을 바꿔주면 되지 않나? 싶긴 하다.https://kauth.kakao.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&r..

서버(Server)/장고 (Django)

Django SECRET_KEY 새로 생성하기

장고에서 SECRET_KEY는 보안상 중요하고 외부에 유출되면 안되는 값이다. 그렇기에 새로 SECRET_KEY를 생성해야 하는 일이 있는데, 이럴때 외부에서 제공하는 웹사이트에서 생성하자니 보안의 우려가 있고, 또 무작위로 써넣기도 애매하다. 그러나 장고에서는 SECRET_KEY를 생성하는 기능을 포함해 두었다. 방법은 다음과 같다. python manage.py shell 위와 같이 shell을 실행해준다. from django.core.management.utils import get_random_secret_key get_random_secret_key() 다음과 같이 함수를 실행해주면 무작위 SECRET_KEY를 얻을 수 있다.

Troubleshooting

Django, Docker-compose 에서 .env 적용 안되는 문제

장고 프로젝트를 도커로 배포하며 환경변수가 적용되지 않는 문제를 겪었습니다. 이 상황당시의 코드 상황은 대략 다음과 같았습니다. # docker-compose.yml version: "3" services: django: build: . ports: - 80:80 env_file: - web.env volumes: - ./static:/staticfiles command: gunicorn config.wsgi --bind 0.0.0.0:80 # Dockerfile FROM python:3.10 ENV PYTHONUNBUFFERED=0 WORKDIR /web COPY ./requirements.txt /web RUN pip3 install --upgrade pip RUN pip3 install -r req..

기타 (Other)

LF vs CRLF

LF와 CRLF 중 어떤 것을 사용해야 할까요? 결론부터 말하자면, LF를 사용해야 합니다. LF, CRLF LF와 CRLF에 대해 알아보게 된 계기는 이전에 git을 사용하여 협업을 진행할 때 CRLF와 LF로 인해 코드 충돌이 일어났었을때 찾아보게 되었습니다. CR은 캐리지 리턴(Carriage Return)을 의미하며, LF는 라인 피드(Line Feed)를 의미합니다. 보통 우리가 '\n'으로 표시하여 문자열 출력 시 줄바꿈을 표현하는 것이 바로 LF입니다. 또한, CR은 '\r'로 커서를 맨 앞으로 이동시키는 역할을 합니다. 그렇다면 LF와 CRLF의 차이는 무엇일까요? 두 개는 모두 줄바꿈을 표현하는 것을 의미합니다. 그러나 운영 체제에 따라 줄바꿈을 나타내는 표준이 다릅니다. LF: Linu..

기타 (Other)

AWS CodeWhisperer 사용기

최근에 Github Copilot 무료 사용이 만료되었습니다. 다시 Github Edu로 어찌어찌 연장해보려 하다가 귀찮아져서, 이전에 AWS의 코드 도우미가 개인용으로 무료로 제공된다는 소식을 들어본적이 있어서 사용해보기로 결심했습니다. AWS CodeWhisperer https://docs.aws.amazon.com/codewhisperer/latest/userguide/whisper-setup-indv-devs.html Setting up CodeWhisperer for individual developers - CodeWhisperer In order to use CodeWhisperer, all individual developers must sign up through the procedure..

하나도 안 중요함

githubpage dependency

보호되어 있는 글입니다.

Muromi
'분류 전체보기' 카테고리의 글 목록 (7 Page)