날짜: 2025. 12. 22.주제: Jotai Persistence, JWT Customization, TypeScript Refactoring, Django DRF환경 설정 및 아키텍처프로젝트 루트와 프론트엔드 디렉터리에 각각 존재하는 .gitignore 파일을 정리하고, TypeScript 설정을 최신 표준에 맞게 수정했다..gitignore 계층화 전략:루트의 설정 파일과 프론트엔드 전용 설정 파일을 병합하지 않고 유지했다. 모듈화 된 구조를 통해 추후 프론트엔드 디렉터리의 이동이나 분리 배포 시 설정 종속성을 최소화하기 위해서였다.루트에는 IDE 및 OS 설정, 프론트엔드에는 Next.js 빌드 및 의존성 관련 설정을 분리하여 관리 효율성을 증대했다.tsconfig.json 최신화:TypeScr..
날짜: 2025. 12. 20.주제: Next.js(App Router), DRF, Design System, TypeScript백엔드 안정화 및 환경 정비개발 서버 구동 시 발생하는 경고를 제거하고, 데이터베이스 스키마와 애플리케이션 설정을 동기화했다.PK 모델 경고 해결 및 마이그레이션 (Django Settings):장고 3.2 버전 이후 권장되는 BigAutoField를 명시하여 잠재적인 ID 정수 오버플로우를 방지하고, 시스템 체크 경고를 제거하여 터미널 로그의 가독성을 확보했다.DEFAULT_AUTO_FIELD 설정 및 마이그레이션 적용을 통해 데이터베이스와 모델 구조를 일치시켰다.프론트엔드 컴포넌트 설계 및 상태 관리페이지 중심의 코드에서 컴포넌트 기반 아키텍처로 전환하여 유지보수성과 재사용..
날짜: 2025. 12. 19.주제: DRF 필터링 전략 수립, 이미지 처리 로직, 마이페이지 쿼리셋 최적화게시판 기능 고도화 (Community App Enhancement)CRUD 구현 이후 확장성과 유지보수성을 고려한 기술 스택을 도입하여 기능을 고도화했다.검색 및 필터링 전략 (Search & Filter Strategy):기술적 의사결정: 기존의 request.query_params를 하나씩 받아 if문으로 분기 처리하는 방식(Imperative)은 필드 수가 늘어날수록 뷰 로직이 비대해지는 문제가 있었다. 이를 해결하기 위해 선언적(Declarative) 방식인 django-filter와 DRF의 FilterBackend를 도입했다.구현:DjangoFilterBackend: 카테고리(categ..
작성일: 2025. 12. 17.주제: 이메일 인증 트러블 슈팅, 게시판 CRUD 구현, 그리고 커스텀 권한(Permission) 관리학교 이메일 인증 구현과 403 에러 해결지난번에 이어 simplejwt를 활용한 로그인 시스템을 구축하고, 실제 학교 이메일로 인증 코드를 발송하는 테스트를 진행했다.Google SMTP를 연동하여 메일 발송을 시도했는데, 예상치 못한 403 Forbidden (CSRF verification failed) 에러를 마주했다.문제 상황: Postman으로 이메일 전송 요청 시 CSRF 토큰이 없다며 거부당함.원인 분석: 요청을 보낸 URL이 API 엔드포인트가 아닌, Django 관리자 페이지(admin/) 주소였다. 브라우저 기반의 관리자 페이지는 CSRF 토큰 검증이 ..
날짜: 2025. 12. 16.주제: JWT 인증 시스템 구축, 개발 환경 트러블 슈팅, 게시판 데이터베이스 모델링1. JWT 로그인 시스템 구축 (Authentication)회원가입 이후 실질적인 유저 식별을 위해 로그인 시스템을 구현했다.djangorestframework-simplejwt 라이브러리를 사용하여 JWT(JSON Web Token) 발급 구조를 잡았다. 세션 대신 JWT를 선택한 이유: 추후 AWS Lambda(Serverless) 배포 환경을 고려했을 때, 서버가 상태를 저장하지 않는 Stateless 구조가 필수적이었다. React 프론트엔드 및 향후 모바일 앱 확장을 고려하여 쿠키/세션 방식보다는 헤더 기반의 토큰 방식이 CORS 및 호환성 면에서 유리하다고 판단했..
날짜: 2025. 12. 09.주제: 이메일 인증 시스템 코드 구현, URL 연결, 회원가입 API 연동이메일 인증 시스템 로직 구현회원가입 후 수행할 '학교 이메일 인증' 기능을 위한 핵심 코드를 작성했다. 아직 실제 발송 테스트 전 단계다. Serializer (users/serializers.py 생성): 기본 UserSerializer 외에 인증 데이터 검증을 위한 EmailVerificationSerializer, CheckCodeSerializer를 새로 작성했다. View (users/views.py): SendEmailVerificationView: 도메인 파싱 및 인증 코드 생성, 메일 발송 로직 작성. VerifyCodeView: 입력된 코드 검증 및 유저 권한(is_stu..
날짜: 2025. 12. 08.주제: 기술 스택 선정, 보안 설정, 회원가입 API 구현프로젝트 시작 및 스택 변경대학생 익명 커뮤니티 '메이트(Mate)' 개발을 시작했다. 핵심은 '학교 인증'을 통한 신뢰성 확보다.기술 스택은 고민 끝에 FastAPI에서 Django로 변경했다. 변경 이유: 생산성: 1인 개발이라 리소스가 부족하다. Django의 Admin 기능과 내장 Auth 시스템을 활용해 개발 속도를 확보하기 위함이다. 보안: 커뮤니티 필수인 SQL Injection, XSS 방지 처리가 기본적으로 되어 있어 안전하다. 배포: 추후 AWS Lambda(Zappa)로 서버리스 배포가 가능하므로 비용 효율성도 챙길 수 있다. 개발 환경 구축 (Monorepo)GitH..
📂파일구조 ├─📂assets - 사용할 이미지들 │ └─📂icons │ └─🖼️images(svg) │ ├─📂styles - 적용한 스타일 │ └─🖌️main.css │ └─🖌️general.css │ └─🖌️header.css │ └─🗒️index.html └─🚀app.js 기대 결과 최종 결과 주요 기능 editTodo(할 일 수정) 함수 function editTodo(index) { const $todoText = $todoList.children[index].querySelector('.todo'); const $paragraph = $todoText.querySelector('p'); const $input = document.createElement('input'); $input.type =..
📂 파일 구조 🗂️project ├─📂assets - 사용할 이미지들 │ └─🖼️images │ ├─📂styles - 적용한 스타일 │ └─🖌️bottom.css │ └─🖌️general.css │ └─🖌️header.css │ └─🗒️index.html 기대 결과 최종 결과 주요기능 transition & transform 사용하여 이미지에 마우스 호버 시 점차 확대 .main-bottom img { transition: transform 1s ease-out; } .main-bottom img:hover { transform: scale(1.4); linear-gradient를 주어 검정색 opacity를 조절하여 배경과 작품 목록 컨테이너 사이의 경계를 부드럽게 표시 background: linea..
개요 혼밥러 탈출을 위한 매칭 & 키오스크 서비스, 4인 프로젝트 프로젝트 목표 기존에 모바일에서 사용되던 학식당 주문 어플리케이션의 단점을 보완 학식당의 환경에 맞추어 학생들이 원하는 메뉴 의견 취합, 학생들이 주로 먹는 메뉴등의 서비스를 제공 추가로 학생들의 혼밥 방지를 위한 같이 식사할 학우를 매칭해주는 혼밥 방지 서비스를 제공 서비스 개발 배경 및 목적 코로나 이후 학우들간 교류가 감소하여 혼자 밥을 먹는 학우들이 증가하였습니다. 저희 팀은 이러한 문제점을 개선하고 기존 불편했던 학식당 어플을 보완하여 학우들간 가볍게 밥 한끼를 먹을 수 있도록 하는 프로젝트 입니다. 서버 백엔드에 사용된 기술은 스프링을 기반으로 스프링 데이터 JPA, QueryDSL 등이 사용되었고 MYSQL DB, 사용자 인증..
🌟 Java swing kiosk project 프로젝트 개요 소프트웨어 개발 목표 토스트 주문 시 선택할 수 있는 품목들과 추가할 수 있는 옵션들을 포함하여 고르고 총합 금액 확인과 결제까지 할 수 있는 키오스크 형태의 프로젝트를 개발할 것이다. 유사 소프트웨어 분석 버거킹 키오스크, 맥도날드 키오스크, KFC 키오스크, 메가커피 키오스크 등 첫 화면에는 이벤트 중인 상품이나 가장 대표적인 상품, 또는 신상품이 띄워져 있는 경우가 많았다. 버거킹의 경우 상단 바에 콘텐츠를 보면 스페셜 세트, 일반 세트, 햄버거류 단품, 사이드 품목, 음료 순으로 배치되어 있었다. 하단에는 주문 내역을 확인할 수 있고 개수, 금액 등 정보가 표시되어 있었다. 전체 취소 버튼과 쿠폰 사용 버튼, 결제 진행 버튼이 오른편 ..
⭐ Code [Bricks Run] //!주의!레거시 콘솔 사용 필수 //Bricks Run #include #include #include #include #define WIDTH 30 #define HEIGHT 20 #define GREEN12 #define RED14 const float AddSpeed = 0.5f; typedef struct { int x; int y; int act; }Bricks; typedef struct { int x; }Player; typedef struct { int x; } Coin; typedef struct { char name[64]; int score; }PlayerData; Bricks bricks[WIDTH]; Player player; Player pl..