본문 바로가기

분류 전체보기

(103)
[TIL 2024. 04. 24] 컴파일러와 인터프리터 | 정적타입과 동적타입 컴파일러와 인터프리터컴파일러와 인터프리터 모두 사람의 언어(프로그래밍 언어)를 0과 1로 이루어진 기계어로 변환하기 위한 것단, 컴파일이 한번에 기계어로 변환/인터프리터는 한줄씩 기계어로 변환한다는 차이 있을 뿐두 개의 장단점은 서로 크로스됨 컴파일러: 일반적으로 정적 타입 언어가 사용함 장점일단 스캔을 마치면 실행파일을 만들어 두고 계속 사용 → 실행속도가 인터프리터보다 빠름 (실행 전에 사전에 컴파일(기계어로 변환) 되어 있음)전체 코드를 검사한 후에 오류 메시지를 생성 → 프로그램 실행 전에 오류 발생 가능→상대적으로 디버깅이 어려움대부분의 플랫폼에서 실행 가능, 이식성 높음  단점초기 스캔시간이 오래 걸림 (프로그램 실행에 필요한 모든 파일을 스캔하기 ..
[TIL 2024. 04. 23] REST | RESTful API | JSON과 Dict의 차이 REST 우리가 장고를 통해 BE단에서 하는 것은 RESTful한 API를 만드는 것이다. "REST스러운 API"을 이해하기 위해서는 "REST"에 대한 이해가 선행되어야 한다. REST는 기본적으로 "웹에 대한 설계방법론"의 하나이다. 일반적으로 RESTful API에 대한 개발자들의 해석은 수렴되는 반면에 REST자체에 대한 해석은 다양하다. REST(REpresentational State Transfer의 약자)를 웹페이지의 상태(state)에 대해 유저의 행위로 상태 전이(transfer)가 일어나며, 이때 유저가 받는 상태는 특정한 표현(representational)에 의한다고 보기도 한다. 하지만 개인적으로는 이 해석으로는 REST에 대한 감이 잡히지 않아서 이리저리 찾아본 결과, RES..
[TIL 2024. 04. 22] 개념정리 가상환경이란 가상환경은 각 프로젝트마다 필요한 라이브러리, 인터프리터 등을 독립된 디렉토리에 모두 모아둔 것 : .venv나 venv가 대표적 (가상환경 생성→ 필요한 환경 세팅(pip install) 이유: 언어,라이브러리,프레임워크 등은 모두 버전변화가 있음(추가,수정,삭제 등) → 버전이 다르면 코드가 제대로 작동하지 않을 수 있음 → 사용한 툴들의 종류와 버전을 하나의 디렉토리에 모아서 가상환경으로 관리하면→버전 차이로 인한 오류방지 모듈을 모으면 라이브러리가 됨 결과 일관된 버전 환경에서 코드 실행 가능 독립적인 환경이므로 프로젝트 간 버전 충돌 및 종속성 문제 방지 2. 환경변수란 환경변수 (PATH) 는 시스템에서 파일을 찾는 기본 경로 운영체제인 os가 참조하는 변수 시스템 내에 필요한 파..
[TIL 2024. 04. 19] 개인과제 오류 수정 (3) django 기초 주차의 개인과제로 Sparta Market을 만들어보는 과정에서 발생했던 오류를 정리한 마지막 글이다. 메인 페이지인 물품 목록 리스트 페이지에 현재 로그인한 사용자의 프로필 페이지로 갈 수 있는 a태그(GET요청)를 만들어 주었는데, 어떤 때는 잘 기능했다가 어떤 때는 오류가 발생했다. 처음에는 오류가 나는 원인이 뭔지, 왜 처음에는 잘 되다가 어떤 때에는 오류가 나는지를 알지 못해서 당황스럽기도 했다. 그런데 오류가 나는 상황을 보니, 서버를 켜고 로그인된 상태에서는 애초에 오류화면이 뜨지도 않고 ,내 프로필로 이동하는 하이퍼링크가 잘 기능했다. 하지만 그렇게 이동한 프로필 페이지에서 "로그아웃" 버튼을 누르면 바로 에러화면이 떴고, 이럴 떄는 서버를 껐다가 켜도 오류가 계속됐다. ..
[TIL 2024. 04. 18] django 프로젝트시 주의점 django로 개인과제를 해보면서 프로젝트 생성 직후에 해두면 좋은 것과 이렇게 했다가 오류나서 헤맸던 것들을 미래의 나를 위해 정리해놓으려고 한다.. 일단 기본적으로 프로젝트 생성을 전후해서 챙겨야 할 사항은 다음과 같다 가상환경 생성 및 활성화 어차피 가상환경이 활성화만 되어있으면 위치는 상관없으니 프로젝트 생성하고, 그 디렉토리에 바로 가상환경을 생성하는 것을 추천해도 될 것 같다. 이번에 프로젝트 디렉토리의 상위 폴더인 django라는 이름의 dir에 가상환경을 생성했는데, git bash터미널에서 가상환경 활성화 하려고 디렉토리를 오가는게(cd ..) 너무 번거로웠다. git init과 add/commit, branch나눠서 개발하고 로컬에서 merge해서 remote로 push하기 (깃허브 3..
[TIL 2024. 04. 17] 개인과제 오류 수정 (2) 게시물 업데이트 오류 게시물 업데이트와 관련해서 urls, views, update.html(template)까지 모두 코드를 작성했는데, 게시물 상세 페이지에서 게시물 수정을 눌러도 업데이트가 제대로 되지 않는 문제가 있었다. 이럴 때 문제는 urls설계를 잘못해서 지정을 잘못했거나, view에서 template에서 render()로 넘겨주는 context의 내용이나 template에서 urls와 view로 가는 요청시에 함께 넘겨주는 인자(parameter)에 문제가 있는 경우가 있었어서 이를 위주로 다시 코드를 뜯어봤다. 역시나 view에서 template로 함께 넘겨주는 인자에 문제가 있었다. 기존에는 view함수에서 update.html로 넘겨주는 context에 'form'만 있었다. 그런데,..
[TIL 2024 04. 16] 개인과제 오류 수정 django강의를 따라가다가 발생했던 주요한 오류 수정들을 정리해본다. 댓글 삭제 url경로 댓글 삭제 기능을 만드는 과정에서 계속 NoReverseMatch Error가 발생했다. 그래서 views, article_detail.html(여기에 댓글 삭제 버튼이 있음)을 모두 봤지만 문제점을 찾지 못했다. 그러던 중에 오류 자체가 "url name을 기반으로 실제 url을 찾을 수 없다"는 것임에 미루어 urls를 시작으로 views, article_detail.html로 로직을 쭉 따라가다보니, 오류의 원인을 알 수 있었다. 오류의 원인은 url경로를 애초에 잘못 계획해서 지정했기 때문이었다.. url지정 당시에 댓글 삭제 기능도 댓글 생성 기능이랑 유사할 것이라고 생각해서 무심코 'articles//..
[TIL 2024. 04. 15] media파일 | static 파일 media 파일 media파일은 유저가 웹에 업로드한 모든 파일을 말한다. 즉, static파일이 우리 서비스가 자체적으로 가진 정적인 파일들을 의미하는 반면 media파일은 유저가 자유롭게 웹에 업로드하고 사용하는 파일이라는 점에서 차이가 있다. media파일을 사용하는 세팅은 다음과 같다 1. MEDIA_ROOT 사용자가 업로드한 파일이 저장되는 디렉토리 경로를 설정 이때 주의할 것은 업로드한 파일은 이미지로 DB에 저장되지 않고, 실제 DB에 저장되는 것은 그 파일의 (문자열)경로임 2. MEDIA_URL 개발자도구로 확인 가능 #my_first/pjt/settings.py MEDIA_URL = 'media/' MEDIA_ROOT = BASE_DIR/'media' static 파일 이름 그래도 '정..