2025/04 30

[Docker] PostgreSQL 설정

Docker 사용해서 PostgreSQL 구성해보기 📝 PostgreSQL Docker 설정1. PostgreSQL 컨테이너 설정port : 5432:5432사용자/비밀번호 : postgres/postgres (🔥 예시임, 노출되면 안됨!! )DB : local : blogdb dev : blogdb_dev prod : blogdb_prod볼륨 마운트healthcheck 설정 2. Docker-compose.yaml 작성version: '3.1'services: db: image: postgres container_name: my_postgres restart: always environment: POSTGRES_USER: yourusername POSTGR..

클라우드 2025.04.30

[Pocket Art] 프로젝트 시작

졸업 작품 시작 1. 주제인공지능 CycleGAN을 활용한 그림 자동완성 AR 서비스 2. 시장/기술 분석3. UseCase 4. 서비스 구성도[Backend]1. Frontend에서 받은 정보를 토대로 Springboot RestAPI 호출2. 파라미터로 넘겨 받은 모델 가중치를 Djl library를 통해 서버 내부 코드에 전달3. 서버 DB의 부담을 줄이기 위해 사용자가 업로드한 사진 및 변환된 사진들은 AWS S3 Bucket에서 관리 [Frontend]1. Flutter 프레임워크를 사용하여 사용자에게 정보를 입력받고 서버에 전달함2. 사용자에게 선택한 화풍에 맞게 변환된 이미지를 보여줌 [AI]1. 사용자가 선택한 화풍을 파라미터로 넘겨 받는다.2. 사전에 Pytorch를 통해 학습된 모델 ..

Project/Pocket Art 2025.04.26

[ SUNNY] 커뮤니티 기능

[ 커뮤니티 기능 ]작성한 요구 사항 명세서에 맞게 커뮤니티 기능 개발을 시작하였다. 커뮤니티 기능을 개발하기 위해 생성해야 하는 테이블들은 다음과 같다.users커뮤니티와 다대일 관계를 맺기 위해 필요한 테이블사용자가 여러 개의 게시글을 작성할 수 있기 때문에 다대일 관계 → [N:1]N : community (*연관관계 주인)1 : users마이페이지에서 사용자가 자신이 작성한 게시글을 조회할 수 있기 때문에 (연관관계에서 주인이 아닌 쪽에서 조회를 해야함) 양방향 매핑을 해야함users → @oneToMany , community → @ManyToOneusers 쪽에 @oneToMany (mappedBy = “users”) 를 꼭 명시함으로써 양방향을 성립하도록 한다.communityphoto(me..

Project/SUNNY 2025.04.26

[SUNNY] Apple 로그인 기능

[ 사전 준비 ]Apple Developer Program 에 가입되어 있어야 한다. 등록하면 하단의 정보들을 받게 된다. 👀 ( * 해당 내용은 노출되면 안되니 조심 !! )1. TEAM_ID : 2. CLIENT_ID : 3. REDIRECT_URL : 4. KEY_ID : 5. Bundle ID :1. 애플 로그인 [ 로그인 Flow ]모바일(App-client)로부터 로그인 요청을 받음애플 서버가 auth code(authorization_code)를 발급해 준다.애플 서버에서 받은 code를 스프링 서버(App-server)에 전달서버는 이 토큰을 들고 애플서버로 가서 사용자가 진짜 맞는지 검증맞으면 사용자에 대한 정보 id_token을 내려줌id_token은 jwt 형태이기 때문에 decod..

Project/SUNNY 2025.04.26

[SUNNY] API 통신 정리

⚠️ 클라이언트의 요청이 올바르지 않은 요청일 경우 서버는 어떻게 응답하는 것이 좋을까?HTTP (HyperText Transfer Protocol): 웹 환경에서 정보를 주고받기 위한 프로토콜클라이언트는 HTTP의 상태 코드를 확인하여 요청의 성공 or 실패를 확인할 수 있다.1. 성공 코드 : 2XX Success2xx번대의 상태 코드들은 “서버가 클라이언트의 요청을 성공적으로 처리했다” 는 의미이다.200 - OK클라이언트의 요청을 서버가 정상적으로 처리했다. (성공에 대한 모든 상태 코드를 200 으로 응답해도 크게 상관x) ✅ 상태 코드는 200 으로 성공인데 body 내용엔 실패에 관한 내용을 return 하고 있으면 올바른 설계 x201 - Created클라이언트의 요청을 서버가 정상적으로 ..

Project/SUNNY 2025.04.26

[ CJ 올리브네트웍스] CLOUD WAVE - 트러플 슈팅

프로젝트를 진행하면서 수 많은 에러를 마주쳤었다.. 다시 반복하고 싶지 않기에 정리해본다 ^0^ [ 이슈 1. ] 동일한 코드에서 다른 팀원은 vpc 생성이 되지만 내 컴퓨터에서는 argument 에러 발생 ..!! 에러 내용│ Error: Unsupported argument││ on main.tf line 4, in module "prod_vpc":│ 4: name = "cgv-prod-vpc"││ An argument named "name" is not expected here.╵╷│ Error: Unsupported argument││ on main.tf line 5, in module "prod_vpc":│ 5: cidr = var.prod_vpc_cidr││ ..

CLOUD WAVE 2025.04.26

[CJ 올리브네트웍스] CLOUD WAVE 4 - 프로젝트

이번 포스팅은 CLOUD WAVE 교육에서 진행한 프로젝트를 소개하려고 한다 . 1. 프로젝트 주제 주제 : "CGV 영화관 광고 동기화 및 시사회 라이브 스트리밍 서비스" 선정 배경 : 영화관 광고 동기화 송출 서비스관람 시작 전 광고가 길어 사용자 불편함이 발생함. 사용자에게 실질적 상영 시작 시간을 제공해 편의성 높이고자 함.제 시간에 영화관에 도착하지 못했을 때, 앱을 통해 상영 시작까지 남은 시간 제공함.시사회 실시간 스트리밍 서비스 제한된 인원만 참여 가능한 기존 시사회 한계가 있었음.스트리밍으로 접근성을 높이고 실시간 소통 가능하게 하고자 함.2. 아키텍처개발계 : CGV 플랫폼의 개발 담당미디어계 : 광고 송출과 실시간 라이브 구현 담당배포계 : 서비스를 실제로 배포하기 위한 인프라..

CLOUD WAVE 2025.04.26

[Softeer] - 우물 안 개구리

[D+2] 계속 문제를 풀어보자 !! ⭐️문제헬스장에서 N명의 회원이 운동을 하고 있다. 각 회원은 1에서 N사이의 번호가 부여되어 있고, i번 회원이 들 수 있는 역기의 무게는 Wi이다. 회원들 사이에는 M개의 친분관계 (Aj, Bj)가 있다. (Aj, Bj)는 Aj번 회원과 Bj번 회원이 친분 관계가 있다는 것을 의미한다. i번 회원은 자신과 친분 관계가 있는 다른 회원보다 들 수 있는 역기의 무게가 무거우면 자신이 최고라고 생각한다. 단, 누구와도 친분이 없는 멤버는 본인이 최고라고 생각한다.코드import sysfrom collections import defaultdictN,M= map(int,input().split())weight = list(map(int,input().split()))m..

알고리즘 2025.04.25

[Softeer] - 성적 평균

✅ [D+1] 현대 Softeer에서 제공하는 연습문제를 단계별로 풀어보고자 한다.문제N명의 학생들의 성적이 학번순서대로 주어졌을 때, 학번 구간 [A, B]가 주어졌을 때 이 학생들 성적의 평균을 구하는 프로그램을 작성하라. 코드import sysN,K = map(int,input().split())score=list(map(int,input().split()))area = list(list(map(int,input().split())) for _ in range(K))for i in range(K): a,b=area[i][0],area[i][1] res=sum(score[a-1:b]) / ((b-a)+1) print(f"{round(res,2):.2f}")코드 리뷰sum과 round를..

알고리즘 2025.04.25

[프로그래머스] -PCCE 기출문제 9번 / 지폐 접기

문제민수는 다양한 지폐를 수집하는 취미를 가지고 있습니다. 지폐마다 크기가 달라 지갑에 넣으려면 여러 번 접어서 넣어야 합니다. 예를 들어 지갑의 크기가 30 15이고 지폐의 크기가 26 17이라면 한번 반으로 접어 13 * 17 크기로 만든 뒤 90도 돌려서 지갑에 넣을 수 있습니다. 지폐를 접을 때는 다음과 같은 규칙을 지킵니다.지폐를 접을 때는 항상 길이가 긴 쪽을 반으로 접습니다. 접기 전 길이가 홀수였다면 접은 후 소수점 이하는 버립니다. 접힌 지폐를 그대로 또는 90도 돌려서 지갑에 넣을 수 있다면 그만 접습니다.지갑의 가로, 세로 크기를 담은 정수 리스트 wallet과 지폐의 가로, 세로 크기를 담은 정수 리스트 bill가 주어질 때, 지갑에 넣기 위해서 지폐를 최소 몇 번 접어야 하는지 r..

알고리즘 2025.04.25