전체 글 (24) 썸네일형 리스트형 DRF serializer test code - max_length serializer의 max_length도 테스트해야 할 것 같아서 작성했습니다. 기능상 할 이유가 없을 것 같았지만, 협업을 하면서 다른 팀원이 max_length를 변경하는 경우가 있을 것 같아서 넣었습니다. 실제로 테스트를 실행하는 커맨드는 'python manage.py test app name.directory.file'입니다. from django.test import TestCase from ...serializer.user_serializers import UserUpdateSerializer class TestValidUserUpdateSerializer(TestCase): def setUp(self): self.valid_data = {"last_name": "test", "first_.. 장고를 파보기로 했습니다. 서버 개발자를 하면서 항상 마음에 걸렸던 부분이 있습니다. 회사 업무에서 AWS를 자주 만지는 반면, Django, DRF를 만지는 기회가 요즘들어 적었던 부분입니다. AWS를 다루면서 FE와 BE가 어떤 아키텍처로 구성되어 있는지 큰 틀에서 알게 되었지만 비즈니스 로직 작성, 테스트 코드 작성, 로그 출력 등, 세세한 부분에서 스스로가 너무나도 부족하다는 것이 계속 마음이 걸렸습니다. 특히나 프레임워크에 대한 지식이 낮다는 생각이 머리 속에서 계속 맴돌았습니다. 프레임워크에 너무 얽매일 필요는 없다고 여러 글에서 많이 봤지만 프레임워크가 어떤식으로 돌아가는지 내부 구조를 알고 싶다는 생각이 머리에서 떠나지 않았습니다. 게다가 ChatGPT의 대중화로, 비즈니스 로직, 테스트 코드 작성 등은 어느정도 도.. ChatGPT를 사용하면서 앞으로 인생방향을 생각해봅니다. 2년자 백엔드 개발자로 일하면서 최근 회사에서 chatGPT를 본격적으로 도입하기로 했습니다. 개인적인 프로젝트를 만들때나 공부할 때에는 개인계정을 이미 사용하고 있었는데 회사에서 정식으로 회사계정과 연동해서 유료버전을 사용할 수 있게 해준다고 했습니다. 의외였던 것은 개발자뿐 만 아니라 개발자가 아닌 사원분들에게도 제공한다고 한 점입니다. 그때 "아, 세상이 바뀌고 있구나."라고 느꼈습니다. 그와 동시에 여러 유튜브와 기사를 읽으며 개발에 대한 방향, 자신의 미래도 생각하게 되었습니다. 회사 일을 하면서도 chatGPT를 사용했습니다. 설계를 할 때, 모르는 기술단어가 있을 때, 예외처리, 에러 분석, 테스트 코드...... 쓰면서 느꼈던 것은, 편리하다는 것도 있었지만 가장 먼저 두려움을 느꼈습니다... MySQL 테이블 내용 삭제 방법 비교: DELETE, DROP, TRUNCATE CREATE TABLE bigtbl1 (SELECT * FROM employees.employees);CREATE TABLE bigtbl2 (SELECT * FROM employees.employees);CREATE TABLE bigtbl3 (SELECT * FROM employees.employees);DELETE FROM bigtbl1; # 레코드를 삭제DROP TABLE bigtbl2; # 테이블을 통째로 삭제TRUNCATE TABLE bigtbl3; # 테이블의 구조는 남기고 레코드를 삭제속도를 비교하자면 DELETE FROM 이 가장 느리다.왜냐하면 DELETE FROM 은 DML(data manupulation language)로, 트랜잭션 로그를 기록하는 작업 때문에 삭제가 오래 걸린다. 수.. AWS AssumeRole, PassRole AssumeRole AssumRole하는 것으로 IAM role에 설정되어있는 권한을 맡는게 가능하다. sts:AssumeRole이라고 하는데, sts는 Security Token Service이다. 정확히는, sts를 매개로 해서 IAM Role과 같은 권한을 일시적으로 갖는 것이다. AssumRole을 수행해서 문제가 없는지 확인하고, 문제가 없으면 유저에게 3개를 부여한다. 엑세스 키, 시크릿 액세스 키, 섹션토큰. 신뢰정책: IAM Role을 맡을 수 있는 엔티티를 정의.(분류로서는 리소스 베이스 폴리시에 속한다. 신뢰관계 탭에서 확인 가능.) ex) { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Ser.. DRF credentials 메소드 사용법 credentials 메소드는 모든 후속요청에서 사용될 헤더로 세팅해준다. from rest_framework.authtoken.models import Token from rest_framework.test import APIClient # Include an appropriate `Authorization:` header on all requests. token = Token.objects.get(user__username='lauren') client = APIClient() client.credentials(HTTP_AUTHORIZATION='Token' + token.key) credentials 를 사용한 뒤의 모든 리퀘스트에는 credentials 로 설정한 헤더가 계속 유지되는데 이를 해제.. VPC IP주소 범위를 나누는 단위와 AWS 서브넷 설정 CIDR 블록 vpc의 ip주소 범위를 나누는 단위다. ip주소를 나누는 대표적인 이유는 2가지. 역할분리: 외부에 공개하는 리소스 여부를 구별한다. 예를 들어, load balancer는 외부공개가 목적이므로, 외부에서 접근할 수 있어야하는 리소스다. 반대로 DB서버는 VPC내부 서버에서의 사용을 전제로 하므로 외부에서 공개되어는 안 된다. 이러한 규칙을 리소스마다 개별적으로 할당하지 않고 리소스가 포함된 그룹 전체에 대해 할당하면 설정 누락 등을 피할 수 있다. 여기서 말하는 그룹이 서브넷이라고 할 수 있고, 서브넷 안에 속해있는 리소스들에게 외부공개냐, 내부에서만 사용할 수 있냐를 정할 수 있는 것이다. ex) public subnet, private subnet 기기분리: AWS 안에서의 물리적인 이중화(다중화.. django fixture dumpdata 장고를 통해 db의 데이터를 추출 가능하다. 터미널에서 아래의 커맨드를 사용하면 된다. python manage.py dumpdata --indent=4 --output=a/api_model.json api.model --indent 는 들여쓰기를 추가해준다. 4라고 입력하면 tab 한번에 크기가 4인 공백을 사용하게 된다. 옵션을 안주면 single line으로 dump되니까 되도록 쓰는 게 보기 편하다. --output 은 dump한 데이터를 파일로 저장할 때 사용한다. 옵션을 주지 않으면 standardout으로 출력된다. a/api_model.json 처럼 상대경로로 현재 위치에서 a 디렉토이 안에 파일이름을 지정해서 저장할 수 있다. 그리고 같은 위치에 같은 커맨드를 실행하면 파일을 덮어쓴다. .. 이전 1 2 3 다음