
# 한 주를 보내며...
지난주에 이어서 fastapi와 장고를 배우고 도커까지 배웠다. 백엔드수업은 프론트와 합쳐서 어떤식으로 구조가 짜이는지 배울 수 있었다. 이전까지 스트림릿만 사용해서 백엔드와 프론트의 경계에 대해 이해가 어려웠지만 각각 어떻게 작동하는지, 흐름을 어떻게 만들지 배울 수 있었다.
2. 개선점
백엔드와 프론트엔드의 차이를 정확히 알게 되었다. 이전에는 백엔드와 프론트엔드의 기능을 구분하는게 어려웠지만 2개를 같이 배우면서 어떻게 나뉘는지 알게 되었다.
3. 학습내용 및 예제
@ 수업내용이었던 flask와 fast api를 사용해 만든 앱에 대해 정리해보았다.
```
1) 프로젝트 개요
이 프로젝트는 FastAPI와 Flask를 활용한 웹 애플리케이션으로, 백엔드와 프론트엔드가 분리된 구조
2) 아키텍처
2.1) 전체 구조
- Backend (FastAPI)
- API 서버
- RESTful API 엔드포인트 제공
- 데이터베이스 연동
- Frontend (Flask)
- 웹 서버
- 템플릿 기반 렌더링
- jQuery를 활용한 동적 기능
3) 핵심 기능 상세 분석
3.1) 사용자 인증 시스템
- 백엔드 (FastAPI)
@app.post('/api/register')
def register_user(user: RegisterRequest, db:Session=Depends(get_db)):
# 사용자 중복 체크
existing_user = db.query(User).filter(
User.username == user.username or User.email == user.email
).first()
if existing_user:
raise HTTPException(status_code=400, detail="이미 존재하는 사용자입니다.")
# 새 사용자 생성
new_user = User(
username=user.username,
email=user.email,
password=user.password
)
db.add(new_user)
db.commit()
return {"success":True, 'message':'회원가입 성공', 'user_id':new_user.id}
```
- 프론트엔드 (Flask)
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form.get('username')
email = request.form.get('email')
password = request.form.get('password')
response = requests.post('http://localhost:8000/api/register',
json={'username': username, 'email': email, 'password': password})
if response.status_code == 200:
return redirect(url_for('login'))
return render_template('register.html', error='회원가입에 실패했습니다.')
return render_template('register.html')
4. 18주차의 목표
KDT신청완료 / AWS 학습
'[ 플레이데이터 SK네트웍스 Family AI 캠프 ]' 카테고리의 다른 글
| [플레이데이터 SK네트웍스 Family AI 캠프 12기] 19주차 회고 (0) | 2025.07.06 |
|---|---|
| [플레이데이터 SK네트웍스 Family AI 캠프 12기] 18주차 회고 (0) | 2025.06.29 |
| [플레이데이터 SK네트웍스 Family AI 캠프 12기] 16주차 회고 (0) | 2025.06.16 |
| 플레이데이터 SK네트웍스 Family AI 캠프 12기] 14주차 회고 (1) | 2025.06.08 |
| [플레이데이터 SK네트웍스 Family AI 캠프 12기] 15주차 회고 (0) | 2025.06.08 |