목록dev (30)
Ssul's Blog

2025년 새해 계획 중 하나가, 두달에 하나의 앱을 개발하는 것이었다.벌써 4월이 시작되었지만, 아직 첫번째 앱. 열심히 분발해서 6개의 앱을 완성해보자!!애플개발자 계정 본전은 뽑아야지 ㅜㅜ 첫번째 앱을 개발하면서, 미국/유럽 등 영어권 시장부터 출시하면 어떨까 생각하게 되었다.근데 이미 개발을 한참 진행 했더니.... 전부다 한글인 상황. 1. 아이폰 앱 중에서 영어와 한국어 두개 이상의 언어를 지원하는 앱들은 어떻게 하는 것일까?이미지 추가-Add Image마이페이지-My Page처럼 결국 무조건 해석해서 두개를 넣는 것은 당연할 것 같은데.... 그런 궁금증을 가지고 검색을 시작했다. 우선 결론은 String Catalog와 String File 둘중에 하나를 쓰면 된다.String File이 ..

1. IOS Push알림 개념이해ios는 서버에서 직접 푸쉬를 보낼수 없다. 중간에 APNs가 존재해서, 서버에서 push를 보내려면, APNs에게 보내고, 그걸 클라이언트에 보내는 구조이다.아래 그림과 같은 구조이다(1-2) 개인 핸드폰이 APNs에게 연결을 요청하고, 자신 고유의 토큰을 받는다.(3) 자신의 APNs고유 토큰을 서버에게 알려준다(4) 서버에서 push를 보내려면 APNs에게 클라이언트 토큰과 내용(payload), APN key를 보낸다(5) APNs는 검증을 마치고 push알림을 보낸다 2. 설정하기2-1. xCode에서 push Notifications 추가하기xCode - TARGETS - 프로젝트명 - Signing&Capabilities탭 - +Capability - pus..
1. 내가 이해하는 직렬화, 역직렬화 구분- A: 사람이 읽기는 어렵지만, 기계에게 효과적인 데이터(예: 0xB0, 0xA0)- B: 사람이 읽기는 편하지만, 기계에게는 비효율적인 데이터(예: {"id": 1, "contents": '첫번째 글'}) 직렬화: B -> A (dict -> bytes): 조금더 배우고나서 적음 > dict > byte역직렬화: A -> B(bytes -> dict): 조금 더 배우고나서 적음: byte > dict > 객체 2. Django에서 직렬화 이해(GET과정)DB에서 인스턴스 가져오기ins0 = Comment.objects.all()[0]serializer에 넣어서 dict객체로sr = CommentSerializer(instance=ins0) #instance에 ..

간단한 API서버는 EC2로 만드는 것보다, Serverless로 하는게 간편하고 좋다.AWS Lambda를 사용해서, gpt-4o-mini와 소통하는 api를 만들었는데... 계속 Layer연결에서 에러가 나서... 남겨놓는다.(나의 4시간ㅜㅜ) 우선 lambda로 serverless를 구현하는데는 총 3가지 작업이 있다.1. 람다 함수 코딩2. Layer연결(python 개발시 설치되는 라이브러리들을 lambda로 가져오는 작업. layer없이 import openai하면, 해당 모듈이 없다고 뜬다)3. api gateway연결 위 3단계의 내용은 https://issul.tistory.com/438 요글에 코드와 함께 잘 나와있다. 오늘은 실리콘 맥에서(m1부터~) Layer구성하는데 시행착오를 남..

1. Docker Image- 벽돌을 찍어내는 거푸집- 예: redis/python을 설치 한 우분투(운영체제) 거푸집, httpd거푸집 등 2. Docker Container- 이미지(거푸집)으로 찍어낸, 실제 인스턴스- 예: redis/python을 설치 한 우분투(운영체제), httpd서버 (참고) 간단 사용예시도커를 설치 후 아래 명령어를 입력하면,docker run httpd①나의 local 컴퓨터에서 httpd이미지를 찾는다. 없으면②퍼블릭 도커허브에서 해당이미지(latest)를 가져온다③가져온 이미지로 컨테이너를 제작한다④제작된 컨테이너를 실행한다 3. Container로 서비스 실행docker run httpd를 실행하면, 내 local에서 image찾고, 없으면 public허브에서 찾아..

0. 챗봇을 쉽게 만들수 있는 세상 - 그동안은 NLP연구와 알고리즘을 통해서, 챗봇이 동작하였다. - 하지만, GPT가 나오면서, 그동안 챗봇기술은 모두 비슷한 출발 선상에 서게 되었음 - 정말로 비슷한 출발 선상에 서게 되었을까? 그렇다면 나만의 상담챗봇, 그림그려주는 챗봇을 제작해보자! - 카카오챗봇 + openai + lambda(aws서버)를 통해서 24시간 동작하는 챗봇 만들기 1. 카카오채널 셋팅 - business.kakao.com 방문 - 오른쪽 상단 내 비즈니스 클릭 - 왼쪽 상단 채널 클릭 - 새 채널 만들기 클릭 - 작성해서 확인 클릭(채널 생성 완료) - 생성한 채널로 들어가서 - 오른쪽 하단에 채널공개, 검색허용 on으로 셋팅 - 왼쪽상단 채널 클릭 -> 서랍형태로 챗봇나오면 클..

#0. 프론트 글쓰기, 댓글 작업 - 백앤드에서 익숙한 CRUD - 프론트만 오면 왜 이렇게 헤깔리는지... 이번에 정리해보자!!! #1. api 정리 - 글쓰기/글목록: api/community/cp/ + post, get - 글상세/수정: api/community/cp/cp_id/ + post, get - 댓글쓰기/댓글목록: api/community/cp/cp_id/cpc/ + post, get - 댓글상세/수정: api/community/cp/cp_id/cpc/cpc_id #2. 글쓰기/글목록 작업 2-1. src/app/(route)/counseling/page.tsx - nextjs특성상 '도메인주소/counseling'으로 src/app/(route)/counseling/layout.tsx 접..

0. signal은 언제 사용하나? 예전에 구독서비스를 개발할때, 카드결제가 정기적으로 이뤄지는 과정을 개발할때 사용했다. 매번 관리자가 카드결제를 실행할 수 없기에... 카드등록 후, 첫 구독 결제를 실행해서 구독객체가 생성되면, signal을 활용해서 자동으로 payment 객체생성과 다음 결제를 생성해 놓는 개념이다. 이번에는 질문글에 자동으로 AI가 답변을 남기는 기능을 구현하기 위해서 signal을 활용해 보고자 한다. 1. 평소처럼 models.py생성 class CounselingPost(models.Model): cp_index = models.AutoField(primary_key=True) cp_u_index = models.IntegerField() cp_content = models..

0. 영상을 요약해주는 AI만들기 위하여 - Youtube영상 정보를 어떻게 가져 올것인가? - 크롤링? 아마 잘 만들어 놓은 라이브러리가 있을 것이다. - 역시나 있다. yt-dlp, youtube-transcript-api 1. 유튜브 영상 정보 가져오기(채널명, 영상길이, 제목 등등) pip install yt-dlp - 설치하자. 해당 라이브러리는 youtube영상의 정보를 가져오는 라이브러리 import yt_dlp def get_youtube_video_info(video_url): ydl_opts = { 'noplaylist': True, 'quiet': True, 'no_warnings': True, } with yt_dlp.YoutubeDL(ydl_opts) as ydl: video_in..
jwt토큰으로 로그인 전략. 1. 첫 로그인시 아이디/패스워드 입력 "use client"; import { useState } from "react"; export function useLoginForm() { const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); return { email, setEmail, password, setPassword, }; } export default function LoginForm({ email, password, setEmail, setPassword, }: ReturnType) { return ( Email address setEmail(e.currentTarge..