본문 바로가기

분류 전체보기68

[Swift + Supabase] 인증, 약관 동의 구현 1. Supabase 특징PostgreSQL 기반의 데이터베이스Row Level Security (RLS) 정책을 통한 유저 권한 관리REST, OAuth, Log 등 백엔드의 기능을 기본적으로 제공하여 별도의 서버 필요 X 사용 문서가 정말 잘 되어 있어 빠르게 학습 가능 2. Swift 1. Client 초기화class SupabaseManager { static let shared = SupabaseManager() let supabase: SupabaseClient private init() { let supabaseUrl = URL(string: Bundle.main.object(forInfoDictionaryKey: "SUPABASE_URL") as! String.. 2025. 5. 5.
[React] 상태(state), props, 이벤트 처리 1. State - 컴포넌트 내부에서 변하는 값컴포넌트 안에서 바뀌는 데이터 import { useState } from 'react';function Counter() { const [count, setCount] = useState(0); // count가 상태 return ( 현재 숫자: {count} setCount(count + 1)}>증가 );}useState(0) → 초기값 0으로 상태 생성setCount() → 상태를 변경하는 함수상태가 바뀌면, 화면도 자동으로 다시 렌더링 2. Props부모 컴포넌트가 자식 컴포넌트에게 값을 전달 function Welcome({ name }) { return {name}님, 환영합니다!;}function App.. 2025. 5. 2.
[React] JSX, DOM, 컴포넌트, 그리고 Vite 1. JSXJavascript XML로 Javascript 코드안에 HTML 처럼 보이는 코드를 쓸 수 있는 문법 react에선 UI를 javascript로 html 구조를 만드는데, 순수 javascript로 DOM을 다루면 코드가 복잡하고 읽기 힘들어 진다. // JSX 없이 작성한 코드const element = React.createElement('h1', null, '안녕하세요');// JSX로 작성한 코드const element = 안녕하세요; JSX를 활용하면 읽기 쉬운 코드가 된다. 2. DOMDOM(Document Object Model) 웹페이지를 트리 구조로 표현한 것 브라우저가 웹페이지를 이해하기 위해 만든 HTML 문서의 구조도 안녕하세요! React를 배워봅시다... 2025. 4. 30.
[Swift + Supabase] OAuth - Sign in with Apple Swift에서 Supabase 를 활용해서 Apple OAuth 구현 방법(삽질 후기) 1. Apple Developer Console 설정Service ID 생성Apple Developer -> Certificates, Identifiers & ProfilesSign in with Apple 활성화Key 생성 Certificates -> Key + 버튼"Sign in with Apple" .p8 파일 다운로드Redirect URI 등록2.Supabase 에서 만들어진 redirect URL 추가 .p8 파일에서 Secret Key 뽑기secret Key 를 내가 뽑아야한다# Pythonimport jwtimport datetimeTEAM_ID = ''CLIENT_ID = ''KEY_ID = ''with.. 2025. 4. 28.
[Python] type hint & generic 1. 타입 힌트(type hint) 1. 필요성파이썬은 동적 타입 언어로 변수의 타입을 명시하지 않아도 실행 가능하다.하지만 프로젝트 규모가 커지고 협업 인원이 많아질수록 타입 불확실성으로 인한 오류가 발생할 가능성이 커진다.def total(price, count): return price * counttotal("1000", 3) # → '100010001000' 예를 들어, 위의 코드는 int * int 를 예상했지만, 문자열이 들어오면 개발자의 의도와 다르게 함수가 동작할 수 있다.타입 힌트를 사용하면, 타입에 대한 오류를 줄일 수 있다. 2. 문법1. 기본 타입변수_이름: 변수_타입 으로 선언한다.함수 인자에도 동일하게 설정하며, 반환 값은 -> 뒤에 표시한다.name: str = "p.. 2025. 4. 23.
[FastAPI] Middleware 미들웨어 (CORS, Logging) 1. 미들웨어란?FastAPI의 미들웨어는 클라이언트의 요청(Request)와 응답(Response) 사이에 실행되는 가로채기 함수주로 인증, 로깅, 성능 측정, 에러 처리, 보안 등 공통 기능을 구현하는데 사용 가능비즈니스 & 도메인 로직을 분리할 수 있어, 가독성과 유지보수성 향상 2. FastAPI 예시import timefrom fastapi import FastAPI, Requestapp = FastAPI()@app.middleware("http")async def add_process_time_header(request: Request, call_next): start_time = time.perf_counter() # 실제 라우터 함수 호출 전 response = await ca.. 2025. 4. 20.