#사용자

질문 2
해시태그 없이 키워드만 일치하는 질문은 개수에 포함되지 않아요.

16일 전 · 조유정 님의 질문 업데이트

물경력 직전 중고신입 이직 현실조언 부탁드립니다...

안녕하세요. 물류IT 개발자입니다. 연봉, 복지 면에서 조건 좋은 회사로 중고신입 이직을 생각하고 있습니다만, 현회사에서 성과를 내기 힘든 구조입니다... 현재 회사 규모는 준대기업...? 정도인데 IT는 많이 뒤쳐져있습니다... 지금부터 제 한탄입니다....ㅜㅜ 비즈니스 로직은 DB 프로시저에 모두 구현합니다... 그래서 테스트 코드 이런건 하나도 없구요... 오류나면 사용자가 직접 건의하고 저희는 그때마다 부분부분 수정합니다. 메인 프로세스는 수정하지도 못해요.... 잘못 건드렸다가 되던것도 안된다고요 건드리지 말라고 합니다ㅠㅠ 그래서 주먹구구식 코드도 정말 많아요. 배포할 때에는 아직도 war 파일로 감싸서 수동으로 올립니다... git이 아닌 svn 사용중이지만 이 부분은 사실 큰 불만 없긴 합니다. 또 sm 조직이기 때문에, ‘서비스 개선 방법 = 외주맡겨 새로운 솔루션 받기’ 라는 인식이 강합니다. 2,3년 선배님들과 제 능력이 크게 다르지 않아 보입니다. 물류 프로세스 이해도나 현업 소통 능력은 당연히 차이가 나지만, 기술적으로는.. 비슷한 것 같습니다. 아직 입사 2달차인데 이대로 있으면 물경력으로 발묶여 있을 것 같아 이직을 하려고 합니다. 근데 이직할 때 전 직장에서 무엇을 했는지 당연히 물어볼텐데 지금 회사에서 도저히 it기술적으로 뭘 해낼 수가 없을 것 같습니다... (제 짧은 견해일 수 있습니다) 물류 도메인 지식은 정말 많이 얻었습니다. 주문, 입출고, 전표처리 등... 개인 프로젝트로 보완을 하겠지만, 중고신입인지라 회사에서 뭘 해냈는지를 더 중요하게 생각하지 않을까... 싶어 고민입니다. 대규모 레거시 시스템 마이그레이션 기회가 어디서도 쉽게 해볼 수 없는 기회다 라고 말씀해주시는 선배님이 계시긴합니다. 그런가...? 싶다가도 어차피 회사에서 업체써서 할 건데 내가 얻는게 있나..? 라는 회의적인 생각이 크게 들어요.. 아직 업무경험이 많이 부족한지라, 위 한탄들이 짧은 식견일 수 있습니다.. 이직에 대한 현실적이고 따끔한 조언 부탁드립니다. 제가 회사에서 무엇을 할 수 있을까요...? 이직할 때 어떤 방향으로 어필하면 좋을까요? (개인프로젝트,,?)

개발자

#이직고민

#이직

#sm

#네카라쿠배

답변 0

댓글 0

조회 76

25일 전 · 포크코딩 님의 새로운 답변

앱서비스를 구현할 때 로컬에 있는 데이터를 서버에 업데이트할 때 어떤 전략들이 있을까요?

결론부터 이야기하면 앱 서비스에서 로컬 DB에 저장된 데이터를 서버에 어느 시점에 어떻게 저장할지 고민입니다. 첫번째 질문은 "동일한 핸드폰에서 게스트 모드로 사용했던 데이터를 사용자가 서비스에 가입하여 로그인 했을 때 게스트에서 이용했던 데이터들을 어떻게 사용할 수 있을까?" 입니다. 서비스에 게스트 모드를 이용하게 될 때는 로컬 DB를 이용해서 구현하고 있습니다. 이때 소셜 로그인 시 로컬에 있는 데이터를 해당 계정에 반영하고 싶습니다. 일단 설정 탭에 버튼을 두어 게스트 모드와 동기화를 시키는 방향이 가장 먼저 떠오르는데 이 방법 외에 여러 방법을 듣고 싶습니다. 두번째는 소셜 로그인 시에도 로컬 기반으로 서비스를 만든다고 가정했을 때 서버에 데이터를 저장되는 방식과 시점이 고민입니다. 업데이트될 때마다 로컬과 서버 두 곳에 바로 저장할지 아니면 앱에 일정 트리거 마다 서버에 있는 기존 데이터를 지우고 새롭게 로컬 데이터를 최신화 시키는 게 좋을지, 혹은 다른 방식은 있는지 궁금합니다!

개발자

#앱개발

#모바일앱

#flutter

답변 1

댓글 0

조회 99

한 달 전 · aigoia 님의 답변 업데이트

취업할 수 있을 지 모르겠네요ㅠㅠ

개발자로 취업을 할 때 중요한 점이 뭐가 있을까요? 현재 백준 문제는 매일 풀고 있고 학점은 3.7입니다. 프로젝트도 3개 정도 있지만 사용자 피드백을 받는다거나 프로젝트를 오래 끌고 가지는 못했습니다. 1. 학점의 중요도는 어느 정도인가요? 아직 남은 학점이 꽤 있습니다. 2. 프로젝트는 포폴에 여러 개를 적는 것보다 진짜 괜찮은 것 하나를 적는게 나을까요?

개발자

#취업고민

답변 1

댓글 0

조회 142

한 달 전 · 포크코딩 님의 새로운 답변

Supabase와 Springboot에 대한 질문

안녕하세요. 현재 기계공학과 4학년으로 캡스톤 디자인을 진행 중이며, 팀원들과 함께 앱 개발과 창업까지 목표로 하고 있는 학생입니다. 기술 선택 문제로 고민이 많아 조언을 구하고자 글을 남기게 되었습니다. 상황 요약 - 저희 팀: React Native + Spring Boot 기반으로 개발 중 제가 직접 백엔드 설계/구현 예외처리, 디버깅 포함 전체 구조 정확히 이해 진행도 약 60-70%, 구조 안정적, 유지보수 자신 있음 - 교수님 프로젝트: Next.js + Supabase 진행도 약 80% 다만 구조가 낯설어 코드 파악과 에러 수정에 시간 소요 예상 고민 포인트 - 교수님 코드 이어받으면 빠르게 MVP는 가능하지만, 구조 이해가 부족하고 디버깅이 어려움 - 제가 만든 Spring 기반 프로젝트는 구현은 부족하지만, 구조적으로 명확하고 확장성에 유리함 - 배포까지 걸리는 시간은 둘 다 비슷할 것으로 예상됨 저희의 목표 - 단기: MVP 완성 → 실제 사용자 배포 - 장기: 창업을 고려한 실서비스 개발 - Redis / Kafka / Elasticsearch 등 트래픽 대응과 기능 고도화 예정 - 따라서 유지보수성과 확장성이 핵심 질문 - 기능 많은 Supabase 기반 코드를 이해하고 고도화하는 게 나을까요? - 아니면 Spring 기반 구조를 그대로 밀고 나가는 게 더 현명할까요? - 장기적으로 유지보수와 확장성을 고려했을 때 어떤 선택이 실무적으로 맞는 결정일까요? 비슷한 경험 있으신 분들이나 현직자 분들의 현실적인 조언 부탁드립니다. 긴 글 읽어주셔서 감사합니다.

개발자

#supabase

#spring-boot

#backend

#front-end

#back-end

답변 1

댓글 0

조회 93

한 달 전 · 유승민 님의 질문 업데이트

사이드 프로젝트) 모임 기반 커뮤니티 플랫폼 BE:BEAM의 디자이너를 구합니다!

모임 기반 커뮤니티 플랫폼, BE:BEAM 과 함께할 디자이너를 모집합니다! 💡 프로젝트 소개BE:BEAM은 부산을 대상으로 한 관심사 기반 모임 개설, 실시간 소통, 후기 공유 기능 등을 제공하는 모임 중심 커뮤니티 플랫폼입니다. 프로젝트 진행 기간은 2개월 + a 입니다.(2개월 진행 후 원할시 연장하는 형태) 작년에 이미 실사용자 피드백을 이미 받아본 경험이 있고, 이를 바탕으로 기능 개선과 사용자 흐름을 지속적으로 다듬고 있습니다. 현재 BE:BEAM 커뮤니티 활동에 관심을 보인 잠재적 유저층도 이미 확보되어 있으며, 지금 웹사이트 리뉴얼 + 기능 추가를 앞두고, 함께할 팀원을 찾고 있어요 🙌 🧑‍🎨 모집인원 : 디자이너 1~2명 웹사이트의 컨셉에 맞는 와이어프레임, 디자인을 짜주실 디자이너분을 찾고 있습니다! ++ 기획력이 있으신 분이면 진짜 환영입니다!! (저희가 지금 이게 좀 부족해요…) - 매주 2회 비대면 회의를 진행합니다!(반드시 참여는 아닙니다) - 실제 서비스되었고, 앞으로도 서비스될 사이트지만 포트폴리오 용도로도 사용할 예정입니다. 📌 함께 하면 이런게 좋아요! 1) 저희 프로젝트는 The이상 비영리단체 소속 활동으로 진행됩니다 2) 활동 이수증/경력증명서 발급 가능 (이력서에 쓸 것도 챙겨드립니다) 3) 인스타그램과 구글폼을 통해 이미 몇 년간 운영 중인 플랫폼입니다. 즉, 유저는 이미 확보되어 있습니다. 4) 해당 프로젝트로 공모사업도 진행했음 (앞으로 함께 병행 예정) 📌 우리는 이런 분들을 찾고 있어요 이 프로젝트가 ‘필요한’ 분이었으면 좋겠어요. (ex. 취업 포트폴리오) 그래야 끝까지 함께할 열정과 책임감이 생긴다고 생각하거든요! 현재 제작한 비빔 사이트 : https://www.be-beam.site/ 비빔 인스타그램 : @bebeam+_busan (https://www.instagram.com/bebeam_busan?igsh=MTFtZm82MWU4NXBmcw==) 더이상 인스타그램 : @oddodd2020 문의/연락 : https://open.kakao.com/o/s79Kfhrh

디자이너

#사이드프로젝트

#사이드-프로젝트

#웹사이트개발

#웹디자이너

#팀원모집

답변 0

댓글 0

조회 26

2달 전 · 나경민 님의 질문 업데이트

✨ AI 자동화와 미국 홈스타일링 진출, 함께할 개발자 분을 찾습니다

안녕하세요, 인테리어티쳐 대표님이 직접 만나보고 싶은 개발자분들을 찾고 있습니다. 우리는 지금, “조금 다르게 일하고, 진짜 문제를 푸는” 두 개의 프로젝트를 진행 중입니다. 🚀 현재 우리가 하고 있는 프로젝트 1. AIP: Automation Implementation Project 반복적인 인테리어 상담 업무를 자동화하여 상담-견적-일정관리까지 한 번에 처리되는 시스템을 구축 중입니다. - 상담 응대를 위한 AI 챗봇/폼 기반 고객 응대 시스템 - 고객 정보 자동 수집 및 정리 - 맞춤형 견적 자동 생성 및 전달 (선택형 입력 기반) - 캘린더 연동 일정 예약, 리마인드 알림, 후속 안내 자동화 - 향후 CRM, 리포트 기능까지 연계해 고객 전환율을 높이는 인프라 구축 목표 🎯 우리가 해결하는 문제 상담 인력의 업무를 줄이고, 고객 응대를 일관되게 제공하며, 상담 → 견적 → 전환까지 자연스럽게 이어지는 경험을 설계합니다. 2. 미국 홈스타일링 진출 (for 하이엔드 고객) - 미국 현지의 하이엔드 고객을 위한 홈 스타일링 프로젝트** 진행 중 - 현지 고객 맞춤형 콘텐츠 및 커머스 기능 실험 - 고급 가구 유통사 및 스타일리스트 네트워크**와 함께 글로벌 확장 가능성 테스트 🧭 이런 분을 찾고 있어요 이번 커피챗은 단순한 채용 목적이 아닙니다. 우리는 우리의 방향성과 맞는 분과 미리 연결을 맺고 싶습니다. 🙌 환영하는 분들 - AI, UX, 자동화** 기술에 관심 있으신 개발자 - 챗봇/프론트/백오피스 등 사용자 경험 중심의 구조를 설계해보고 싶은 분 - 인테리어, 라이프스타일 산업을 IT로 재해석해보고 싶은 분 - 창업, 스타트업, IT 업계에 관심이 많고 이야기를 나누고 싶은 분 - 프로젝트 단위 참여에 열려 있는 프리랜서 또는 스타트업 지향 개발자 🎯 이런 방식으로 만나 뵙고 싶어요 (면접보다 솔직한 대화) - 대표님과의 1:1 커피챗 (온라인 or 오프라인) - 포멀한 면접이라기보다는, 서로의 방향과 가치관을 솔직하게 공유하는 **"사전 미팅"**의 개념 - 기술 이야기, 커리어 방향, 산업 인사이트 등을 자유롭게 나누는 시간 - 이후 서로 잘 맞는다면, 자연스럽게 프로젝트 협업까지 이어질 수 있습니다 📬 이렇게 연락 주세요 - 아래 이메일로 간단한 소개와 함께 연락주세요 (빠르게 연락주신분 순으로 먼저 연락드리겠습니다) ✉️ km.lah@interiorteacher.com - 우리가 진행 중인 프로젝트와 연관된 이력서 또는 포트폴리오가 있다면 함께 첨부해주시면 감사하겠습니다! - 제목 예시: `[커피챗 신청] 홍길동_AI 챗봇 프로젝트 관심` 우리와의 대화가 협업을 위하지만 혹시 당장의 협업이 아니더라도, 좋은 연결의 시작이 되기를 바랍니다. 🙌

개발자

#ai

답변 0

댓글 0

조회 87

2달 전 · 김성섭 님의 질문

💌2분 짜리 설문조사 하시고 커피 받아가세요!💌

안녕하세요! 저희는 사용자 맞춤형 향수 추천 서비스를 제공하는 퍼퓨미 플랫폼을 개발 중입니다. 이 서비스는 여러분이 원하는 향수를 쉽게 찾을 수 있도록 도와주며, 향수 공방을 찾아서 맞춤형 향수를 제작할 수 있는 기능도 제공합니다. 이 설문은 퍼퓨미의 향수 추천 기능과 향수 공방 서비스에 대한 여러분의 의견을 듣기 위해 진행됩니다. 여러분의 소중한 의견이 향수 추천 서비스를 더 나은 방향으로 발전시키는 데 큰 도움이 됩니다 🙂 설문은 약 2분 정도 소요되며, 참여해 주시면 감사하겠습니다! ✔️ 설문 기간: 4월 5일 (토) ~ 4월 7일 (월) ✔️ 예상 소요 시간: 2분 내외 ❗️설문에 응해주신 분들 중 총 10분께 추첨을 통해 컴포즈커피 아메리카노 기프티콘을 발송해 드립니다 ❗️ 여러분의 소중한 의견이 맞춤형 향수 추천 서비스의 방향성을 결정하는 데 큰 도움이 됩니다 🙂 많은 참여 부탁드립니다! 구글 폼 링크 : https://docs.google.com/forms/d/e/1FAIpQLSckZ2pa7fgJvnOfJivqHgKtvVbjL7NBDVvw9sZTjnmIw5-aqA/viewform?usp=dialog

PM/PO/기획자

#설문조사

#조사

#기획

#구글폼

#페인포인트

답변 0

댓글 0

조회 22

2달 전 · 나재현 님의 새로운 댓글

Node 공부 방법 질문

안녕하세요. 저는 현재 게임 개발을 하고 있습니다. 얼마전 유니티6가 나오면서, 유니티6로 강의를 만들고 있습니다. 인프런에 강의를 올려볼까 하다가, 수수료가 너무 비싼 관계로 노마드 코더처럼 개인 강의 플랫폼을 만들어볼까 합니다. JavaScript를 만들어본 적이 있어서 Node.js로 만들기로 결정했고, 유튜보 '코딩애플'님이 만든 node.js로 블로그 만드는 강의를 수강했습니다. 대충 생각해보니 핵심은 결제를 한 사용자에게만 해당 강의가 있는 주소나 페이지로 접근이 가능하게 하면 되지 않을까 생각하고 있습니다. 백엔드 쪽은 처음이라 모르는게 많습니다. 결제 시스템이나, 추가적으로 고려하고 공부해야할 기능들이 있는지 궁금합니다. 또는 해당 기능들을 공부할 수 있는 도움 되는 강의나 공부법도 추천해주시면 감사하겠습니다.

개발자

#node.js

답변 1

댓글 1

조회 118

3달 전 · 성대규 님의 새로운 댓글

모바일 앱 UI를 업데이트 순서

모바일 앱을 개발하다가 랜더링 그러니까 UI를 업데이트하는 순서가 궁금해서 질문을 올려봅니다. 예를 들어 사용자가 게시글에 좋아요를 누른다고 했을 때 다음과 같은 방법 중에서 어떤 방법을 사용해야 하는지 궁금합니다..! 특히 현업에서는 어떤 방법을 사용하는지 왜 그렇게 사용하시는지 궁금합니다😄 1) 디바이스 로컬 UI 업데이트, 동시에 서버 데이터 업데이트. 서버 업데이트가 완료 되면 서버 데이터로 UI 반영. 2) 디바이스 로컬 UI 업데이트, 동시에 서버 데이터 업데이트. 그러나 서버 업데이트 데이터는 UI에 바로 반영하지 않음. 사용자가 앱을 다시 실행하거나 refresh되는 상황에서 나중에 서버 데이터를 반영할 것으로 기대. 3) 서버 데이터를 업데이트, 서버 데이터가 업데이트 되면 해당 데이터로 UI 업데이트. 4) 디바이스 로컬 UI 업데이트, 서버 데이터는 바로 업데이트 하지 않음. 나중에 서버 데이터는 업데이트 하기. 제가 이 고민을 하게 된 이유가, 게시물에 좋아요를 누르는 상황에서 비롯되었습니다. 처음에는 (3)번 방법을 사용했습니다. 하지만, 좋아요를 누르고 서버에 업데이트 되는데 약 0.5~1s 정도 UI가 지연되어서 불편하더군요. 그래서 (1)번 방법으로 변경했습니디. 사용자가 일단 좋아요를 누르면 디바이스에서 좋아요를 토클하고, 나중에 업데이트가 완료된다면 반영하는 방식으로요. 그런데 (1)번 방법도 사용자가 빠르게 좋아요를 2번 누른 상황에서, 좋아요가 표시되고 바로 해제가 안되는 (서버에서 좋아요를 눌렀다는 업데이트로 인해서 나중에 해제가 됩니다) 문제가 있습니다 ㅠㅠ. 다른 분들의 의견이 궁금합니다🔥

개발자

#react-native

#ui

답변 1

댓글 4

조회 69

3달 전 · 최범준 님의 질문

MacBook에서 Windows Docker 서버 접속 시 sudo가 필요한데 원인이 뭘까요?

문제 현재 Windows 데스크톱과 MacBook을 사용 중이며, 두 기기는 동일한 로컬 네트워크에 연결되어 있습니다. - 데스크톱(Windows): 유선 랜(Ethernet)으로 연결 - MacBook: Wi-Fi로 연결 Windows 데스크톱에서 Docker를 이용해 로컬 웹 서버(포트 9000)를 실행 중입니다. 컨테이너는 -p 9000:9000 옵션으로 실행되었으며, 0.0.0.0:9000에서 요청을 받을 수 있도록 설정되어 있습니다. 데스크톱에서는 Chrome를 통해 정상적으로 웹 인터페이스에 접속할 수 있습니다. 그러나 MacBook의 Chrome에서 접속하면 페이지를 찾을 수 없다고 합니다. 이상하게도,,, Chrome을 sudo로 실행하면 페이지가 정상적으로 로드됩니다. 추가 정보 - 데스크톱(Windows)과 MacBook은 같은 서브넷에 속해 있습니다. - 웹 서버는 0.0.0.0:9000에서 요청을 받을 수 있도록 설정되어 있어, 다른 기기에서도 접근 가능해야 합니다. - MacBook에서 nc -zv <데스크톱-IP> 9000을 실행하면 포트가 열려 있음을 확인했습니다. - Python 코드에서 requests.get("http://<데스크톱-IP>:9000")을 실행하면, 일반 실행 시 실패하지만 sudo로 실행하면 정상적으로 작동합니다. - MacBook에는 단 하나의 사용자 계정만 존재하며, 해당 계정은 관리자(Admin) 권한을 가지고 있습니다. - macOS 방화벽은 비활성화되어 있으며 (/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate로 확인), sudo pfctl -d로 pf 방화벽을 꺼도 문제가 해결되지 않았습니다. 현재까지 파악한 내용 sudo로 실행하면 정상적으로 동작하기 때문에, 현재 문제는 네트워크 연결 자체의 문제가 아니라 macOS의 보안 정책 또는 네트워크 제한과 관련된 것이 아닐까,, 생각하고 있습니다. 해결하고 싶은 질문 - 왜 Chrome을 sudo로 실행해야만 웹 서버에 접속할 수 있을까요? - 왜 일반 사용자 권한으로 실행한 Python의 requests.get() 요청이 차단되고, sudo를 사용해야만 정상적으로 동작할까요? - macOS에서 일반 사용자 프로세스의 네트워크 접근을 제한하는 정책이 있는 걸까요? 있다면 어떻게 해결할 수 있을까요? 스크립트에 모두 sudo를 붙이면 문제가 해결되긴 합니다만,, 명확한 원인이 궁금합니다. 혹시 비슷한 경험을 하신 적이 있는 분이 계시다면 조언 부탁드립니다! 혹은 힌트 키워드라도 던져주시면 감사하겠습니다!

개발자

#mac

#docker

#local-network

답변 0

댓글 0

조회 71

3달 전 · 원승현 님의 질문

웹소켓 + Stomp로 채팅 기능을 구현하며

RabbitMQ를 도입하였습니다. 도입의 이유는 스프링 내장 메시지 브로커를 이용하게 되면 인메모리 기반의 동작 방식으로 인해 서버 문제 발생 시 메시지가 유실되거나 확장에도 제한이 있다고 판단하여 도입하였습니다. 현직자 분들이 보기에 이 이유가 적합한 근거가 될까요? 추가로 JMeter로 RabbitMQ를 사용했을 때와 사용하지 않았을 때의 성능을 비교했는데 사용자 100명 기준 성능도 사용하지 않았을 때가 우세했고, RabbitMQ를 사용했을 때는 오히려 아래와 같은 오류가 가끔 발생하며 메시지또한 약 90퍼센트 정도만 저장된걸 확인할 수 있었습니다. 무엇이 문제이며 해결 방안이 있을까요?? java.net.SocketException: Connection reset at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:394) ~[na:na] at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:426) ~[na:na] at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) ~[netty-buffer-4.1.114.Final.jar:4.1.114.Final] at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) ~[netty-buffer-4.1.114.Final.jar:4.1.114.Final] at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) ~[netty-transport-4.1.114.Final.jar:4.1.114.Final] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) ~[netty-transport-4.1.114.Final.jar:4.1.114.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) ~[netty-transport-4.1.114.Final.jar:4.1.114.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) ~[netty-transport-4.1.114.Final.jar:4.1.114.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) ~[netty-transport-4.1.114.Final.jar:4.1.114.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) ~[netty-transport-4.1.114.Final.jar:4.1.114.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.114.Final.jar:4.1.114.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.114.Final.jar:4.1.114.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.114.Final.jar:4.1.114.Final] at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]

개발자

#채팅

#구현

답변 0

댓글 0

조회 80

4달 전 · 최윤석 님의 질문

하루 5분 간편 IT 학습·정보 플랫폼을 기획 중입니다.

안녕하십니까! 1분 1초가 소중한 현대인을 위한 간편 "IT 학습·정보 플랫폼, So - ITsy" 기획 중입니다. 포지션 간 원활한 소통을 돕고, 최신 기술 트렌드를 빠르게 습득하여 업무에 적용할 수 있도록 설계된 서비스입니다. 현재 사용자 피드백을 받고 있으니, 관심 있는 분들은 랜딩페이지를 확인해 주세요. 여러분의 의견이 더 나은 서비스를 만드는 데 큰 도움이 됩니다. 감사합니다 :) https://soitsy.softr.app/

PM/PO/기획자

#개발자

#소통

#협업

#간편

#기획

답변 0

댓글 0

추천해요 1

조회 58

4달 전 · 박종찬 님의 댓글 업데이트

비전공자 프론트엔드 신입 취업 조언 부탁드립니다..

28살 비전공자 프론트엔드 개발자로 도약 준비중인 취준생입니다. 23년에 대학교 졸업 후 공간디자인 전공을 살려 인테리어 회사에 입사하여 인테리어 디자인&설계를 진행하였습니다. 누군가가 사용하고 거주할 공간에 대해 설계를 진행하고 인간중심적인 디자인을 고안하는 과정 자체가 재밌고 흥미로웠습니다. 그렇게 나온 결과물을 사용자가 보고 기뻐하고 실제로 이용하는 모습을 보며 뿌듯함을 느끼기도 했습니다. 그렇게 실무를 진행하면서 동시에 인테리어라는 직업의 한계를 느끼기도 했습니다. 현실의 물리적인 제약으로 생각했던 설계가 불가능하기도 하고 사용자 중심으로 디자인을 진행했지만 실현이 불가능하기도 했습니다. 무엇보다 공간적, 시간적 제약이 크다는 느낌을 많이 받았습니다. 그렇게 생각하던 때에 같은 과 친구를 통해 '부트캠프' 라는 것을 알게되었고, 공간디자인을 전공하면서 관심을 기울이고 있던 '개발'이라는 분야에 대해 꿈을 꾸게 되었습니다. 나이가 더 들기 전에, 더 시간이 늦기 전에 접어뒀던 꿈을 도전해보고 싶다는 생각이 들었고 다니던 회사를 퇴사함과 동시에 국비지원 프로그램에 지원해 교육원을 다니며 5개월 가량의 수업을 들으며 개발자로서의 역량을 키워갔습니다. 교육원의 커리큘럼은 풀스택 과정이였지만 저는 프론트엔드 개발이 사용자 경험과 직결되어 있다는 부분이 제 이전 전공 경험과 실무 경험을 살릴 수 있다는 생각과 동시에 제 성격과 잘 맞을 것 같아 프론트엔드 개발에 집중하게 되었습니다. HTML, CSS, Javascript, jquery, 리액트 배우고 팀 프로젝트에서 MySQL 과 MariaDB 를 활용하여 프로젝트를 제작하였습니다. 지금은 개인 포트폴리오인 랜딩페이지와 이력서를 작성해 1월 한달동안 공고를 찾아보며 지원하고 있는데 열람은 되지만 연락이 거의 오지 않는 상태여서 나에게서 어떤 부분을 개선하고 어떤 부분에 더 노력을 쏟으면 좋을지 고민이 정말 많이 되고 선택지도 정말 많고,,조금 답답한 심정입니다. 얼른 실무에 뛰어들어 실무역량을 키우고 싶습니다.. 지금도 늦었다는 생각이 자꾸만 듭니다.. 선배님들께 피드백을 받고싶어 질문 드립니다. 아래에는 랜딩페이지 링크입니다. 현실적인 팩트 피드백 부탁드립니다 ! https://jonggu-portfolio.vercel.app/

개발자

#프론트엔드

#비전공

#취업

답변 2

댓글 2

보충이 필요해요 1

조회 283

4달 전 · 익명 님의 질문 업데이트

시스템 폰트 사이즈에 의한 RN 어플 레이아웃 변경

안녕하세요 선배님들 처음으로 어플리케이션 프로젝트를 진행중입니다... 웹으로 할 때는 극적으로 작게 줄인 브라우저 창 및 극적인 스케일링을 반응형으로 적절히 조절했었는데 스마트폰이라는 환경상 너무 작은 디스플레이에 많은 정보가 존재하고 시력이 약한 노년층의 경우 스마트폰 자체의 폰트사이즈가 커서 레이아웃 조절에 어려움을 겪고 있습니다... 폰트 사이즈를 계산해서 레이아웃을 변경한다는 엄청나게 복잡한 생각을 하다가 스마트폰의 폰트 사이즈를 따르지 않게 고정하고 앱을 처음으로 실행할 때 사용자가 원하는 폰트 사이즈 선택에 맞춰 레이아웃을 설정시키는 초기 세팅 모달을 띄우는 것이 훨씬 간단하다는 생각이 들어서 이 방향으로 굳어지는 중입니다. 혹시 선배님들은 작은 디스플레이에서의 사용자의 폰트 사이즈 설정에 따른 레이아웃 조절을 어떻게 구현하시는 지 궁금합니다... 두서없는 질문을 읽어주셔서 감사합니다.

개발자

#reactnative

#android

#app

#app-dev

#layout

답변 0

댓글 0

조회 29

4달 전 · @SoftyChoco 님의 새로운 답변

게시글 이미지 업로드를 구현하는데 궁금한 점이 있습니다.

velog를 참고하여 Spring + Vue를 이용하여 마크 다운 기반 게시글을 구현하고 있습니다.. 글을 쓰는 도중에 이미지를 올리면 s3에서 url를 반환하여, 이것을 통째로 Post 테이블 Content 필드에 저장하여 순서를 보장하는 식으로 진행하고 있습니다. 로직 흐름은 이렇습니다. 1. 사용자가 이미지를 올린다면, 클라이언트에서 글쓰기 버튼을 눌렀을 때 미리 만들어 놓은 UUID와 이미지를 서버로 보낸다. 2. 서버에서는 s3객체에 임시 저장 여부를 확인하는 isTemp를 태그를 넣어서 서버를 걸쳐서 S3에 쏜다. 3. S3에서 객체를 찾아서 key값과 클라이언트에서 보낸 uuid를 Image 테이블에 저장해서 Post와 간접적으로 연관 관계를 맺는다. 4. 글쓰기를 누른다면 내용과 UUID를 보내서 UUID를 Post의 primary key로 사용하고, UUID 기반으로 Image 테이블에서 key들을 갖고 와서 S3 객체의 isTemp 태그를 false로 바꾼다. 4-1 . 뒤로 가기나 임시 저장을 눌렀을 때는 isTemp를 true로 설정하고 저장한다. 5. 30일이 지날 때마다, Post에 있는 isTemp를 통해 임시 여부를 확인하여 임시 저장된 글을 삭제하고, S3에서는 수명 주기를 설정하여 태그를 기반으로 true인 이미지들을 삭제한다. 객체를 삭제하는 이유는 불필요한 데이터가 공간을 차지하는 것이 별로라고 판단했습니다. UUID는 글을 다 쓰기도 전에 서버로 쏘기 때문에, 어떤 게시글에서 쓰였는지 확인하기 위해서 사용했습니다. 성능이나 용량 면에서 안 좋다고 하지만, 이는 데이터를 넣어 놓고 조회를 하여 성능을 확인하였고 현재 프로젝트 크기를 생각했을 때 접목해도 상관없을 것 같아 넣었습니다. 하지만 이런 식으로 진행하니, 만약 사용자가 중간에 이미지 링크를 삭제한다면? 이라는 시나리오를 생각했을 때 이를 대처할 방도가 떠오르지 않습니다. 다른 분들은 어떤 식으로 처리했는지, 제가 너무 어렵게 생각하고 짜는지 궁금합니다.

개발자

#spring-boot

#s3

#게시글

답변 1

댓글 0

조회 61

4달 전 · 문종호 님의 새로운 답변

스프링부트 배포 root 와 유저

우분투 서버를 하나만들어서 배포를 하려고합니다. aws는 아니고 자체적으로 os를 설치해서 이용하게되었는데 root에서 jar파일을 nohup & 으로 백그라운드 실행시켰는데 root가 로그아웃을 하니 프로젝트도 같이 다운됩니다. 여러가지 시나리오를 해봤는데 왜이러는건지 어떻게해야 실행시킨 프로젝트를 유지할수있을까요? 시도해본 시나리오 1. 사용자 user 와 root가 동시에 접속해서 duser가 프로젝트를 실행시키고 duser가 접속을 종료시 - 프로젝트 유지 - root가 로그아웃하면 프로젝트가 내려갑니다 2. 사용자가 먼저 접속해서 프로젝트를 백그라운드로 실행시킨후 root가 이후에 접속했다가 로그아웃한경우 - 프로젝트 유지 3. root 로 접속해서 user로 변경후 프로젝트 실행시 user에서 root로 변경했을때는 프로젝트가 유지되고 root를 로그아웃하면 프로젝트도 종료됩니다. 어떻게 접속했다가 로그아웃해도 프로젝트가 내려가지않게 하고싶습니다.

개발자

#spring-boot

#server

#ubuntu

#배포

답변 1

댓글 0

조회 34

4달 전 · 우엉김밥 님의 새로운 댓글

웹 플러그인 만들때..

안녕하세요. 회사에서 우리 api를 쓸수 있는 스크립트 형태로 주입가능한 플러그인을 만들어야 합니다. 보통 이럴때 리액트를 사용해서 만드나요?? 얘를들면 사용자는 자신의 서비스의 저희가 만든 스크립트를 심으면 우측 하단에 버튼이 생성돼서 버튼을 클릭하면 채팅이 가능한 챗봇을 제공 하려고 하는데 이럴경우 챗봇을 리액트를 이용해서 만들어야하나요? 아니면 그냥 자바스크립트로 만들어야하나요? 그리고 무엇으로 만들던지 어짼듯 스크립트 형태로 배포 해야하는데 어떻게 해야 하는지 감이 안 잡혀서 질문 드립니다. 두서 없이 쓴 긴글 읽어주셔서 감사합니다.

개발자

#react

#javascript

#script

답변 1

댓글 1

조회 31

5달 전 · 익명 님의 질문

iOS 웹앱 환경에서 헤더 고정 영역에 대한 질문입니다.

vue로 작업된 iOS 웹앱 환경에서 1. form에 focus하였을 때 form 요소가 정상적인 위치에서 보이지 않아 사용자가 재차 스크롤하여야 하는 문제점이 발생 -> 하여, focus 이벤트 리스너를 추가하여 해당요소의 위치에 맞게 스크롤 되도록 이벤트 추가 문제점 : 현재 상단 헤더 요소 (position: fixed) 그 하단에 탭메뉴 (position: sticky) 두개의 요소가 항상 페이지 상단에 고정되어 있음 근데 가상 키패드가 올라오면서 스크롤 이동이 발생하는 경우 상단 요소가 사라짐 가상 키패드가 올라오면서 발생하는 문제인 것 같은데....정확한 이유를 모르겠어서 문의 드립니다.

개발자

#css

#html

#퍼블리싱

답변 0

댓글 0

조회 33

5달 전 · 이상래 님의 새로운 답변

검색 모달 창에서 검색할 때 리액트 쿼리 사용 여부

안녕하세요, 현재 제가 검색 모달 창에서 텍스트를 입력하면 검색하는 작업을 하고 있습니다. 보통 useQuery 훅은 페이지 마다 데이터를 불러오는 경우 많이 사용하는 걸로 알고 있습니다. 제가 작업하는 검색 모달은 사용자가 검색 창을 누르면 검색 모달이 나와서 검색하는 기능이라 여기서도 React-Query에서 제공하는 useQuery를 쓰는지 궁금합니다!

개발자

#react-query

#프론트엔드

#usequery

답변 3

댓글 2

조회 87

6달 전 · 연 님의 질문

개발자 분야가 고민됩니다

안녕하세요 저는 프론트엔드 개발을 목표로 하는 취준생입니다. 비전공생이며 인프런 강좌룰 통해 개발 공부를 시작했고, 퇴사 후 프론트엔드 부트캠프를 수료했습니다. uxui 디자인 일을 했었고, 퍼블리싱 경험을 하며 자연스레 프론트엔드 개발일에 흥미를 느끼게 되었습니다. 여전히 프론트엔드 취업을 준비하고 있지만 한편으로는 백엔드로 진로를 틀어야할까 고민이 됩니다. 고민이 되는 이유는 첫번째, 적성입니다. 자연스레 눈에 보이는 것이 좋고 사용자경험에 관심이 있어 프론트엔드 개발을 정했고 당시엔 백엔드에 대해서 잘 몰랐습니다. uxui디자인을 했으니 당연히 프론트가 더 잘맞아! 라고 생각했죠. 하지만 전 프론트를 공부하면서 눈에 보이는 것 보다는 점점 컴포넌트나 데이터를 어떻게 잘 관리한지에 대한 설계를 하고 구조를 잡는 것에 더 재미를 느끼는 것을 깨달았습니다. 물론 프론트 개발도 당연히 필요한 부분이지만 백이 그 부분을 주요 업무로 가져간다면 백이 더 잘 맞을까… 고민이 됩니다. 두번째 이유는 입지.? 서비스의 앞단 디자인은 대기업이 아닌이상 자주 바뀌는 게 아닌 거 같습니다. 물론 프론트엔드가 ui만을 그리는 개발만 하는 것이 아니고 랜더링 및 최적화 등을 중요하게 생각하는 것을 압니다. 다만, 현실적으로 비전공자로서 제가 들어갈 수 있는 첫 회사는 그런 대기업보다는 중소기업일 거라 생각합니다. 그러면 그런 회사 입장에선 프론트는 한 번 앞단 개발을 마치면 일이 적어져서 빨리 퇴출되는 것이 아닐까… 하는 걱정이 듭니다. 위의 고민 때문에 백으로 이제라도 진로를 잡고 가야할까 생각이 드는데, 제가 개발시장을 아직 잘 모르고 프론트 개발도 딥하게 공부를 아직 하지 않은 상태라 겉핥기 시각일 수도 있습니다. 이 점 양해 부탁드리고 제 생각이 틀렸다면 따끔하게 지적해주시면 감사하게 듣겠습니다

개발자

#진로고민

답변 0

댓글 0

조회 193

6달 전 · 전재욱 님의 새로운 댓글

자바스크립트의 이벤트 처리 질문

리액트로 이미지 inpainting 컴포넌트를 만들고 있습니다. 사용자가 이미지 업로드를 하면 canvas 영역에 그 이미지가 채워지고 그 이미지에 mask 영역을 칠할 수 있는 이미지 에디터 컴포넌트인데요, 궁금한게 생겨 질문드립니다. 첨부한 코드는 컴포넌트의 코드중 이미지 업로드 시 onChange 이벤트의 처리기인 handleImageUpload 함수와, handleImageUpload 함수에서 호출되는 loadImage 함수의 코드입니다. 사용자가 input 요소에 이미지를 업로드하면 onChange 이벤트가 발생해 handleImageUpload 함수가 실행되고 loadImage 함수가 실행됩니다. loadImage 함수가 실행되면 img 객체가 생성되고 img 객체의 src를 지정하죠. 그러면 브라우저는 이미지 로딩을 시작하고 이미지 로딩이 완료되면 onload 콜백함수가 실행됩니다. 저는 이 과정을 자바스크립트의 콜스택, 이벤트 루프, 태스크큐 구조에서 나타내보자면 다음과 같다고 생각했습니다. 1. 초기상태 콜스택 : [ ] 태스크큐 : [ ] 2. 사용자가 파일을 업로드 -> onChange 이벤트 발생 콜스택 : [handleImageUpload] 태스크큐 : [ ] 3. handleImageUpload 내부에서 loadImage 함수 호출 콜스택 : [handleImageUpload, loadImage] 태스크큐 : [ ] 4. loadImage 내부에서 img 객체 생성 및 src 할당 콜스택 : [handleImageUpload, loadImage] 태스크큐 : [ ] Web API : 이미지 로딩 시작 5. loadImage 함수 종료, handleImageUpload 함수 종료 콜스택 : [ ] 태스크큐 : [ ] Web API : 이미지 로딩 진행중 6. 이미지 로딩이 완료되면 Web API가 onload 콜백을 태스크큐에 추가 콜스택 : [ ] 태스크큐 : [onload] Web API : 이미지 로딩 완료 7. 이벤트 루프가 콜스택이 비어있음을 확인하고 태스크큐에서 onload 콜백을 콜스택으로 이동 콜스택 : [onload] 태스크큐 : [ ] 8. onload 콜백 실행 (캔버스에 이미지 그리기 등) 콜 스택 : [onload, drawImage, ...] 태스크큐 : [ ] 일단 이 과정이 맞나요? 만약 이게 맞다면 생기는 궁금증이 있습니다. Web API에서 이미지 로딩이 진행되는동안 loadImage 함수 및 handleImageUpload 함수가 종료되면 loadImage 함수 내에서 생성된 img 객체는 가비지 컬렉터에 의해 지워져야 하지 않나? 그렇게 img 객체가 GC에 의해 사라지면 이미지 로딩이 완료되었을 시점엔 img 객체의 onload 함수도 없어진것이니 onload 함수의 로직은 실행이 되지 않아야 하는 거 아닌가? 하는 생각이 들어 질문드립니다

개발자

#자바스크립트

#react

#frontend

답변 1

댓글 1

조회 254

6달 전 · 익명 님의 질문

tanStack Query stailTime 설정에 대한 조언을 구합니다.

안녕하세요, 저는 이커머스 플랫폼에서 일하는 1년차 프론트엔드 주니어 개발자입니다. 현재 tanStack Query를 사용하여 데이터를 관리하고 있으며, staleTime 설정에 대해 고민이 많아 도움을 구하고자 글을 올립니다. 저희 플랫폼에서는 어드민 페이지에서 데이터를 생성합니다. 그러면 생성된 데이터는 바로 웹페이지에 보여야 합니다. 현재는 staleTime을 따로 설정하지 않아 바로바로 보이는 상황이나 네트워크 통신 최적화를 위해 staleTime을 설정하려고 합니다. 운영 시간은 두 가지로 나뉩니다: 09:00 ~ 23:00에는 상품 요청에 대한 응답이 빠르면 30초, 늦으면 5분 내로 처리되고, 나머지 시간에는 요청에 응답하지 않고 상품이 생성되지 않습니다. 이런 상황에서 staleTime을 어떻게 설정해야 효율적일까요? 1. 낮 시간(09:00 ~ 23:00)에는 데이터가 생성되는 주기가 짧으니, staleTime을 짧게 설정해야 할 것 같습니다. 2. 밤 시간(23:01 ~ 08:59)에는 데이터가 생성되지 않으니 staleTime을 길게 설정해도 무방해 보입니다. 하지만 이렇게 설정하면 낮 시간에 상품을 빠르게 생성하더라도 staleTime 내에 캐시가 갱신되지 않아 사용자에게 보이지 않는 문제가 발생할 수 있습니다. 이 문제를 해결하기 위해 invalidateQueries를 사용하거나 다른 방법이 있다면 조언 부탁드립니다. 이런 문제를 경험하신 분들은 어떻게 해결하셨는지 사례를 공유해주시면 감사하겠습니다. 답변 기다리겠습니다. 감사합니다! 🙏

개발자

#tanstack-query

#cache

답변 0

댓글 0

조회 44

6달 전 · 익명 님의 질문

말랑트립을 유니콘 기업으로 함께 만들어갈 혁신적인 동료들을 기다립니다.

**1. 프로젝트의 시작 동기** 말랑트립은 뚜벅이 여행자들을 위한 저렴한 택시 카풀 여행 플랫폼입니다. 여행 중 교통수단의 불편함을 해소하기 위해 시작되었으며, 여러 명이 관광택시를 나눠 탈 수 있도록 하는 시스템을 도입해 경제적 부담을 덜어주고 있습니다. 우리 프로덕트의 목표는 뚜벅이 여행자들에게 저렴하고 편리한 여행 경험을 제공하는 것입니다. 사용자가 여행 계획과 함께 택시를 나눠 이용하고, 동행자를 쉽게 구할 수 있는 플랫폼을 만들고자 합니다. 실시간 예약과 결제 시스템을 통해 여행 중 발생하는 불편함을 최소화하고자 합니다. 주 타겟은 교통이 불편한 국내 및 해외 여행지를 탐험하려는 뚜벅이 여행자들입니다. 특히, 운전을 하지 않거나 지방의 대중교통 이용에 불편을 겪는 여행자들을 위한 서비스로, 새로 만나는 사람들과의 동행을 통한 특별한 경험을 제공하고자 합니다. 대중성과 차별성 기존의 택시 예약 서비스와 차별화되는 말랑트립의 핵심은 1/N 결제 시스템입니다. 사용자는 동행자와 함께 비용을 분담하여 경제적 부담을 줄일 수 있으며, 플랫폼 내 말랑챗, 커뮤니티를 통해 여행 동행자를 쉽게 모집할 수 있는 기능을 제공합니다. 이 차별화된 기능은 뚜벅이 여행자들에게 여행 비용의 경제성과 교통이 열악한 지역의 여행 만족도를 극대화합니다. **2. 회의 진행/모임 방식** 회의 진행 - 주 1~2회 온라인 미팅 예정입니다. 정확한 시간은 현재 미정입니다. 소통 방식 - 구글챗을 통해 소통을 나눕니다. **3. 모집 포지션 및 역할** 1) 대외협력 (1명) - 말랑트립 고객 및 드라이버 CS 담당, - 타 기업 및 공무원 MOU 탐색 및 대외협력 2) 마케터 (1명) - 말랑트립 마케팅 전반 ※ 퍼포먼스 마케터는 이미 합류한 상태로, 다양한 마케팅 분야 경험이 있는 분 환영합니다. 3) 네이티브 앱 개발자 ※ 안드로이드 스튜디오 개발자 또는 스위프트 개발자 4. 이력 2023.03: 말랑트립 프로젝트 시작 2023.08: 경기콘텐츠진흥원 주관 PRE-MAP 지원금 1,000만원 유치 2024.03: 안양산업진흥원 주관 2024 관광 액셀러레이팅 프로그램 참여기업 선정 2024.04: 한국관광공사 주관 관광기업 혁신바우처 지원사업 수혜기업 2,000만원 선정 2024.06: MVP 서비스 출시 및 운영 중 2024.09: 경기 청년기회 여행감독 육성사업 선정(최대 500만원)

PM/PO/기획자

#협업

#사이드-프로젝트

#팀원모집

#구인구직

답변 0

댓글 0

조회 73

5달 전 · 동우 님의 새로운 댓글

블록체인 개발 입문 책 추천 해주세요!!

블록체인 관련된 스마트계약, 저작권 관리, 토큰 발행, 사용자 인증, 지갑 등등의 기술을 공부하고 적용해서 새로운 서비스를 만들어보고 싶은데, 어떤 책을 보고 시작해보면 좋을지 잘 모르겠습니다. 이쪽은 완전 처음이라 감이 잘 안 잡히네요.. 현재 프론트엔드 개발을 위주로 공부하고 있고 javascript를 주력 언어로 삼고있어서 프론트 백도 이 언어로 구현할 것 같습니다. 따로 책을 찾아보고는 있지만 추천 받는 것도 좋을 것 같아 올려봅니다! 참고로 만들어보고 싶은 서비스는 블록체인 기반 유튜브 또는 sns 서비스입니다. 공부 차원에서 시작하는 수준이라고 생각해주시면 될 것 같습니다...

개발자

#블록체인

#이더리움

답변 1

댓글 1

추천해요 2

조회 206

7달 전 · 유길종 님의 답변 업데이트

Nextjs with tailwind기반 ui라이브러리 질문

프론트엔드 취업전인 학생입니다. Rollup으로 라이브러리 번들 관련하여 질문입니다. 제작 현시점은 사용자가 컴포넌트를 import 하였을때 사용자가 tailwind.config.ts에 node_module경로의 제 라이브러리를 경로를 설정해야 스타일이 적용이 되는상황입니다. 개발자도구 element에는 텍스트상 적용이돼있는데 해당 방법말고는 못찾았습니다. 개발자분들의 좋은의견 부탁드립니다. 아래는 현재 rollup.config.js입니다.

개발자

#next.js

#react

#tailwindcss

#rollup

#library

답변 1

댓글 0

보충이 필요해요 1

조회 70

7달 전 · 영훈 님의 질문

리액트 웹소켓 사용자 인증

웹소켓을 사용해서 채팅구현 중에 있습니다. 이때 사용자 인증 처리를 핸드셰이크 시 요청 헤더에 토큰을 담아 보내려고 합니다. Web Socket API에선 요청 헤더에 토큰을 담아 보내는게 안되고, Socket.IO나 SockJS 라이브러리를 사용하라는걸 알게되었는데 혹시나 라이브러리 사용하지 않고 Web Socket API 에서 요청 헤더에 토큰을 담아보내는 방법이 있나요?

개발자

#웹소켓

#인증

답변 0

댓글 0

조회 47

7달 전 · 문종호 님의 새로운 답변

RAG 를 짜는 중에 도무지 어떤 부분이 문제인지 모르겠습니다.

# JSON 파일에서 FAQ 데이터를 로드하는 함수 def load_faq_data_from_json(file_path): with open(file_path, 'r', encoding='utf-8') as f: faq_data = json.load(f) return faq_data # FAQ 데이터 로드 json_file_path = '' faq_data = load_faq_data_from_json(json_file_path) # ChromaDB 클라이언트 및 Embedding 설정 chroma_client = chromadb.Client() # ChromaDB 클라이언트 생성 # 고유한 컬렉션 이름 생성 collection_name = "faq_data_" + datetime.datetime.now().strftime("%Y%m%d_%H%M%S") collection = chroma_client.create_collection(collection_name) # LangChain의 Text Splitter 설정 text_splitter = RecursiveCharacterTextSplitter( chunk_size=512, chunk_overlap=50 ) # OpenAI 임베딩 설정 openai_api_key = '' embedding_function = OpenAIEmbeddings( model="text-embedding-ada-002", openai_api_key=openai_api_key ) # 텍스트 스플리팅 및 임베딩 생성 함수 def split_and_embed_text(text): splitted_texts = text_splitter.split_text(text) print(f"Splitted texts: {splitted_texts}") try: # OpenAIEmbeddings는 embed_documents를 사용합니다. embeddings = embedding_function.embed_documents(splitted_texts) except Exception as e: print(f"임베딩 생성 중 오류 발생: {e}") return None # 임베딩이 제대로 생성되었는지 확인합니다. if embeddings is None or len(embeddings) == 0: print("임베딩 생성 실패") return None # 임베딩을 numpy 배열로 변환 embeddings = np.array(embeddings) print(f"Embeddings shape: {embeddings.shape}") # 임베딩 벡터의 차원을 확인하고 처리합니다. if embeddings.ndim == 1 and embeddings.shape[0] == 1536: # 임베딩이 1차원 배열이고 길이가 1536인 경우 final_embedding = embeddings elif embeddings.ndim == 2 and embeddings.shape[1] == 1536: # 임베딩이 2차원 배열이고 두 번째 차원이 1536인 경우 final_embedding = np.mean(embeddings, axis=0) else: print("임베딩 벡터의 차원이 예상과 다릅니다.") return None print(f"Final embedding shape: {final_embedding.shape}") return final_embedding # FAQ 데이터를 Vector DB에 저장 def store_faq_data_in_vector_db(faq_data, collection): for faq in faq_data: # 'question'과 'answer'가 있는지 확인하고, 'answer'가 None이 아닌지 확인 if 'question' not in faq or 'answer' not in faq or faq['answer'] is None: print(f"누락된 'question' 또는 'answer'로 인해 항목을 건너뜁니다: {faq}") continue # 다음 항목으로 넘어감 # 텍스트 스플리팅 및 임베딩 생성 question_embedding = split_and_embed_text(faq['question']) if question_embedding is None: print(f"Embedding generation failed for question: {faq['question']}") continue # 임베딩이 없으면 다음 질문으로 넘어감 print(f"Generated embedding for question '{faq['question']}': {question_embedding}") # 각 질문에 고유한 ID 생성 faq_id = str(uuid.uuid4()) # 메타데이터에서 None 값을 제거 metadata = {k: v for k, v in {"answer": faq['answer']}.items() if v is not None} # Vector DB에 저장 collection.add( documents=[faq['question']], metadatas=[metadata], ids=[faq_id], embeddings=[question_embedding] ) # 추가 후 임베딩 확인 (저장된 후 곧바로 확인) stored_results = collection.get(ids=[faq_id], include=["embeddings"]) if stored_results['embeddings'] is not None and len(stored_results['embeddings']) > 0: print(f"Embedding for question '{faq['question']}' successfully stored.") else: print(f"Failed to store embedding for question '{faq['question']}'") # FAQ 데이터를 JSON에서 로드하고 저장 store_faq_data_in_vector_db(faq_data, collection) 이렇게 데이터를 저장하고 # 환경 변수에서 API 키 로드 openai_api_key = os.getenv("OPENAI_API_KEY") if not openai_api_key: raise ValueError("OpenAI API 키가 설정되지 않았습니다. 환경 변수 OPENAI_API_KEY를 설정하세요.") # OpenAI 임베딩 설정 embedding_function = OpenAIEmbeddings( model="text-embedding-ada-002", openai_api_key=openai_api_key ) # LangChain의 Text Splitter 설정 (일관성 유지) text_splitter = RecursiveCharacterTextSplitter( chunk_size=512, chunk_overlap=50 ) # ChromaDB 클라이언트 및 컬렉션 설정 chroma_client = chromadb.Client() collection_name = "faq_data_collection" try: # 이미 존재하는 컬렉션인지 확인하고, 있으면 가져옴 collection = chroma_client.get_collection(name=collection_name) except chromadb.errors.CollectionNotFoundError: # 컬렉션이 존재하지 않을 경우에만 생성 collection = chroma_client.create_collection(name=collection_name) # Vector DB에서 유사 질문 검색 (ChromaDB) def find_similar_question_in_vector_db(new_question_embedding, collection, k=5): results = collection.query(query_embeddings=[new_question_embedding], n_results=k, include=['documents', 'metadatas', 'embeddings']) best_similarity = 0 best_question = None best_answer = None # 검색 결과에서 각 질문의 유사도와 답변을 처리합니다. if 'documents' in results and 'metadatas' in results: documents = results['documents'][0] metadatas = results['metadatas'][0] embeddings = results['embeddings'][0] for i in range(len(documents)): stored_embedding = embeddings[i] metadata = metadatas[i] if stored_embedding is not None: # 코사인 유사도를 통해 유사도를 계산합니다. similarity = cosine_similarity([new_question_embedding], [stored_embedding])[0][0] print(f"유사도: {similarity} for {documents[i]}") # 유사도가 가장 높은 결과를 선택하며, 임계값 이상일 경우에만 선택 if similarity > best_similarity and similarity >= SIMILARITY_THRESHOLD: best_similarity = similarity best_question = documents[i] if isinstance(metadata, list): metadata = metadata[0] best_answer = metadata.get('answer') if isinstance(metadata, dict) else None return best_question, best_answer # Fine-tuned GPT를 사용해 새로운 답변 생성 def gpt_generate_response_from_finetuned_gpt(question, style="의사 A 말투"): prompt = f"다음은 환자의 질문입니다: \"{question}\". 아래 말투를 사용하여 질문에 대해 성실하고 정확한 답변을 작성해주세요.\n\ 말투: {style}" response = client.chat.completions.create( model="", # Fine-tuned된 GPT 모델 ID messages=[ {"role": "system", "content": "You are a helpful medical assistant."}, {"role": "user", "content": prompt}, ], max_tokens=300, temperature=0.7, # 답변의 다양성을 조절합니다. ) return response.choices[0].message.content.strip() # 새로운 질문 처리 및 최종 응답 생성 def generate_final_response(new_question, collection): # 텍스트 스플리팅 및 임베딩 생성 splitted_texts = text_splitter.split_text(new_question) new_question_embedding = np.mean(embedding_function.embed_documents(splitted_texts), axis=0) # ChromaDB에서 유사 질문 검색 similar_question, answer = find_similar_question_in_vector_db(new_question_embedding, collection) if similar_question and answer: final_response = f"질문: {new_question}\n유사 질문: {similar_question}\n기본 답변: {answer}" else: generated_answer = gpt_generate_response_from_finetuned_gpt(new_question) final_response = f"질문: {new_question}\nGPT로 생성된 답변: {generated_answer}\n(이 답변은 벡터데이터에서 유사한 답변을 찾을 수 없어 GPT에 의해 생성되었습니다.)" return final_response # 사용자로부터 새로운 질문 입력 받기 new_question = input("새로운 질문을 입력하세요: ") # 최종 응답 생성 response = generate_final_response(new_question, collection) print(response) 로 데이터베이스에서 유사한 질문-답변 쌍을 끌어오려는데 정확히 같은 질문을 넣어도 (이러면 유사도가 1인데) 저장되어있는 답변이 끌어와지질 않네요...

개발자

#llm#rag

답변 1

댓글 0

조회 99

7달 전 · 익명 님의 질문

<항공/기후산업의 혁신을 함께할 프론트엔드 개발자 모집>

주식회사 노바에어는 고가의 장비 인프라 없이 항공기 상태 변화 기반으로 난기류를 진단하고, AI 기술을 적용하여 운항관리사와 조종사에게 최적화된 실시간 난기류 대응책 도출 프로세스를 자동화하는 솔루션을 개발하고 있습니다. 이 솔루션을 통해 더욱 안전하고 효율적인 항공/모빌리티 운항 환경 구현을 목표로 합니다. ★ 대표자 - UAM/항공 분야 프로젝트 및 연구 다수 진행 - 총 3회 수상 이력 (국토교통부 장관상. 한국공항공사 사장상. 한국교통안전공단 이사장상) ★ 팀원 - 리서치/운영 지원 1명, PO/PM 1명, 웹 풀스택/네트워크 개발 1명, 안드로이드 개발 1명, 디자인 1명 - 항공기상 빅데이터융합, 대기과학 인공지능 분야에서 20년 이상의 경험과 노하우를 갖춘 해외 대학 박사학위 보유자 두 분 (Adviser) 우리 팀과 함께 기술 고도화와 시장 확장을 이끌어갈 아래에 해당하는 신규 팀원을 모집하고 있습니다. 글로벌 항공시장을 혁신하고 지속 가능한 하늘길을 만들고자 하는 열정적인 분들의 많은 지원을 기대합니다. I. 프론트엔드 개발자 (1명) : 파트타임 및 인턴 직무 내용 - 항공 운항 관리 및 통제용 난기류 실시간 모니터링 및 대응 솔루션 웹 플랫폼의 사용자 인터페이스(UI) 개발 요구 사항 - Kepler.gl 등 Map GL을 사용한 개발 경험 필수 - React에 능숙하신 분 주도적인 마인드로 가슴 설레는 일을 하고 싶으신 분들은 나이, 전공, 경력 등 불문하고 연락 주십시오. 학/석/박사학위자 및 과정 중, 직장이 있으신 분도 환영합니다. 관심 있으신 분들은 아래 오픈 카톡방으로 입장해주세요! https://open.kakao.com/o/s66vjKgg

개발자

#항공

#기상

#react

#맵gl

#mapgl

답변 0

댓글 0

조회 101

7달 전 · 김정수 님의 질문

Revert를 한 후 코드가 꼬였다고 화를 내는 상사.. 제가 모두 잘못한 것일까요??

안녕하세요 이제 2년차가 되는 프론트엔드 개발자입니다. 최근 이직에 성공한 후 새로운 프로젝트를 맡아서 함께 협업하던 중 저의 실수로 develop에 있는 코드가 main에 머지 되었던 일이 있었어요. 그로인해 약 6시간 정도 main에 배포되어 작업 중이던 코드들이 실제 사용자에게 보여지게 되었습니다. 물론 오류 없는 작업물만 develop에 merge를 했기에 오류 자체는 없었어요. 그런데 문제는 그 후에 있었습니다. main에 잘못 머지되었던 커밋을 revert를 해달라고 해서 revert를 했습니다. 따로 confilct나 이슈 없이 잘 리버트가 되었고 리버트 후 동작 확인한 후에 정상 동작도 제대로 확인했어요. 그런데 그 후 작업 하시던 분이 코드가 누락되어 로깅이 제대로 안되었다고 저한테 화를 내시더라구요.. 제가 작업했던 부분과는 연관이 없었고 (리버트 시킬 때 상사분의 코드도 함께 리버트 되는 것은 확인했습니다.) 리버트로 인해 이렇게 까지 혼나야하는 것도 조금 속상하네요.. 저희는 일반적인 git flow를 따르지 않고 작업한 브랜치에서 각각 develop, main 브랜치로 각자 머지 시키는 방식을 사용하고 있습니다. 정말 궁금한 부분인데 제가 develop을 main에 잘못 머지시킨 것 뿐만 아니라 코드가 꼬인 부분에서도 책임이 있는 부분인가요?? 조금만 상세히 알려주시면 어떠한 쓴 답변이 와도 성장의 원동력이라고 생각하고 듣겠습니다! 경력이 적은 저로서는 아직 이해가 안가는 부분이라서요ㅠㅠ

개발자

#git

#git-flow

#revert

#git-revert

답변 0

댓글 0

조회 79

8달 전 · 익명 님의 질문

1시간 안에 네이티브로 웹사이트를 iOS 및 Android용 네이티브 모바일 앱으로 변환하세요.

비즈니스용 모바일 앱을 만드는 데 얼마나 비용이 들까요? 제 경험상, 안드로이드와 iOS 앱을 개발하려면 최소 1만 달러부터 시작합니다. 하지만 한 달에 단 35달러로 모바일 앱을 만들 수 있는 매우 효과적인 방법이 있습니다. 혼자서도 할 수 있고, 팀을 고용할 수도 있는데, 이 방법은 몇 개월이 아닌 며칠 만에, 수천 달러가 아닌 수십 달러로 가능합니다. 제가 말하는 것은 Natively입니다. 이 서비스는 어떤 웹사이트나 웹 애플리케이션도 손쉽게 네이티브 앱으로 변환해 줍니다. 귀하의 웹사이트/웹 앱이 JavaScript 프레임워크로 구축되었든, Bubble, Webflow, Wix, WordPress, Shopify와 같은 노코드 플랫폼을 활용하든, Natively는 모바일 앱으로의 전환을 매끄럽고 간단하게 만들어 줍니다. Natively의 사용은 매우 간편합니다. 사용자 친화적이고 자동화된 프로세스로 인해 기술적 전문 지식 없이도 누구나 몇 분 안에 앱을 만들 수 있습니다. Natively는 푸시 알림, 헬스 키트, 위치 추적, 카메라, 갤러리, 인앱 결제 등 다양한 네이티브 모바일 기능을 설정할 수 있게 해줍니다. 그리고 새로운 기능이 지속적으로 추가되고 있습니다. 1년 전 처음 출시된 이후로 Natively 덕분에 800개 이상의 애플리케이션이 App Store와 Google PlayMarket에서 성공적으로 자리 잡았습니다. Natively의 웹사이트, 리뷰 및 사례는 여기에서 확인하세요: https://www.buildnatively.com/ 오늘날의 디지털 시대에서 네이티브 애플리케이션을 보유하는 것은 사용자를 끌어들이고 유지하는 데 필수적이며, 비즈니스 성장에 큰 도움이 됩니다. 그래서 저는 Natively가 특히 무료로 시작할 수 있다는 점에서 꼭 시도해볼 가치가 있다고 믿습니다. 🌍

개발자

#모바일

#앱

#android

#ios

답변 0

댓글 0

조회 73