일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- openAI API
- 라피신
- 생활코딩
- 도커
- 티스토리챌린지
- UNICON2023
- Route53
- Redis
- springai
- Spring boot
- 42서울
- bastion host
- 전국대학생게임개발동아리연합회
- UNICON
- 개발공부
- CICD
- 체크인미팅
- 백엔드개발자
- NAT gateway
- 프롬프트엔지니어링
- 프로그래밍
- 프리티어
- 게임개발동아리
- EC2
- 인프라
- UNIDEV
- AWS
- 오블완
- 스프링부트
- 캡스톤디자인프로젝트
- Today
- Total
목록분류 전체보기 (137)
Hyun's Wonderwall

졸업프로젝트 그로쓰도 어느덧 막바지에 이르렀습니다. 지난 1년 동안 진행한 기획 및 개발 과정을 회고해보겠습니다.우리 팀은 "예산 내 소비에 어려움을 겪는 Z세대를 위한 시계열 예측 AI 기반 맞춤형 절약 챌린지 가계부 서비스"를 주제로 서비스 개발을 진행했습니다.저는 기획(공동), 백엔드(Spring Boot에서 챌린지 도메인과 월별리포트 기능 제외 전체) 개발 및 서버 구축, UX/UI 디자인, AI(OpenAI API)를 담당했습니다.서비스 아키텍처는 다음과 같습니다.1. ERD 설계 ERD 설계 시 가장 어려웠던 부분은 거래내역(초록색) 관련 테이블 구조였습니다.수입과 지출은 공통 필드가 많으나, 완전히 일치하지 않습니다.일별·월별 거래내역과 분석 화면에서 특정 기간 동안의 수입·지출을 함께 표시..

ACC Ewha 사이드 프로젝트로 대규모 시스템 아키텍처를 설계해보게 되었다!"가상 면접 사례로 배우는 대규모 시스템 설계 기초" 책을 기반으로 주제가 결정되었는데, 우리 팀 주제는 '채팅 시스템'이다. 주제 요구 조건일대일 채팅 또는 그룹 채팅 기능을 구현한다.키-값 저장소에 채팅 이력을 보관한다.인프라 요구 조건평균적으로 약 1000명의 유저가 해당 서비스를 사용 (최대 동시 접속 사용자 수 500명 예상)초당 약 50건의 메시지 전송 처리 필요최대 6개월간 메시지 내역 보관 필요메시지 전송 지연 시간은 2초 이내심화 조건그룹 채팅 지원: 최대 100명까지 참여 가능한 그룹 채팅방 제공첨부 파일: 채팅에서 최대 10MB 크기의 파일 첨부 기능 지원오프라인 메시지 처리: 사용자가 오프라인 상태일 때 메..

진행 중인 프로젝트에서 서울특별시 모든 동의 이름과 각 동 간의 식별이 필요했다.임의로 지역마다 ID를 만들기보다 실제 존재하는 동별 식별번호를 사용해야겠다고 생각했다. API를 사용하기보다 파일에서 접근하는 것이 용이할 듯하여 국가기관 데이터를 찾아보았다. 행정표준코드관리시스템의 법정동코드목록조회에서 식별번호와 법정동명, 존재여부로 구성된 파일을 다운받을 수 있었다.https://www.code.go.kr/stdcode/regCodeL.do 법정동코드목록조회 - 행정표준코드관리시스템정상적으로 로그아웃하지 않았거나, 동일 사용자가 로그인한 상태입니다. 강제로 로그인 하시겠습니까? (강제 로그인 시 다시 로그인을 하셔야 합니다.)www.code.go.kr 법정동코드는 앞의 2자리까지 시/도, 다음 3..

데이터 엔지니어링 과목 프로젝트에서 네이버 플레이스의 리뷰 데이터를 수집하는 역할을 맡았다. [크롤링 방식] - 정적 크롤링(Static Crawling), 동적 크롤링(Dynamic Crawling)정적 크롤링: 서버에서 전달받은 고정된 HTML 소스코드에서 필요한 데이터를 파싱하는 방식.동적 크롤링: JavaScript 실행 이후에 생성되는 요소나, 사용자 인터랙션(스크롤, 버튼 클릭 등)을 통해 로드되는 데이터를 처리하는 방식. 일반적인 HTTP 요청만으로는 접근이 불가능한 정보를 수집할 때 사용됨.우리가 수집하려는 네이버 플레이스 리뷰 페이지는 탭 구성과 더보기 버튼 기반의 페이지네이션 구조를 가지고 있어 동적으로 데이터가 로드된다. 따라서 동적 크롤링이 필수적이다. [동적 크롤링을 위한 Pyth..

ACC Ewha 핸즈온 세션StorageAmazon S3데이터를 버킷 내 객체로 저장하는 객체 스토리지 서비스확장성, 데이터 보호, 비용 효율성특징객체별로 제어 (단일 객체 최대 크기 5TB)Amazon S3버킷과 객체로 구성버킷은 최상위 디렉토리객체는 디렉토리 내에 저장되는 파일Amazon S3구성 - 버킷버킷은 S3에 저장된 객체에 대한 컨테이너버킷에는 객체를 무제한으로 저장 가능한 계정당 최대 100개의 버킷 생성 가능AWS 전역에서 단 하나만 존재, 리전과 관계없이 전역적으로 유일한 이름구성 - 객체S3에 저장되는 기본 개체버킷, 키, 버전메타데이터: 객체 관련 정보를 저장하기 위한 이름-값 페어 세트 (이름: 속성의 종류. ex. content type)값: 저장하는 콘텐츠, 임의의 바이트 시퀀..

ACC Ewha 핸즈온 세션 - 공부 내용 정리Route53Route53: AWS의 DNS 서비스. 도메인을 타깃으로 분산 처리 가능.- DNS(네임서버) + port 모니터링(Health Check) + L4(Failover 기능) + GSLB(라우팅 정책)- Route53을 사용해 도메인의 트래픽을 로드 밸런서로 라우팅할 수 있다.- 네임서버는 IP주소와 도메인네임을 연결해주는 역할. / 라우팅: 네트워크에서 경로를 찾는 행위. (Route53가 확인하는 것: 도메인 / 로드 밸런서가 확인하는 것: 지정된 포트, 프로토콜, 상태 확인) DNS- 도메인 네임(aws.amazon.com) -> 네트워크 주소(ip주소): Forwarding DNS, 그 반대는 Reverse DNS- root DNS, T..
'오디오 및 MIDI를 동기화하는 동안 오류가 발생했습니다. 샘플률 ~이(가) 인식되었습니다.' 개러지밴드를 켰더니 위와 같은 샘플률 인식 오류가 끊임없이 떴는데 원인은 디스코드 음성 채팅에 접속한 채로 개러지밴드를 킨 것이었다... (블루투스 이어폰에서 '헤드폰'과 '머리에 거는 수화기'의 음질 차이를 생각해보면 이해가 될 것이다) 이 에러를 마주했다면 디스코드, 줌, 미트에 접속해 있는 것은 아닌지 확인! 나갔더니 해결되었다.

먼저, 구글 Colab을 열고 새 노트북을 생성한다. 파이썬과 몽고DB를 연동하기 위해 pymongo를 설치한다.!pip install gspread pandas pymongo 구글 드라이브를 마운트한다.from google.colab import drivedrive.mount('/content/drive') 인증 절차를 진행한다.from google.colab import authauth.authenticate_user()import gspreadfrom google.auth import defaultcreds, _ = default()gc = gspread.authorize(creds) 스프레드시트 파일을 연다.worksheet = gc.open('스프레드시트 파일명').sheet1 데이터프레임에 불..

팀 프로젝트에서 데이터베이스 관리를 위해 스프레드시트를 사용하던 중, 생성한 사람과 수정한 사람을 자동 기록하고 싶다고 생각했다. 구글에 검색했을 때 바로 원하는 솔루션이 나오지 않아서 GPT에게 물어보았다."구글 스프레드시트에서 생성한 사람이랑 편집한 사람 이름을 함수로 자동으로 들어가게 하고 싶어" 클릭해야 하는 메뉴 경로를 잘못 알려주었지만, 코드는 잘 만들어 주었다. 스프레드시트를 생성해서 열고 상단 메뉴바에서 확장 프로그램 > Apps Script를 클릭한다.그러면 기본 코드 파일이 있는 화면이 나오는데, GPT가 생성해준 코드를 복붙한다..gs 는 Google Apps Script에서 쓰이는 구글의 확장자명 같은데 js와 문법이 비슷했다. 나는 GPT에게 아래와 같은 요구사항을 전달해서 코..
점프 투 FastAPI에서 사용하는 버전FastAPI 0.85.1 버전파이썬 3.10 버전Svelte 3.49.0 버전부트스트랩 5.1.3 버전나는 그냥 최신버전을 사용했다 (아래 참고, 파이썬은 3.11.4)파이썬 가상 환경 (venv)프로젝트별로 사용해야 하는 FastAPI 버전이 다를 수 있으므로, venv를 사용해서 가상환경에 FastAPI를 설치해 사용할 것이다.터미널에서 가상환경 venv 만들기참고: https://wikidocs.net/175214python -m venv myapi# 실제 개발에서는 python -m venv venv로 했다...Scripts 디렉터리 하위로 이동 후 activate 입력 → venv 활성화C:\venvs> cd myapi/ScriptsC:\venvs\mya..