장고 Formset 을 보는 예제를 보면, 다들 for iteration 하면서 개별 form에 접근하는 코드들만 있다. 난 그냥 0번째 넘을 바로 접근하고 싶은데 잘 안되서 막 찾아봄 가장 기본 예제는 아래와 같다. https://docs.djangoproject.com/en/3.2/topics/forms/formsets/ {{ formset.management_form }} {% for form in formset %} {{ form.title }} {{ form.pub_date }} {% if formset.can_delete %} {{ form.DELETE }} {% endif %} {% endfor %} 여기서 form 중에 0번째 놈을 접근하려고 formset[0] 시도 했는데 실패 forms..
Django admin에 어렵게 model을 등록해 두었는데, 관리자가 들어가서 자료를 볼때 object(id) 이런식으로 나오니깐 클릭해서 들어가기 전에 이 객체의 정보의 힌트를 볼 수 없어 답답했다. 이를 해결해 보자 아래 그림을 보자. Company Object(id) 이렇게 나오니, 실제 어떤 값이 들어 있는지는 클릭해서 들어가서 자세한 필드 내용을 봐야 안다. 여기 리스트에서 그냥 대충이라도 보고 싶은 욕구가~~~ 아주 쉽게 해결이 되었다. models.py에 선언하면서 __str__(self) 함수를 등록해 두면 되는 것이다. class Company(TimeStampedModel): name = models.CharField(max_length=255) is_deleted = models.I..
장고가 느리다는 평가가 많은데, 서비스가 커질 수록 성능에 목숨을 많이 거는 것은 맞다. 이 대단한 Django가 그냥 쳐다보고 있지는 않을 것 같다. 여러가지 cache 기법을 사용해서 속도나 성능을 키워보자. 현재 듣고 있는 장고 강의에 소스에 포함된 내용을 공부할 겸 추려본다 - Django 실전 프로젝트 1 - URL Shortener 서비스 ( 패스트캠퍼스 ) 아래 공식 사이트에서는 여러가지 방법이 소개가 되어 있다. https://docs.djangoproject.com/en/3.2/topics/cache/ Django’s cache framework | Django documentation | Django Django The web framework for perfectionists with..
Vue.JS Delimiters 를 기본적으로 {{ }} 이걸 많이 쓴다고 하는데, 이건 다른 곳에서도 쓰이는 표기라, 중복으로 사용되면 무엇인 적용될 지 잘 모르겠죠 그래서 일단 편한것으로 바꿔서 사용해 보자. 현재 듣고 있는 장고 강의에 소스에 포함된 내용을 공부할 겸 추려본다 - Django 실전 프로젝트 1 - URL Shortener 서비스 ( 패스트캠퍼스 ) 아래 코드는 delimiters 를 [[ ]] 형태로 변경해서 사용하는 예제이다. 코드상에서 id="vue_div" 로 선언된 부분에서는 jinja2 같은 어떤 템플릿 베이스 엔진이 동작하더라도 여기에 정의한 대로 [[ ]] 로 쓰이는 변수, 문장들은 vue.js 껏으로 이해해서 동작이 된다. 간단하지만, 일단 나 같은 초보자들은 일단 알..
장고에서 ORM 을 사용하는 경우 Model 을 만들면 Class 객체 하나를 테이블로 만들어 버리게 된다. 그냥 추상 클래스로 상속해서 쓰게 하려는 경우 낭패가 된다 이때 사용하는 키워드가 Meta 라는 것이 있네. from Django 실전 프로젝트 1 - URL Shortener 서비스 ( 패스트캠퍼스 ) class 내에 "class Meta:" 라는 것을 하나 더 두고 abstract = True 로 속성을 설정하면, 이 class 는 DB 테이블로 변환되지 않고 상속에 쓸 수 있는 class 로 남겨둔다. 즉, TimeStampModel 에 보면 "updated_at" "created_at" 이라는 필드가 다른 테이블에 거의 공통으로 사용되고 있어 이 부분을 한 곳에 정리해 두고 상속해서 쓰도록..
실제 서비스를 개발 하려면 필수적으로 2가지 작업을 해야 한다는 것 같다. 데이터 플로우 작성과 유저 시나리오 작성 머 대충 개발하면서 정리해 나가면 된다고 생각하는데, 많이 경험하신 분들은 이렇게 개발을 시작하나 보다. 꼭 따라 해보는 것이 여러모로 도움이 될 듯 한데 (ㅋㅋㅋ 하기 싫은 작업들이네) 암튼 조은씨의 실무 강의에서 설명된 부분은 몇가지 추려 보면 - from 조은의 프론트엔드 실무 가이드 : 요구사항 분석과 적정 기술 우선 데이터 플로우 Data Flow 판서 내용 서비스라면 인증 방식을 정해야 하고, 인증이 되냐 안되냐에 따라 다른 뷰를 보일 수 있으니 분리하고 데이터가 내부 데이터 인지 외부 데이터 인지 판단해서 구분해 두는 것도 중요하다. 여기서 내부 데이터라 함은 그냥 프로젝트 빌..
프론트엔드 개발자가 알아야 하는 구조들 설명 from 조은의 프론트엔드 실무 가이드 : 요구사항 분석과 적정 기술 3가지 정도만 알면 된다고 하시네. 내용은 평이한데 이 구조대로 설계해서 구현하는 것은 별개의 이슈이다 MSA - 마이크로 서비스 아키텍쳐 많이 들어 보던 용어 그냥 서비스를 각각 기능에 맞춰서 작게 쪼개서 작성하자. Micro Frontends 프론트엔드도 MSA 처럼 각각 서비스별로 구현해 두고 iframe 이나 모노레포 방식으로 활용하자. 개념은 비슷한 것이다. 쪼갠다고 무조건 좋은가? 결국 서비스는 모아서 보여지는 것인데 결국 공급자의 고민이 여기에서 많이 되어야 한다. API Gateway 유사하지만, 서비스의 일부 로직, 혹은 데이터 변환, 데이터 정제 필터링 등의 기능을 제공해 ..
렌더링의 마지막 기법으로 SSG 정적 사이트 생성기에 대한 내용을 알아보자. 이 부분은 머 지킬이니 강의에서 언급되는 Gastby 등 여러가지 정적 사이트 생성기 엔진을 알고 있어 어려운 개념은 아니다. 아주 익숙한다. 빌드 당시에 페이지를 만들어 아예 정적 html 페이지 결과를 그냥 올려두고 가져가는 형태이니 Runtime 이라기 보다는 Compile time 빌드라고 생각하면 쉽다. 강의 노트 겸 판서 결과 스샷은 아래를 참고하고, CDN 서비스 등에는 이 방법이 가장 최적화된 방법으로 생각된다. 물론 실행시에 먼가 데이터를 가져오거나 변경해야 한다면 이 방식은 사용할 수 없다. 특정 고정된 콘텐츠의 경우에는 이 방법이 가장 효율적인 방법일 것이다. Gastby 말고 SSR에서 언급한 Next.JS..
이제 서버사이드 렌더링 SSR 에 대해서 간략하게 들은 것을 정리해보자 - from 조은의 프론트엔드 실무 가이드 : 요구사항 분석과 적정 기술 이것도 용어에 적힌 대로 이해하면 된다. 서버쪽에서 렌더링을 해서 html을 내려 보내주므로 클라이언트에서 리소스를 할당해서 렌더링을 할 필요가 없다는 것. 일반적으로 서버의 성능이 아주 빠르므로, 렌더링을 강한쪽에서 해주고 결과만 내려줘서 뿌려주는 역할을 하게 해서 일을 분산 시킬 수 있다는 것이다. 여기에 쓰이는 기술로 소개한 것이 Next.JS 자세한 내용은 더 알아보도록 하고, 이것 말고도 서버사이드에서 렌더링 할 수 있도록 하는 기법으로 - hydrate - React DOM - serverside rendering keyword 가 있다나 머라나 (왜..