본문 바로가기

전체 글18

문자 sms 인증 + db 활용 고민 내가 구현해야 할 것문자인증 시 들어오는 값은 [국가번호 + 전화번호]국가번호는 3개 중 하나로 파싱 후 이에 따라 국적 분류해야함문자인증 연결은 1. 회원가입 2. 전화번호 수정mysql에 sms_code 속성 추가한 후 이를 저장한 뒤, 비교해서 같은 값이면 인증 성공 (시간 초과 시 실패)인증 다시 할 때마다 db에 있는 값 갱신1. sms 인증 코드 구현 (mysql 코드 저장 포함)2. 국가번호 파싱 -> 국가 저장 포함 -> sms 인증 연결  1. [국가번호 + 전화번호] 파싱// 국가 번호별 국적 매핑public static final Map COUNTRY_NATIONALITY_MAP = Map.of( "+82", "South Korea", // 대한민국 "+1".. 2025. 3. 10.
AWS 로드밸런서 unhealth 발생했을 때 대처법 항상 같은 방법으로 AWS 배포하다 새롭게 마주한 문제들 항상 같은 방법:EC2 / Route 53로 도메인 연결 / AWS Certificate Manager로 인증서 발급 / 로드밸런서와 Route 53 연결 (타겟 그룹 설정) + RDS 새로 마주한 문제1. 배포 후 503 에러 (배포 실패)2. 연결한 것 삭제 후 502 에러 3. AWS Certificate Manager 인증서 발급 무한 로딩4. 로드밸런서 Health Check "Unhealthy" (부적격) 여러 가지 기능들이 엮여있기에, 독립적인 문제가 아닌 연결된 문제였다. 산 넘어 산이었다는 뜻이다.. 1번은 배포 과정 중 문제가 있던 것이고 (아마)2번은 로드밸런서의 포트를 여는 것에서 문제가 있었던 것이다. (이것도 아마) 3번은.. 2025. 1. 19.
모델링과 마이그레이션 (3) 2.4 마이그레이션장고에서 모델링하면 SQL(DDL)로 해당 모델 기반의 플랜을 작성해줌DDL (데이터 정의어)SQL 중에서 데이터베이스를 정의하는 문법CREATE, ALTER, DROP, TRUNCATE 등장고에서는 이 작업을 마이그레이션 또는 DB 마이그레이션이라고 부름장고에서는 DB 마이그레이션을 하기 위한 다음과 같은 명령어를 제공마이그레이션컴퓨터 분야에서는 보통 시스템의 변화 또는 시스템의 이동을 의미데이터베이스의 구조 변화를 의미데이터베이스가 가지고 있는 데이터에 일괄적인 변화를 주는 작업ex. 2년 이상 로그인하지 않은 회원을 휴면 계정으로 처리하는 데이터 마이그레이션종류python manage.py makemigrationspython manage.py sqlmigrate study_exa.. 2025. 1. 17.
모델링과 마이그레이션 (2) 2.3 장고의 필드모델링할 때 가장 자주 쓰이는 필드를 사전식으로 정리할 것. 역시 암기하지 않는 것을 추천한다.2.3.1 Primary Key 관련 필드장고 모델로 생성되는 테이블을 primary key를 반드시 가지도록 설계되어 있음지정하지 않으면, 장고가 알아서 primary_key=True 옵션을 가지는 필드를 생성암묵적으로 생성되는 필드라서 직접 선언할 일은 거의 없지만 장고 내부에 이러한 필드가 생성됨AutoField파이썬 자료형: int데이터베이스 자료형: intclass DjangoModel(Model): id = models.AutoField( auto_created=True, primary_key=Ture, serialize=False, verbose_name='ID', ).. 2025. 1. 15.
모델링과 마이그레이션 (1) 외우기 보다는 참고의 내용으로 읽어보고 이러한 개념이 있다는 것을 알아두는 것에 의의를 두는 것을 추천한다. 2.1 ER 모델링2.1.1 주소주소 모델링 A: 주소를 문자열 형태의 데이터로 본 관점from django.db import models ... address = models.CharField(max_length=256, blank=False)주소 모델링 B: 여러 문자열 형태의 데이터를 모아 만든 객체로 본 관점from django.db import models class Address(models.Model): si = models.CharField(max_length=32) do = models.charField(max_length=32) gu = models.charField(max_le.. 2025. 1. 15.
장고에 대하여 1.1 웹 프로그래밍과 백엔드 프로그래밍웹 프로그래밍: 서버와 클라이언트 개발을 분리하지 않고 양쪽 개발을 한 번에 하는 개발 방식SPA (single page application): 하나의 페이지만 존재하는 웹 애플리케이션웹의 각 페이지마다 HTML 파일이 별도로 존재하고 페이지를 이동하면 브라우저에서 해당 페이지의 HTML을 받아와서 화면에 표시해주는 원리요즘은 웹 프로그래밍 방식이 아닌 분업화된 방식을 주로 사용1.2 장고 MTV 아키텍처: 템플릿의 한계MTV: Model / Template / View → 장고의 모듈과 매핑됨Modelfrom django.db import modelsclass AModel(models.Model); ....Templatehtml lang="en">....View.. 2025. 1. 7.